Blog Nerd do Liquuid

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

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

Usuário GNOME :)



Minha passagem pelo mundo mac deu uma boa chacoalhada na minha concepção de desktop. Quando comecei a usar linux (e computadores) a única referência que eu tinha de desktop completo era o windows, já existia o KDE que imitava fielmente o look and feel do windão, mas apenas o look do mac.

Apesar da QT imitar fielmente os controles do mac, a avalanche de menus e opções não deixava dúvidas sobre seu alvo primário, os usuários de windows. E como eu era novo no mundo dos computadores, e o GNOME era um lixo optei em ficar com o KDE 1.0, e sempre adotei distros com KDE.

Eu era um verdadeiro fanboy do KDE, escrevi até mesmo um howto de como operar o sistema, apontando suas similaridades com as outras interfaces e sua capacidade de superar todos os recursos dos concorrentes... Ai, Ai... Bons tempos.

Eu até gostava do GNOME, principalmente usando o enlightenment como windowmanager, naquela época era versão 1.4 ou 1.4 coisa assim, era muito completo mas nada comparado com o KDE 2.2.2 o melhor até a versão 3.5 :)

A RedHat que financiava o GNOME por ver no KDE uma ameaça à liberdade já que o QT não era livre (para fins comercias), botou grana e surgiu o GNOME2 ,tudo novo. Essa nova versão surgiu no RedHat linux 8, meu segundo RedHat (antes eu era vítima do conectiva, fanboy do mandrake e ativista slackware)e pela primeira vez troquei o KDE pelo GNOME... Com o Redhat 9 e o gnome 2.2.x o bixo ficou ainda melhor, apesar dos bugs foi uma grande distro, mas com o pior KDE que já vi.

O tempo foi passando e o GNOME foi secando, várias opções simples como fixar janelas em cima das outras, destacar menus, foram retirados piorando muito sua usabilidade.Substituir o sawmill pelo metacity piorou demais a navegação entre as janelas e tornou os virtual desktops chatos e enfadonhos. Segundo os desenvolvedores tudo isso era para facilitar o uso... tipo, dificulta pra depois facilitar, sei.... A situação chegou a um ponto tal que o próprio Linus Torvalds disse algo parecido com : "O gnome trata os usuários como se eles fossem imbecis", eu mesmo repeti isso diversas vezes.

O problema é que o KDE seguia um caminho diferente, entulhando os menus e as caixas de configuração com opções muitas vezes inúteis e redundantes, o que atrapalhava muito os novatos.

O mac os x segue a tendência do "menos é mais" e o faz com maestria sem acorrentar o usuário como o GNOME fazia. Isso mesmo, fazia, eles voltaram atrás em algumas coisas e hoje consigo usar o gnome sem xingar...Quando fui para o mundo mac achava que o KDE por causa de seu look era mais parecido como mac, mas hoje o gnome possui seus controles, aplicativos e forma de trabalhar muito mais parecidos com os do mac,e admito hoje que não consigo mais usar o KDE ehhheh

O GNOME tem muitos defeitos, assim com o Banshee, mas mesmo o KDE/Amarok sendo tecnicamente superiores tem suas interfaces muito poluidas e cheias de informações inúteis, o que parece mudar com o KDE4, espero ancioso, estou com meus dedos coçando pra pegar o novo opensuse... Alias recomendo o dolphin, um gerenciador de arquivos cópia escarrada do Finder, fantástico !




0 comentários

TAGS : gnome mac windows qt kde fanboy enlightenment redhat mandrake slackware finder dolphin suse

Posts relacionados

Delicious/liquuid/slackware
Banco de dados do pacman :: blog do liquuid
Slackware-Brasil
The Revised Slackware Book Project
Arch Linux, os bons tempos voltaram ? :: blog do liquuid
liquuid's post :: Usuário GNOME :)
Slackware install optimization
.:: Como usar minha WebCam ? ::
Blog do BooT