Adicionar novas línguas ao Windows (edições Home)

July 2nd, 2010

Eu desenvolvo sobre Windows, sobre um Windows 7 Home Premium, para ser mais exacto. E ao longo do tempo tenho sofrido de alguns obstáculos oferecido pelas limitações da versão. A versão é a que veio com o PC, e pretendo puxá-lo até onde possível, antes de fazer um upgrade para um Business ou Ultimate (apesar das restantes máquinas – desktop – aqui do escritório estarem com o Ultimate).

Mas infelizmente ontem, deparei-me com um problema que demorou a tarde toda a perceber, e quando assim é, é geralmente algo do OS e nada óbvio. Contextualizando, estou numa fase de internacionalizar uma aplicação web de gestão de currículos e processos de recrutamento e selecção, que desenvolvi no ano passado (e ainda este ano). Foi grande sucesso junto da equipa de trabalho, pois permitiu acelerar em muito os processos de recrutamento, que dado o volume de candidaturas que lhes chegavam – dezenas de milhares em meio ano – era tediante e constrangedor. Felizmente, a app foi criada à medida da equipa e adaptado ao processo de trabalho, e resultou em pleno.

De qualquer forma, a app está a ser internacionalizado para suportar as acções em Espanha, e o processo de internacionalização tem os seus próprios desafios associados – a globalização da aplicação para não ter dependências directas da língua nem numeração, e a localização para corresponder a cada realidade, quer de linguagem, quer de informação (por exemplo as diferenças de moradas e códigos postais e informação regional).

Sei que esta fase trará alguns problemas de estrutura e configuração – umas mais complicadas que outras – e a primeira apareceu logo na base de dados. Para a aplicação, optei pelo suporte de dados em base de dados relacional, e a base escolhida foi o PostgreSQL. Tem óptimas capacidades de armazenamento, suporte a pesquisa em XML, indexação e pesquisa de texto livre com o tSearch2, e é OpenSource que também foi muito atractivo na escolha.

Quando se cria uma base de dados no Postgre, o único parâmetro obrigatório é o nome da base de dados. As restantes definições são preenchidas com os valores pré-definidos da instalação. As que condicionam a base e que só podem ser definidas na criação são o LC_COLLATE e o LC_CTYPE. A primeira – LC_COLLATE, determina a forma como são ordenadas as palavras e que pode variar de cultura para cultura. O mesmo para o LC_CTYPE que caracteriza os caracteres em termos de maiúsculas, minúsculas, e pontuação

O problema destes parâmetros são a dependência do OS para esta informação. Seria muito interessante se dependesse apenas da base de dados e os executáveis associados, mas na verdade esta informação vem do sistema operativo. Por defeito, o valor para as variáveis são o da definições do OS. O Windows Server 2008 permite que o utilizador possa configurar a sua conta para definições regionais e linguísticas diferentes e que podem ser acrescentados através de MUIs (Multilingual User Interface). O mesmo é possível nas versões do Business e Ultimate do Windows. Infelizmente, no Home Premium não é possível, sem alguns workarounds.

Como afecta a criação da base? Simples. Se não tiver as definições linguísticas instaladas na máquina, não posso criar a base de dados usando essas definições, apenas com as existentes. Para portuguese, e portanto com base na definição do OS, tenho quer para LC_CTYPE, quer para LC_COLLATE o valor:

Portuguese_Portugal.1252

Para a base espanhola queria

spanish_Spain.1252

Acrescentar definição no Windows Server 2008

Trabalhamos aqui geralmente com duas instâncias de base de dados, uma local e uma remota, centralizada. Procurei resolver primeiro o caso no server, para verificar se era mesmo este o problema. Não tinha o pack espanhol instalado, e portanto puxei-o do site da Microsoft:

http://www.microsoft.com/Downloads/details.aspx?familyid=03831393-EEF7-48A5-A69F-0CE72B883DF2&displaylang=en

ou para o Server 2008 c/ SP2

http://www.microsoft.com/Downloads/details.aspx?familyid=3A7FB7A2-3519-495B-9BC5-2007082CA9A6&displaylang=en

ou para Server 2008 R2

http://www.microsoft.com/Downloads/details.aspx?familyid=03831393-EEF7-48A5-A69F-0CE72B883DF2&displaylang=en

são ficheiros .img pelo que devem ser carregados numa drive virtual como o Virtual Clone Drive.

Depois em Control Panel > Regional and Language Options > Keyboards and Languages > Display Language aparece a lista de linguagens disponíveis e em uso pelo Windows. Há tb um botão “Install/uninstall Languages” que permite acrescentar. Deve no Wizard que aparece escolher a pasta da drive para a linguagem especifica e deixar correr a instalação.

No caso do espanhol, puxei o ficheiro do grupo 1, e no wizard escolhi a pasta “es-ES”. “Et voilá”, spanish_Spain.1252 fica disponível no PostgreSQL. Simples e resolvido.

O processo para as versões do 7 Ultimate e Business devem ser semelhantes. O problema surge para o Home. Não é suportado, mas é possível introduzir as definições de localização. Para tal guiei-me pelas notas em http://xaueious.wordpress.com/2009/08/22/changing-installed-language-of-windows-7-home-premium-pro-from-en-us/ e segui o caminho da linha de comandos.

Acrescentar definição no Windows 7 Home Premium

  1. Descarregue o MUI associado à língua específica daqui http://www.froggie.sk/7lp64rtm.html
  2. Agora um dos truques: Se executares o ficheiro descarregado, é extraído um ficheiro “lp.cab” para a mesma pasta e que é fundamental preservar. No entanto, pouco depois de executar, o ficheiro desaparece. Portanto considera-o um pouco como um jogo de reacção, e prepara o ambiente para mover o ficheiro para outro local ou renomea-lo ASAP. Copy-paste não resulta.
  3. Na linha de comandos, executado com privilégios de administrador, executa o seguinte comando:
    DISM /Online /Add-Package /PackagePath:D:\Caminho\lp.cab

    onde D:\Caminho\lp.cab é o caminho completo para o ficheiro extraído.

  4. O processo demora uns minutos, mas uma vez findado, no Postgre, é possível criar a base com as chaves de locale correctas e desejadas.

PostgreSQL e Linux

December 5th, 2009

Cada vez mais aprecio o PostgreSQL. A base de dados é, efectivamente, muito capaz e poderosa, e felizmente não transporta a barreira das licenças que alguns outros sistemas de base de dados portam. Não é que não os justificam, e empresas que compram licenças desses sistemas reconhecem a sua importância e valor. Mas o PostgreSQL é efectivamente uma base de dados bastante simpático e funcional com um custo reduzido.

Algo que considero muito útil no Postgre é ser multi plataforma. Windows, Linux e MAC.. é escolher, que o PostgreSQL corre. O PgAdminIII, aplicação de gestão da base de dados com GUI também corre em Windows e Linux. Ainda não testei comunicação entre base de dados e servers aplicacionais suportando SOs diferentes, mas penso que é evidente o correcto funcionamento e comunicação.

Hoje estou a instalar um server em Linux, para suportar o JIRA.Tive dificuldades com o Confluence (coisa estranha de má tradução entre IIS e Tomcat dos endereços das páginas), e decidi mover as aplicações de gestão para um server dedicado. O Ubuntu é a minha “flavor” preferida (é todo o conceito…). As aplicações da Atlassian utilizam Tomcat, e tem versões que portam o serviço com elas. Pensei em o server como Tomcat server (o Ubuntu tem essa opção), mas decidi seguir a recomendação do fabricante e deixar as aplicações correr em instâncias dedicadas. O que instalei por defeito foi o clássico LAMP e a base de dados PostgreSQL.

No entanto, o PG n funciona por si só sem uma ligeira configuração. No Windows, é realizado na instalação com o Wizard, mas no Linux é mais simples / imediato com umas linhas de comando. Naturalmente o processo está mais que documento na web, mas nunca é demais reescrever.:

Para começar, duas instruções para instalar o PostgreSQL (caso n tenha sido usado a opção de instalação no processo de instalação do SO):

sudo apt-get install postgresql
sudo apt-get install pgadmin3

O primeiro pode ser ignorado caso a instalação tenha sido efectuada na instalação do SO. A segunda é um GUI de administração muito útil.

Segue então a configuração, sendo necessário inicializar o utilizador base e a password para o mesmo:
sudo -u postgres psql postgres
\password postgres

e introduza a password desejada para o utilizador postgres.

Outras coisas que podem ser feitas:
criar uma bd:> sudo -u postgres createdb [nome da base]
iniciar o serviço:> sudo /etc/init.d/postgresql-8.4 [start | stop | restart]

Finalmente, há mais dois detalhes importantes a resolver. O Postgre é, por defeito, bastante restriivo no acesso, permitindo acesso apenas por conexões vindas da própria máquina. Para aceder remotamente, primeiro deve permitir que os utilizadores da base possam autenticar-se na base na rede (caso queira esta funcionalidade). É necessário acrescentar o seguinte ao ficheiro /etc/postgresql/8.4/main/pg_hba.conf


# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host all all x.x.x.0 255.255.255.0 md5

onde x.x.x.0 é a definição da rede (p.e. 10.0.0.0 ou 192.168.0.0).

Para que seja possível acesso externo ao servidor de base de dados, e necessário editar /etc/postgresql/8.4/main/postgresql.conf, retirando o comentário à linha #listen_addresses = ‘localhost’
e sustituír ou acrescentar ao ‘localhost’ o ‘*’ para todas as conecções, ou uma gama de IPs para limitar. P.e.:
listen_addresses = ‘*,localhost’

E já vai bem encaminhado :D

Instalação do JIRA + Confluence e integração com IIS

November 29th, 2009

Estive durante um curto período a analisar alguns sistemas colaborativos de gestão de projectos, e acabei por escolher o JIRA. O Jira é um gestor de projectos bem orientado a software, com acompanhamento de casos e analise de velocidade de desenvolvimento, com acções colaborativas. Não é o único no mercado, mas é, dentro daquilo que procurava, muito completo e funcional e a um preço bastante acessível (Com os starter packs, são apenas $10 para 10 utilizadores, alojado localmente). Um vantagem que esta aplicação tem é o facto de ter inúmeros módulos interessantes a integrar, nomeadamente o Greenhoper, para uma gestão de projecto Agile, e o Fisheye para integrar o Subversion no sistema.

Ainda da Atlassian, há um sistema de Wiki completo, pássivel de ligar ao Jira, chamado Confluence. Como qualquer dos módulos que mencionei, o curtos do starter pack é de $10, para 10 utilizadores. E por apenas $40, consegue-se um sistema de gestão de projecto muito completo e funcional, que correctamente utilizado, permitirá manter uma visão correcta dos projectos e objectivos.

As aplicações mencionadas são todas web apps, baseado em JSPs, que é uma tecnologia que estou completamente alheio a. Sou todo .NET, e portanto o a configuração e suporte preocupava-me um bocado. Felizmente, o site tem documentação MUITO BOA, o que auxiliou em muito a instalação, e configuração. A instalação do JIRA, com o instalador fornecido, é directo – é só seguir os passos de integração com a base de dados (podendo escolher entre uma série deles, como o PostgreSQL). Já com o Confluence, tive muito mais dificuldades, mas é bem explicado – 1º não estou habituado ao Tomcat e JAVA; 2º porque não segui correctamente as instruções.

Quer o Jira, quer o Confluence, correm em instâncias individuais de um Tomcat Server. Acredito que seja possível integra-las na mesma instalação (deve ser as instalações EAR/WAR mencionados). Para já, no entanto, estão instaladas em instâncias individuais, e como serviços no Windows (o que, no entanto, não me deixa completamente satisfeito porquer cada um desses serviços esta a comer 250 – 300MB de RAM). Porque o IIS não suporta os JSP directamente, a integração possível é o encaminhamento do pedido para os serviço, usando filtros ISAPI.

Porque tive dificuldades com o Confluence, gostava de deixar aqui um pequeno tutorial de como instalar o sistema, pelo menos com uma visão macro, dos passos.

Visão Geral
De uma forma geral, a instalação pode seguir os seguintes passos:

  1. Instalar o Jira standalone (usando o installer, é directo e sem chatices)
  2. Integrar o Jira na base de dados preferido
  3. Instalar o Confluence a partir do zip (por alguma razão não recomendam o uso do standalone) e configura-lo para não colidir com o Jira, a nível de portos de ligação, e para utilizar uma base de dados (que não o HSQL original), e arrancar como serviço do Windows
  4. Nesta fase, deve ser possível aceder às duas aplicações, localmente, no browser, por portos diferentes. Para todos os efeitos, são dois servidores Tomcat activos e independentes a actuar. Agora, para integrar no IIS, é preciso integrar os filtros isapi, que encaminham os pedidos dum site no IIS, para os portos correctos na qual o Tomcat está a ouvir.

  5. Integrar com o IIS

Aquilo que notei neste processo é que TODOS os portos nas instalações tinham de variar. No caso do JIRA, usei:
/Jira/conf/server.xml

  • server : port=8005;
  • Connector coyoteConnector : port=8080 redirectPort=8443
  • Context :
  • Connector AJP : port=8009 redirectPort=8443

Para o Confluence:
/Confluence/conf/server.xml

  • server : port=8006;
  • Connector coyoteConnector : port=8081 redirectPort=8444
  • Context :
  • Connector AJP : port=8010 redirectPort=8444

Depois no conector (jakarta), o uriworkermap.properties tem:

/jira/*=worker1
/confluence/*=worker2

e o workers.properties.minimal tem:

worker.list=worker1, worker2

#for jira
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

#for confluence
worker.worker2.type=ajp13
worker.worker2.host=localhost
worker.worker2.port=8010

Se tudo correr bem.. fica a funcionar! Fora do servidor, não é possível aceder directamente aos ports 8080 e 8081, que por defeito, são bloqueados pela firewall (e bem). Todos os pedidos são necessariamente encaminhados pela porta 80, e resolvidos pelo IIS.

Configurar o gateway no Linux

September 14th, 2009

Estive preso com um problema de configuração do LAMP server – conseguia conectar-me às interfaces web através da rede interna, mas não pelo exterior (ou domínio), usando o NAT do router para encaminhar correctamente. Na própria máquina, conseguia pingar a endereços internos mas não a externos. O problema? Ao mudar de um endereço IP dinâmico (DCHP) para um estático, o gateway não ficou definido. Confirmo na lista dada pelo comando “route”, que o gateway não existe. A solução?

route add default gw 192.168.0.1 eth0

ou seja, adicionei o endereço do router como default gateway à lista de rotas para a placa de rede eth0.

Alguma ajuda daqui: http://serverfault.com/questions/65206/fowarding-http-to-lamp-server-through-router-nat
e daqui: http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch03_:_Linux_Networking

Arrancar servidores sem teclado

September 13th, 2009

A maioria das boards, no arranque, exigem por defeito que haja um teclado ligado á porta PS2 ou USB. Mas há situações, especialmente em servidores montados num rack, onde não faz sentido haver teclado ligado fisicamente e permanentemente. A gestão é geralmente feito remotamente.

Ao arrancar um PC ou servidor sem o teclado, aparece a habitual mensagem (com uma certa ironia na mesma) do “No keyboard detected – press F1 to continue”. Na verdade, a verificação da existência do teclado é um dos passos executados no arranque e que levanta um erro, tal como as falhas de discos entre outras. no entanto na configuração da BIOS, há geralmente uma ou outra mensagem que permite contornar a paragem.

Nalguns, a opção está na opção “Halt on”, que indica sobre que erros deve parar o arranque. Opções por defeito são All (para sobre qualquer erro), mas há também o “none”, “all but keyboard”, “all but disk”, “all but disk/keyboard”. Estas são as que encontrei numa board (ASUS A7V8X para AMD).

Mas a opção “Halt on” não é única. Há semelhantes. Para um Asus P5Q-E, a opção refere “Press F1 on Errors”, que deve ser desabilitado. Certamente com boards e versões de BIOS diferentes, os nomes mudarão mas a intenção é a mesma – saltar por cima do erro.

Ubuntu, revisited

September 13th, 2009

Este site tem sido alojado nos últimos 4 anos num serviço prestado pela HostingPortugal. Não tenho razão especial de queixa, que não tem havido qualquer conflito. A única coisa que não gosto é do uso do Helm, como gestor de conta, mas dado que tinha escolhido uma conta Windows (para servir ASP.NET), não tive como fugir a ele. Versões mais recentes do painel parecem interessantes, mas mesmo assim deixa a desejar. Estou demasiado habituado a usar a interface do Windows Server para gerir, que aquilo acaba por saber a pouco. Também sou um “control freak” e por isso sinto a limitação.

Decidi então alojar localmente a minha página. Sei que há alguns riscos inerentes à mudança, e mesmo de capacidade de servir (com o volume de tráfego que tenho, não deve ser problemático). Estou a reabilitar uma máquina para servir esta função. Tenho um servidor Windows activo internamente, mas não quero que seja o web-server, pelo menos para já. Gostava de ter o webserver numa máquina separada, e neste caso, visto que a página actual é puramente PHP, vou experimentar um LAMP server, com base no Ubunto Server. Mais tarde, se não ficar satisfeito, sigo o caminho do Windows Server, mas é pouco provável.

Como é habitual quando inicio uma instalação no Linux, tendo a visitar um post antigo: Instalação de Ubuntu Server 8.10. Tem sido um guia base para introduzir um GUI nas edições de servidor, e que fica leve. Não é que a panóplia de aplicações presentes no Gnome ou KDE não sejam interessantes, mas não necessito de quase nada daquilo, e é escusado ocupar o espaço. O comando base usado foi:

sudo apt-get install xorg xfce4 gdm synaptic firefox ntfs-config thunar-volman

Neste caso adicionei o gdm para ter o login do gnome e permitir que algumas aplicações como o synaptic aparecessem correctamente nos menus. Também, adicionei 3 itens mencionados no blog Disambiguation, que são:

# xfce4-goodies (alguns add-ons uteis ao xfce)
# xfce4-mcs-plugins-extra (permite adicionar aplicações ao arranque)
# xfce4-taskmanager (permite ver as aplicações em execução, como no windows)

De seguida, para uma administração remota e web do servidor, instalei o Webmin, seguindo os passos em ubuntugeek.com:


$ sudo aptitude install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl

$ wget http://garr.dl.sourceforge.net/sourceforge/webadmin/webmin_1.441_all.deb

$ sudo dpkg -i webmin_1.441_all.deb

O Webmin tem uma série de opções bastante interessantes, com a administração do server, das opções de rede na mesma (através da qual fixei o IP de rede interna do server), das diversas bases de dados, backups e cron jobs, até tem uma interface para a shell (se bem q uma ligação por SSH será mais eficiente, mas é bom, mesmo assim). Na verdade, com o Webmin, o desktop é praticamente desnecessário, nesta aplicação. Se realmente não for, eliminarei o passo numa futura instalação para este fim.

Agora resta transferir a instalação do Wordpress para o server, e mapear o DNS e NAT como deve ser para apontar correctamente ao servidor LAMP.

ACTUALIZAÇÃO:
porque a estrutura de endereços no sourceforge sofreu uma alteração (penso eu), o endereço no comando wget é diferente. deve então experimentar:

wget http://switch.dl.sourceforge.net/sourceforge/webadmin/webmin/1.500/webmin_1.500_all.deb

ou ainda

wget http://dourceforge.net/projects/webadmin(files/webmin/1.500/webmin_1.500_all.deb/download

O tab do ASP.NET desapareceu no IIS!!??

August 21st, 2009

Não aconteceu comigo, mas ontem foi, talvez, a segunda vez que ouvi falar desta situação. um colega ontem teve o mesmo problema e ajudei a encontrar uma solução para o problema. Aparentemente, até é um problema comum e parece estar relacionado com um parâmetro de configuração de módulos 32bits em 64bits, e especialmente de Windows Server 2003 instalado num VMWare Server. A solução está descrita em vários locais da web – vou apenas transcrever/traduzir a solução para que possa ser útil a mais pessoal.

  1. Pare o serviço do IIS
  2. Localize o ficheiro “metabase.xml” em c:\windows\system32\inetsrv e abra-o no notepad ou outro editor
  3. Procure a linha que tenha a chave “Enable32BitAppOnWin64″ e elimine-o
  4. Guarde o ficheiro
  5. Reinicie o IIS (e restantes serviços que possam ter parado)
  6. Verifique que a tab existe

Esta solução está em http://www.bobnedved.com/post/2007/12/My-ASPNET-Tab-is-missing-in-IIS!!.aspx

Backup de PostgresSQL em C#

March 25th, 2009

Para uma aplicação que estou a desenvolver com base numa BD Postgre, precisei de criar um script de backup da base de dados. A ideia é clicar num botão da interface web, e fazer o dump da BD, de forma simples, e permitir que o utilizador (que neste caso não tem nada a haver com IT) possa descarregar e archivar a base facilmente.

O método:

/// <summary>
        /// Backup Database to file (dump)
        /// </summary>
        /// <param name="server"> </param>db -> ConfigKey ["dbbackupserver"]
        /// <param name="port"> </param>db -> ConfigKey ["dbbackupport"]
        /// <param name="user"> </param>db -> ConfigKey ["dbbackupuser"]
        /// <param name="password"> </param>db -> ConfigKey ["dbpbackuppassword"]
        /// <param name="dbname"> </param>db -> ConfigKey ["dbbackupdbname"]
        /// <param name="backupdir"> </param>db -> ConfigKey ["dbbackupdir"]
        /// <param name="backupFileName"> </param>db -> ConfigKey ["dbbackupfilename"]
        /// <param name="backupCommandDir"> </param>db -> ConfigKey ["dbbackupworkdir"]
        /// <returns>The file name with the db dump</returns>
        public string BackupDatabase(
            string server, 
            string port, 
            string user, 
            string password,
            string dbname, 
            string backupdir, 
            string backupFileName,
            string backupCommandDir)
        {
            //string password = ConfigurationManager.AppSettings["dbpbackuppassword"];
            //string server = ConfigurationManager.AppSettings["dbbackupserver"];
            //string port = ConfigurationManager.AppSettings["dbbackupport"];
            //string user = ConfigurationManager.AppSettings["dbbackupuser"];
            //string dbname = ConfigurationManager.AppSettings["dbbackupdbname"];
            //string backupdir = ConfigurationManager.AppSettings["dbbackupdir"];
            //string backupFileName = ConfigurationManager.AppSettings["dbbackupfilename"];
            //string backupCommandDir = ConfigurationManager.AppSettings["dbbackupworkdir"];
 
            try
            {
 
                Environment.SetEnvironmentVariable("PGPASSWORD", password);
 
                string backupFile = backupdir + backupFileName +
                    DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".backup";
                string BackupString = "-ibv -Z3 -f \"" + backupFile + "\" " +
                    "-Fc -h " + server + " -U " + user + " -p " + port + " " + dbname;
 
                Process proc = new System.Diagnostics.Process();
                proc.StartInfo.FileName = backupCommandDir + "\\pg_dump.exe";
                proc.StartInfo.Arguments = BackupString;
 
                proc.Start();
 
                proc.WaitForExit();
                proc.Close();
 
                return backupFile; 
 
            }
            catch (Exception ex)
            {
                throw new Exception("An unknown error occured while trying to perform the database backup/restore operation.\n\nException: " + ex.Message);
            }
        }

Basicamente, o método inicia o processo / commando da shell “pgdump” que vem com a instalação do PostgreSQL e faz um dump das tabelas e dados. Eu passo os parâmetros de nome de ficheiro e BD e directório de armazenamento etc, como parâmetro do método, porque tenho integrado numa framework e deverá servir para outras aplicações, mas podia perfeitamente referenciar as chaves da configuração directamente ou mesmo escrever o código do commando (hardcoded). No fim, ele devolve o caminho do ficheiro para enviar para a interface.

Linksys WUSB54G em Linux (Ubuntu)

March 6th, 2009

Não gosto nada da Linksys. Lol. Até brinco com o facto com colegas que ficam pro vezes admirados, já que os equipamentos da Linksys são considerados muito bons e até são feitos pela Cisco. Tudo bem, mas os que me aparecem à frente só dão chatices. Enfim.

De qualquer forma, tenho tido contacto com algumas peças da marca numa instalação, nomeadamente o adaptador WUSB54G, que permite um PC ligar-se à rede através da porta USB. É uma peça um pouco antiquado mas funciona. Também estão a ser usados em maquinas muito idosas, já. Instalar no Linux é que, infelizmente, não é um processo imediato. Tenho encontrado alguma info em foruns, mas as respostas às vezes são tão complexas que até assustam.

Não é, no entanto, assim tão díficil de instalar no Ubuntu. Basta ir buscar uns elementos via o Synaptics. Eles são:

  • ndiswrapper (permite usar drivers wireless do Windows no Linux) 
  • ndisgtk (para ter uma interface gráfica)
  • ntfs-3g e ntfs-config (caso ainda n esteja instalado – permite ler ficheiros do sistema NTFS de uma pen ou disco externo no Linux)
  • gnome-mount (para poder montar automáticamente um disco externo.

As últimas duas são auxiliares, se pretender copiar os ficheiros necessários através de uma pen ou assim a partir do windows. No entanto, são uteis de ter para uma qualquer de chuva como hoje.

Convém puxar os drivers do site da linksys, porque será necessário o ficheiro de extenção .inf para efectaur a instalação do driver. Para o WUSB54G o link é http://www.linksysbycisco.com/US/en/support/WUSB54G/download

Depois de sacar, extrai os ficheiros e copie-os para uma pen para aceder na máquina linux (naturalmente só faz sentido se estiver a puxar os ficheiros de a partir de outro computador)

Abre o NDisgtk (Sistema -> Administração -> Windows Wireless Drivers), precione o botão de instalação do driver, e localiza o ficheiro .inf (no meu caso, estava na pasta <pen:>\linksys driver\WUSB54Gv4_20051110\Drivers\WUSB54Gv4\rt2500usb.inf ).

E já está.. até é simples :D

Instalação de Ubuntu Server 8.10

November 2nd, 2008

Dando continuidade ao post “Construir um ubuntu ( ou uma distribuição própria, por assim dizer..)” que escrevi há dias, decidi escrever aqui um passo-a-passo de como efectuar uma possível configuração, mínima, e com ambiente gráfico.

Então para isso vou seguir com o Ubuntu-server, que me interessa (e instala alguns pacotes na qual tenho interesse, como o servidor LAMP), e vou adicionar um ambiente gráfico e um conjunto de aplicações que considero necessário para o meu uso. Vou efectuar esta instalação numa máquina virtual do VirtualBox, que prefiro a outras aplicações de virtualização como o VMWare.

Para começar, criei uma nova máquina virtual para Ubuntu com 756MB de RAM e um novo disco de 8GB, dinamicamente expansível. Antes de iniciar, é util efectuar uma operação que resulta das características do novo kernel. Porque o kernel 2.6 do linux tem algumas dependências do processador, no Virtualbox, é necessário activar o suporte à virtualização e o PAE (extensão de endereço físico). Para tal, depois de criar a maquina virtual,com o botão direito selecciona Definições -> Geral -> Avançado e seleccione “Activar VT-x / AMD-V” e “Activar PAE/NX”, como mostra a figura:

Se não o activar, ao reiniciar a máquina após a instalação, irá aparecer uma mensagem de panico do kernal:

this kernel requires the following features not present on this CPU
pae
Unable to boot. Please use a kernal apropriate for your CPU

Activando o PAE, esta situação desaparece, e naturalmente o hardware usado tem de suportar a função. Esta solução esta descrita no site Tombuntu.

A máquina está pronta para instalar o ubuntu-server, faltanso apenas carregar (montar) o ISO, para a instalação. Este pode ser efectuado novamente nas definições da máquina virtual, em CD/DVD ROM, escolhendo uma imagem ISO do server (ou então o alternate CD que tb tem imensas opções de instalação, sem instalar o sistema ubuntu completo com os programas).

A instalação é bastante “directa”, bastando seguir os passos descritos. E até é um processo bastante rápido. Basta seguir os passos (é quase sempre “next”).  Ao nível do disco e partições, escolhi “guiado – usar disco inteiro e … LVM”, mas podes utilizar o que é mais conveniente para o teu teste. Neste caso não tinha necessidade de qualquer outro tipo de alteração.

No diálogo de selecção de software, escolhi adicionar o servidor LAMP, Sevridor OpenSSH, e host de Maquinas virtuais. A esolha vem de algumas situações que quero testar. Ao fim de cerca de 10 minutos, o SO está instalado e pronto a utilizar (quase). Resta desmontar o ISO e reiniciar a VM.

Naturalmente, ao iniciar, não teremos nenhum ambiente gráfico. O Ubuntu Server é essencialmente “shell-based” e dependente da linha de comandos. Vamos então adicionar o ambiente gráfico para termos um ambiente mais “comun” e agradável.

No post “Construir um ubuntu ( ou uma distribuição própria, por assim dizer..)” mostrei como adicionar o XFCE, como gestor de janelas. Vou continuar a usar o XFCE para este exemplo. Já testei o GNOME, mas foram demasiados elementos a serem introduzidos para o meu gosto, e o XFCE é levezinho e rápido, o que é optimo.

Então no terminal deve ser exectutado o seguinte comando para actualizar a lista de repositórios da instalação:

sudo apt-get update

Agora segue a instalação de alguns pacotes necessários e uteis:

  • xorg - o sistema gráfico para o linux e que permite ter um ambiente gráfico. Inclui bibliotecas, fonts, suporte para imagens,  e afins do x-server; (Down: 32.1 MB / Espaço Ocupado: 93MB)
  • xfce4 - o gestor de janelas do XFCE (D: 44MB / EO: 177MB)
  • synaptic - gestor de pacotes e de instalação de aplicações (D: 13.5MB / EO: 81.5MB)
  • firefox - browser, quase obrigatório incluir, até para poder pesquisar qualquer situação. A instalação inclui o ubufoz que permite adicionar extensões através do synaptics. (D: 23MB / EO: 84,5MB)
  • ntfs-config - o ubunto tem suporte para o sistema de ficheiros NTFS integrado (através do ntfs-3g) mas para poder escrever correctamente para lá, esta aplicação permite activar a opção de escrita. (D: 45kB / EO: 442kB)
  • thunar-volman – thunar é o explorador de ficheiros do XFCE. O thunar-volman permite uma melhor gestão e integração de discos amovíveis, como pens e afins. Importante para a escrita em NTFS. (D: 73,1kB / EO: 471kB)
  • virt-manager - gestor gráfico de maquinas virtuais baseado no KVM, que foi instalado no server. (D: 1.5MB / EO: 7.3MB)

Para isto lanço o comando:

sudo apt-get install xorg xfce4 synaptic firefox ntfs-config thunar-volman virt-manager

ou instalar cada pacote individualmente, de pretender algum controlo. No mínimo é conveniente ter o xorg, xfce4 e o synaptic, permitindo instalar o resto através do synaptic.

Instalado, resta iniciar o ambiente grafico escrevendo o comando

startx.

Executando a aplicação gráfica de adicionar e remover programas (o menu surge clicando com o botão direito do rato no desktop, e a aplicação está no menu “sistema”). podemos adicionar mais algumas aplicações, nomeadamente:

  • disk analyser - aplicação gráfica com informação sobre o disco e espaço ocupado, com base no Baobab e algumas bibliotecas do Gnome
  • gedit - bloco de notas do GNOME, que estou habituado a usar.
  • monitor de sistemamonitor do sistema, CPU e memória, semelhante ao gestor de tarefas do Windows.
  • 7zip - pacote para ver e abrir ficheiros compactados, também existente para o Windows. (a alternativa gratuita ao WinZip e WinRar).

Uma analise efectuada executando o analisador de disco (Menu -> Accessorios -> Analisador de Utilização do disco), podemos ver o estado da instalação do disco:

São utilizados cerca de 1.4GB do disco, onde cerca de 450MB são programas novos instalados, e 188MB são ficheiros na cache do programa apt (/var/cache/apt), que podem ser removidos se desejados.

Num próximo post, irei referir a configuração do ambiente gráfico, do aspecto, menus e afins. O XFCE é efectivamente interessante e eficiente.