Blog Nerd do Liquuid

Yaourt no Repo



Yaourt permite que usemos os pacotes da comunidade Arch Linux ( AUR ) da mesma forma que gerenciamos pacotes com o pacman. Isso é bem legal já que a maioria dos pacotes interessantes para o ArchLinux estão nos repositórios não oficiais do AUR.

Confesso que não uso a ferramenta já que gosto de revisar e incrementar os scripts antes de instalar os pacotes na minha máquina, essa é uma das razões pela qual mantenho meu repositório .

Em todo caso adicionei a ferramenta ao meu repositório, é inacreditavel que o Yaourt não esteja em nenhum dos repositórios oficiais... Mas levando em conta os riscos que a utilização do yaourt impõe ao sistema, faz sentido manter ela fora. Antes que me perguntem que tipo de falhas, se eu criar um usuário no AUR, e fizer o upload de um script malicioso ele passa a ser visivel imediatamente a todos usuários do yaourt, e como a maioria não revisa os scripts da pra imaginar uma verdadeira epidemia entre todos os 16 usuários do yaourt mundo a fora.


1 comentários

TAGS : yaourt pacman archlinux repo hacker

Banco de dados do pacman



Pacman é o gerenciador de pacotes do archlinux, e como tudo no archlinux ele é simples e tosco (no bom sentido) . Ao contrario do RPM e dpkg que usam banco de dados binários, o pacman tem uma abordagem mais semelhante ao dos BSDs, mantendo as informações dos pacotes em arquivos TXT.

Essa abordagem também é utilizada no slackware, mas em sua implementação a solução é ainda mais tosca, no slack o installpkg guarda as informações em arquivos com o nome dos pacotes no diretório /var/log/packages, por exemplo : /var/log/packages/whois-4.7.21-i486-1 . O conteúdo desses arquivos no slackware é parecido como segue abaixo :


liquuid@aletta:/var/log/packages$ cat whois-4.7.21-i486-1 
PACKAGE NAME:     whois-4.7.21-i486-1
COMPRESSED PACKAGE SIZE:     39 K
UNCOMPRESSED PACKAGE SIZE:     150 K
PACKAGE LOCATION: /var/log/mount/slackware/n/whois-4.7.21-i486-1.tgz
PACKAGE DESCRIPTION:
whois: whois (whois directory client)
whois:
whois: This is an enhanced whois (RFC 954) client derived from the BSD and
whois: RIPE whois programs.  It can automatically select the appropriate
whois: whois server for most queries.
whois:
whois: This version of whois was written by Marco d'Itri
whois: For more information, see:  http://www.linux.it/~md/software/
whois:
whois:
whois:
FILE LIST:
./
usr/
usr/share/
usr/share/locale/
usr/share/locale/ru/
usr/share/locale/ru/LC_MESSAGES/
usr/share/locale/ru/LC_MESSAGES/whois.mo
usr/share/locale/no/
usr/share/locale/no/LC_MESSAGES/
usr/share/locale/no/LC_MESSAGES/whois.mo
usr/share/locale/el/
usr/share/locale/el/LC_MESSAGES/
usr/share/locale/el/LC_MESSAGES/whois.mo
usr/share/locale/ja/
usr/share/locale/ja/LC_MESSAGES/
usr/share/locale/ja/LC_MESSAGES/whois.mo
usr/share/locale/es/
usr/share/locale/es/LC_MESSAGES/
usr/share/locale/es/LC_MESSAGES/whois.mo
usr/share/locale/de/
usr/share/locale/de/LC_MESSAGES/
.
.
.
.
usr/doc/whois-4.7.21/COPYING
usr/man/
usr/man/man1/
usr/man/man1/whois.1.gz
install/
install/slack-desc

Arquivo possui apenas uma descrição completa do pacote, tamanho do pacote e a lista de arquivos instalados no sistema. Não há informações sobre dependências (ao contrario das crendices populares o slackware também precisa corrigir dependências) , num sistema slackware puro o usuário deve corrigir as depedências manualmente. Também não está registrado os checksums, o usuário deve checar a autenticidade dos pacotes que está instalando manualmente.

O pacman tem uma abordagem diferente, ele traz dois bancos de dados, um local e outro remoto (sync). Ambos ficam no diretório /var/lib/pacman/{local,sync}. O banco de dados local é populado com diretórios, um para cada pacote instalado, exemplo : yasm-0.7.1-1 . Dentro desse diretório encontramos três arquivos : depends , desc e files.

O arquivo depends traz informações sobre as dependências exemplo :


[liquuid@amakusa yasm-0.7.1-1]$ cat depends 
%DEPENDS%
glibc


O arquivo desc, traz informações como tamanho, empacotador etc...


[liquuid@amakusa yasm-0.7.1-1]$ cat desc 
%NAME%
yasm

%VERSION%
0.7.1-1

%DESC%
Yasm is a complete rewrite of the NASM assembler designed from the ground up to allow for multiple assembler syntaxes to be supported (eg, NASM, TASM, GAS, etc.)

%URL%
http://www.tortall.net/projects/yasm/

%LICENSE%
custom

%ARCH%
i686

%BUILDDATE%
1211487016

%INSTALLDATE%
1216511055

%PACKAGER%
AndyRTR_

%SIZE%
1623772

%REASON%
1


O arquivo files lista o conteúdo do pacote:


[liquuid@amakusa yasm-0.7.1-1]$ cat files 
%FILES%
usr/
usr/bin/
usr/bin/yasm
usr/include/
usr/include/libyasm-stdint.h
usr/include/libyasm.h
usr/include/libyasm/
usr/include/libyasm/arch.h
usr/include/libyasm/assocdat.h
usr/include/libyasm/bitvect.h
usr/include/libyasm/bytecode.h
usr/include/libyasm/compat-queue.h
.
.
.
usr/share/licenses/
usr/share/licenses/yasm/
usr/share/licenses/yasm/COPYING
usr/share/man/
usr/share/man/man1/
usr/share/man/man1/yasm.1.gz
usr/share/man/man7/
usr/share/man/man7/yasm_arch.7.gz
usr/share/man/man7/yasm_dbgfmts.7.gz
usr/share/man/man7/yasm_objfmts.7.gz
usr/share/man/man7/yasm_parsers.7.gz

O diretório sync traz informações parecidas para todos os pacotes oferecidos pelos servidores remotos. Dentro do sync existe um diretório para cada repositório, e dentro dele diretórios para todos os pacotes. Assim como nos pacotes instalados localmente os pacotes listados no diretório sync também tem suas propriedades descritas por arquivos, mas apenas : depends e desc. Mas com uma diferença básica. o arquivo desc possui um hash md5 para garantir a autenticidade do pacote.

Simples, tosco e funcional :0)


1 comentários

TAGS : pacman archlinux slackware db

Meu repositório Arch Linux :-D



Agora eu tenho meu repositório particular de pacotes binários para o archlinux i686, para adicionar meu repo no seu pacman adicione as seguintes linhas no final do arquivo pacman.conf do seu sistema :

[liquuid]
Server = http://www.liquuid.net/arch/repo/

Para listar os pacotes disponíveis no meu repositório digite :
pacman -Sy
pacman -Sl liquuid

Simples rápido e sem complicação. PS: Todos pacotes testados e aprovados pelo namcap !


9 comentários

TAGS : archlinux repo pacman namcap

Pacman, comandos básicos



O arch linux tem o gerenciador de pacotes pacman, que é esperto como o yum do fedora, e rápido como um tar xzvf :) Note que não falei do apt-get :P

A lógica de funcionamento é diferente dos outros packages managers , ele tem basicamente quatro campos básicos, e algumas ações inerentes a esses campos. Os campos são :

  • S : Sync, ele sincroniza os comandos de ação à árvore de pacotes dos mirrors
  • U : Upgrades ,realiza Upgrades a partir de pacotes locais ou URLs, mas não resolve dependências
  • Q : Query, realiza buscas e operações com seu banco de dados de pacotes locais, como dependências, package ownership de arquivos , lista pacotes etc...
  • R : Remove pacotes, com suas dependências ou não

A conjunção dos campos com as ações no início não são nada intuitivas, mas com o tempo as coisas fazem mais sentido . Segue uma tabela comparativa entre yum, apt, emerge e pacman :

descrição pacman apt / dpkg yum / rpm emerge
Sync com servidor pacman -Sy apt-get update - emerge --sync
Atualização do sistema pacman -Suy apt-get upgrade/dist-upgrade yum update emerge -u world
Busca por pacotes pacman -Ss apt-cache search yum search emerge -s
Instalação de pacote via servidor remoto pacman -S apt-get install yum install emerge
Instalação de pacote local pacman -U/A dpkg -i yum install -
Remoção de pacotes pacman -R apt-get remove yum remove emerge unmerge
Listar conteúdo de pacote pacman -Ql dpkg -L rpm -ql ???
Encontrar pacote dono de arquivo pacman -Qo dpkg -S rpm -qf ???

Os campos marcados com "-" não se aplicam ao programa, os campos com "???" eu desconheço tal função, o que não quer dizer que não exista.

Esses são os comandos que mais uso no dia a dia, espero que a tabelinha seja útil :)


5 comentários

TAGS : pacman archlinux yum apt dpkg rpm emerge lista

Arch Linux, os bons tempos voltaram ?



Minha história com o linux sempre foi meio conturbada mas durante muito tempo foi uma relação estável e saudável. Nunca fui fiel a uma única distribuição, sempre migrei para as versões mais novas conforme o release, naquela época não era possível baixar uma ISO da internet em um dia , dois ou uma semana :P

Eu comprava minhas distros na livraria temporeal , custava 10 reais cada CD... Minha primeira distro foi o Debian Potato, lixo completo, não reconhecia vídeo, áudio ou o meu modem... Depois comprei o Conectiva 5, ainda tenho o box, funcionou o vídeo mas nada de áudio ou modem. Então migrei pro mandrake, funcionou vídeo com aceleração 3d , som mas não o modem.

O slackware foi uma revolução, pois com ele aprendi a compilar o kernel, o que me abriu um mundo novo de possibilidades... Com ele deixei de ser refém do linux e tomei o controle, fiz aceleração 3D, som e após 6 meses o meu modem... Com isso aposentei o Windows 2000 que tinha na minha máquina e nunca mais usei sistemas da Microsoft pra algo além de jogar.

É claro que depois conheci, gentoo, redhat, LFS, fiz minhas próprias distros , fiz as pazes com o debian, odiei o ubuntu, mandei o debian pra PQP, conheci o fedora , abandonei o fedora , voltei pro gentoo .... Mas quero me ater ao Slackware pois ele me lembra muito o ArchLinux.

O slackware fez minha alegria pois todo o sistema deve ser configurado na mão, não existem configuradores automáticos ou scripts que ninguém sabe pra que serve. Um ótimo ambiente para aprendizado, ideal para quem tem máquina velha. Deixei de usar o slack por mais de 2 / 3 do meu sistema era composto de pacotes que eu mesmo fazia, o número de pacotes era tão grande que enchia 2 cds com pacotes TGZ, e olha que na época cabia o KDE e o GNOME inteiros em um único CD-ROM de 650 Mb. Junto com Roberto Parra, hospedamos boa parte desses pacotes no seu servidor e doamos para o site linuxpackages , naquela época não conhecia o coletivo Saravá , que possuem um dos maiores e melhores repositórios de pacotes slackware .

O que me incomodava no slack era o sistema de pacotes, que não tinha resolução de dependências ou upgrades, e levando em conta que gastava boa parte do meu tempo recompilando pacotes minha migração para o Gentoo foi natural . Nessa época o gentoo bombava, a politica era a de pacotes novos sempre... Mas esse espirito se foi com a saída de Daniel Robins a distro ficou abandonada e hoje está sem rumo.

O Arch linux ocupou esse espaço deixado pelo gentoo, com as vantagens do slack e do fedora, saca a política dos caras :
  • Pacotes recentes, custe o que custar, bem no estilo fedora
  • Sistema simples, com scripts de inicialização estilo BSD, como no Slackware
  • Pacotes binários com foco em desempenho apenas para i686 e x86_64, desempenho bom como no gentoo
  • Facilidade de criação de pacotes, como no slack
  • Instalação em TXT, com dialogos, muito simples, como no slack
  • Detecção automática de hardware de c* é r**a !!!
  • Gerenciamento de pacotes rápido e eficiente, resolvendo conflitos sem precisar de apt-get -f install , viva o Pacman !
  • Distro muito bem documentada como o Gentoo, e com ótimos cérebros nas listas... Diferente das listas do Ubuntu e Fedora que só tem n00b
A distro é muito legal, e é a distro geek que mais cresce atualmente ! Por incrivel que pareça ela tem foco em usabilidade, não estressa os nerds de plantão, acaba com os aborrecimentos tipicos de uma configuração/manutenção do slack . E não é recomendada para n00bs, vai usar Ubuntu seu lerdo !

Senti uma certa nostalgia ao usar o arch, e me lembrei dos bons tempos de quando usar o linux era uma experiência gratificantes ,educativa e divertida. Arch vem com muitos drivers proprietários nos repositórios e no CDROM, oque elimina a parte chata de usar uma distro tão simples.

Nas minhas próximas máquinas vou instalar Arch com certeza, e agora passa a ser minha recomendação de distro para o ano de 2008 ;-)


8 comentários

TAGS : archlinux fedora debian slackware ubuntu distro metalinux komain moobuntu pacman

Pac Man: The Movie



Sim, eles fizeram ! Um filme baseado no game Pac Man, duvida ?

Jesus....


0 comentários

TAGS : pacman movie hahaha

Posts relacionados

Delicious/liquuid/pacman
Meu repositório Arch Linux :-D :: blog do liquuid
Banco de dados do pacman :: blog do liquuid
Arch Linux, os bons tempos voltaram ? :: blog do liquuid