sábado, agosto 26, 2006

O fim deste blog

Lamento informar aos meus três fiéis leitores que este blog não será mais atualizado. O lado bom da notícia é que eu não desisti de blogar :) Só vou mudar a ferramenta, sem precisar de operação na Tailândia :) Eu virei fã de Wikis, assim peço que vocês visitem http://profs.if.uff.br/tjpp/blog, onde as notícias (e posts) passarão a ser sobre Física,Debian/Ubuntu,GNU/Linux,etc.

A todos vocês que visitaram aqui, muito obrigado e espero contar com sua participação no novo site/blog. Irei repassar os posts daqui para o novo blog, aos poucos, atualizando.

domingo, agosto 06, 2006

DokuWiki: Um Wiki para documentação

Eu precisava de uma maneira simples para que os professores -- como eu :) -- se motivassem a disponibilizar o material de cursos, artigos científicos, etc. Claro que, para quem conhece, o Wiki é a saída natural para estes casos. O problema é que o mundo Linux oferece muiiiitas opções de Wikis. Um Wiki para a gente tem que ter as seguintes características:
  • suporte ao LaTeX, usado por 93,75% dos cientistas
  • arquivos em modo texto, para os hackers poderem usar o editor que quiserem
  • distribuição de textos em seções (fundamental para documentação)
  • facilidade de utilizar tabelas, pelo menos CSV
  • desejável suporte ao GNUplot, embora alguns prefiram o Grace
  • suporte simples para galeria de imagens
Com estas restrições, a escolha foi relativamente fácil: o Dokuwiki. De quebra, ele tem uma facilidade adicional: pacote Debian/Ubuntu (e instruções para funcionar com o lighttpd ;) ). Neste caso, o que eu poderia fazer além do aptitude install ???
Sempre alguém pode dar contribuições ao Software Livre mesmo que não tenha conhecimento técnico: eu traduzi a página de sintaxe, reuni as informações sobre os plugins necessários e escrevi um tutorial. Apesar de umas poucas instruções específicas para o IFUFF, acho que este tutorial pode servir a mais pessoas: acesse-o em http://wiki.if.uff.br/wikidowiki.

Caso deseje contribuir, deixe seu comentário no fórum de Computação em http://forum.if.uff.br.

sábado, julho 29, 2006

Instalando um .tar.gz a la Debian


Este post vai para o Filipe Guimarães, que faz o mestrado na UFF. Eu fui comentar que ao usar uma máquina Windows para atualizar o firmware de um access point Linksys, o arquivo foi salvo em um lugar que eu não encontrava (Local Settings) mas tinha o path completo. Ele disse que a relação minha com Windows era a mesma dele com peixe: ele odeia peixe e toda vez que tenta comer, acha espinha.

Ele recebeu os CDs da Canonical e instalou o Ubuntu. Alguns comentários dele são pertinentes, outros são totalmente inexplicáveis ("O visual do Windows é melhor que o do Linux"). Claro que não visitou http://www.gnome-look.org, http://www.kde-look.org, etc. O comentário dele era que é "muito chato instalar tar.gz". Ele sabe programar portanto compilar não é problema: o grilo são as dependências. Enquanto o fantástico APT resolve dependências e mostrar que procurar e instalar programas no Linux pode ser mais fácil que no Windows, quando o programa não está ainda empacotado, o problema é mais sério, concordei. Mas será que o projeto Debian não pensou em facilitar a vida em algo tão importante quanto instalar programas a partir dos fontes ? A resposta é: é claro que sim!!! Assim, apresento a vocês o auto-apt.

Vou demonstrar usando um pacote chatíssimo de instalar mas que vale a pena: o Xmoto. Escolhi este programa, pois assim apresento o "The Linux Game Tome", em http://happypenguin.org, assim ele não vai dizer que precisa do Windows para os jogos ;) A versão do Dapper é a 0.1.10 e já saiu a versão 0.2.0 (em outro post vou mostrar como atualizar pacotes ;)
O Xmoto depende do X, SDL, SDL_mixer, OpenGL, Lua, etc.. Em primeiro lugar instalamos e atualizamos o auto-apt

sudo apt-get install auto-apt
sudo auto-apt update
sudo auto-apt updatedb
sudo auto-apt update-local

Baixe o arquivo xmoto-0.20.src.tar.gz, por exemplo, de http://xmoto.free.fr/. Descompacte o arquivo (eu faço isto em uma pasta Pacotes). Vá para ela e rode

cd Pacotes
tar -zxvf xmoto-0.20.src.tar.gz
cd xmoto-0.2.0
auto-apt run ./configure

O auto-apt vai perguntando pelos pacotes à medida que o script configure vai rodando. Ao selecionar Install, tome o cuidado de esperar que o pacote seja baixado antes de mandar instalar o seguinte (isto é meio esquisito, concordo), senão vai dar erro de lock.

Free Image Hosting at www.ImageShack.us

Se der erro, rode o comando novamente. Se for a primeira vez que você compila, o processo vai demorar um pouco pois precisaremos baixar todas as dependências.
Agora é só compilar o programa

make

O Filipe reclamou que não sabe onde o Linux coloca os arquivos também (claro que ele ainda não aprendeu sobre a LSB (em http://lsb.freestandards.org/ ;). Eu vou mostrar como criar um pacote a partir do fonte compilado: não é a maneira recomendada, mas é útil para iniciantes: você pode retirar o seu programa quando for lançada a versão do pacote oficial (que, entre outras coisas, coloca um link no menu). Instale o checkinstall

sudo apt-get install checkinstall

e rode no diretório onde você acabou de compilar o xmoto:

checkinstall make install

Responda às perguntas e a descrição do pacote. Isto vai criar o arquivo xmoto_0.2.0-1_i386.deb que você pode instalar

sudo dpkg -i xmoto_0.2.0-1_i386.deb

Pronto, você já tem o xmoto no seu computador, compilado a partir dos fontes. Em resumo, você precisa de três comandos para instalar um pacote a partir dos fontes: auto-apt run ./configure; make e checkinstall make install.

Se o auto-apt não encontrou alguma dependência é porque a mesma não foi empacotada. Aí a coisa fica um pouco mais chata, pois você tem que compilar a dependência, seguindo os passos acima. O arquivo que vai te dar a dica do que está faltando é o config.log.

P.S.: se você já se sentir confortável compilando pacotes, é uma boa rodar o ./configure --help. Pode ser que alguma opção de compilação não seja ativada por default no pacote mas que pode te interessar.

P.S.: um guia de referência sobre como criar pacotes e atualizá-los está no Manual do SysAdmin do IFUFF, em Wiki do Operador.

quinta-feira, julho 27, 2006

Migrando páginas pessoais de servidores Web

Nós lançamos a nova homepage da Física em http://www.if.uff.br . A página agora está hospedada em um servidor Dell e rodando o Dapper. A dor de cabeça é a migração das páginas pessoais do servidor velho para o novo servidor: eu não queria fazer um copy direto pois várias homepages estão desatualizadas e deixando por conta do usuário, só aqueles em interesse em manter uma homepage farão a migração. O problema é como manter as páginas antigas na máquina velha ainda acessíveis, principalmente pelos mecanismos de busca ?

A resposta vem em uma linha ( eu amo o Apache!!!): no novo servidor, edite o /etc/apache2/sites-enabled/nome-do-site com uma linha semelhante a

UserDir /var/www/users http://servidor-velho/~*

onde as novas contas foram criadas no /var/www/users e o antigo endereço é o http://servidor-velho. Veja que maravilha: se a página ainda não foi migrada, o servidor manda para o antigo, sem intervenção do usuário :) Eu acho que o pessoal do Apache pensa o tempo todo em mim ...

Eu não sabia desta característica do UserDir, mas foi mão na roda :)

sábado, julho 22, 2006

Este Blog é lido nos cinco continentes

O mapinha na barra à direita, do clustrmaps.com, marca os locais dos visitantes do fórum. Eu precisava de uma visita da África para dizer que meu blog é lido em todos os 5 continentes. Obrigado ao ilustre visitante do Continente Mãe que me visitou: me deixa ainda mais metido e arrogante :)

Uma curiosidade (de físico): os visitantes da Oceania, Ásia e África, estão todos no litoral. Brasil, Europa e USA estão espalhados. Será que a web também é concentrada nos litorais destes continentes ? Ou será devido à tradição pesqueira de nossos colonizadores portugueses (já que a maioria do pessoal que lê este blog deve ler português ) ?

Para quem gosta de Física e Linux


Para quem gosta de Física (tem gente que gosta de Windows, e daí???), eu mantenho um fórum: Fórum da Física. Lá colocamos as notícias mais quentes sobre Física e Ciências, em liguagem para leigos, tanto quanto possível, além de debatermos sistemas operacionais "alternativos": a coisa é tão off que o Mac OSX está vencendo a enquete sobre sistemas operacionais :)

Alguns fóruns são específicos da UFF mas vários são de interesse geral. Sejam bem vindos: a inscrição é necessária para postagem mas o fórum é aberto. Agora mesmo rola uma enquete sobre o wallpaper da próxima atualização dos nossos laboratórios: vamos migrar do Debian Etch para o Dapper. Observe o logo do Instituto na página principal do fórum e submeta seu wallpaper.

sexta-feira, julho 21, 2006

Repositório com Lighttpd e Awstats

Resolvi instalar o Ubuntu em um K6-II 450 com 128Mb de RAM. Eu tenho uma particular atração por K6-II: quando eu me mudei para Boston em 1997, eu comprei um K6-200 assim que cheguei lá e ainda tenho meu notebook K6-366 com 96Mb de RAM. Eu atualizei o desktop umas três vezes em um ano e meio que morei lá. Lembro que na última atualização comprei memórias PC 100 (128Mb) e um HD de 10Gb. A placa de vídeo era uma fantástica Matrox G200, uma das primeiras a ter aceleração no Linux, já que a Matrox era amiga (não sei como está a situação hoje, é tão difícil encontrar Matrox, por aqui).

Mas vamos lá: instalei o Breezy e optei por server (a máquina vai ser uma servidor). A instalação foi sem problemas e me dei ao luxo de fazer um LVM (caso venha adicionar outro HD). O mais legal foi a BIOS identificar o HD de 160Gb como sendo de 8Gb!! O que um linuxer faz nesta hora ?? .... Morre de rir e manda seguir a instalação. Depois de instalado o Breezy, fiz um aptitude update e voltei no dia seguinte.

No dia seguinte (hoje), resolvi montar o repositório: usei os scripts do post anterior e decidi não fazer espelho do cypherfunk e do plf: o do Seveas cobre este pessoal e é mais atualizado. Resolvi fazer um mirror do Edgy também. Vejam no post Criando espelhos do Ubuntu, é tão fácil quanto entrar no vi e dar :%s/dapper/edgy/g e :wq ;)

Para servir o repositório resolvi instalar o lighttpd: "A fast webserver with minimal memory footprint". Simples e rápido

aptitude install lighttpd

Acreditam que já temos o webserver funcionando ??? Eu ainda achei a página inicial e como ele mostra diretórios muito mais bonito que o Apache:

Agora é só colocar os repositórios em /var/www e permitir acessos externos, alterando no /etc/lighttpd.conf

## bind to localhost only (default: all interfaces)
#server.bind = "localhost"


De quebra vamos colocar o awstats para ter estatísticas de acesso.

aptitude install awstats

Adicione a seguinte linha no /etc/lighttpd/lighttpd.conf (procure por alias.url)

alias.url += ("/awstats-icon/" => "/usr/share/awstats/icon/")

O formato do log do lighttpd é um pouco diferente do Apache. Se você não quiser identificar o sistema operacional e o browser, já está pronto mas porque perder a chance de ter um site com 100% Linux e 100% Firefox ;)

Copie o /etc/awstats/awstats.conf para /etc/awstats/awstats.SEU_HOSTNAME.conf (eu usei espelho como hostname). Edite o arquivo criado, modificando as seguintes linhas

LogFile="/var/log/lighttpd/access.log"
SiteDomain="espelho.if.uff.br"
LogFormat="%host %host_r %other %time1 %methodurl %code %bytesd %refererquot %uaquot"


Reinicie o lighttpd:

sudo /etc/init.d/lighttpd restart

e acesse http://SEU_SERVIDOR/cgi-bin/awstats.pl?config=SEU_HOSTNAME

Agora acerte os sources.list dos micros que irão acessar seu servidor :)

UPDATE: a instalação do awstats cria uma entrada no /etc/cron.d só que preparada para o apache. Edite o arquivo /etc/cron.d/awstats para algo como:

0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.espelho.conf -a -r /var/log/lighttpd/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=espelho -update >/dev/null

sexta-feira, julho 14, 2006

Reempacotando os pacotes


No post que eu conto minhas experiências com aplicações de 32 bits no amd64, eu disse que era fácil atualizar o Firefox32 rodando o

$ sudo firefox32

O problema é que se eu quiser replicar o processo ou instalar nas outras máquinas terei que rodar as atualizações em todas elas e isto não é automático, certo? ..... Errado, pois tem coisas que só Debian faz para você. Existe um utilitário, o dpkg-repack, que refaz um pacote debian a partir de um pacote instalado. Ele é ideal para quando você configurou algum pacote e gostaria de salvar aquela configuração ou replicá-la em outra máquina.

Veja como é simples:

$ sudo apt-get install dpkg-repack
$ sudo dpkg-repack firefox-32

Note que ele vai reconstruir o pacote mantendo o nome, que era firefox-32_1.5.0.3-preview0_amd64.deb
Para consertarmos a informação, vamos usar as dicas anteriores

$ mkdir tmp-firefox
$ dpkg -e firefox-32_1.5.0.3-preview0_amd64.deb tmp-firefox/DEBIAN
$ dpkg -x firefox-32_1.5.0.3-preview0_amd64.deb tmp-firefox
$ vi tmp-firefox/DEBIAN/control

Mude a linha correspondente para

Version: 1.5.0.4-1

Reconstrua e instale o pacote

$ dpkg -b tmp-firefox/ firefox-32_1.5.0.4-1_amd64.deb
$ sudo dpkg -i firefox-32_1.5.0.4-1_amd64.deb

Pronto, você agora tem o firefox atualizado prontinho para distribuição.