[FUGSPBR] Comparação entre o apt do Debian e o pkg do FreeBSD

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Qui Nov 11 13:34:05 BRST 2004


Flávio Barros wrote:
> Pessoal,no apt do Debian ou do Conectiva eu faço assim:

Legal a sua pergunta Flávio, interessante pra futuras referências 
também. Primeiro devemos considerar algumas coisas. Em primeiro lugar, o 
fóco primário do apt-get e coisas baseadas nele é a manutenção de 
pacotes, enquanto o fóco principal do FreeBSD é a manutenção de 
aplicaçòes de terceiro por código fonte.

O FreeBSD tem suporte à pacotes também, muito bom por sinal, mas não se 
pode fazer tudo por pacotes que pode ser feito por fonte, ou seja fontes 
(ports) é mais flexível/poderoso que pacotes (pkg), inclusive tendo 
opções de construção definidas pelo usuário, os famosos 
WITH_ALGUMCOISA=yes WITH_OUTRACOISA=<parametro>;

O Debian (apt) tambem tem suporte a "brincar" por codigo fonte, mas é 
limitado quando comparado ao FreeBSD da forma que o suporte a pkg do 
FreeBSD é limitado quando comparado ao apt.

Outra coisa é que o Debian chama de pacotes tudo, desde aplicaçoes de 
terceiros até aplicações da base do FreeBSD, enquanto o FreeBSD é muito 
distinto no que diz respeito à base e aplicaçòes de terceiros. Ao meu 
ver mais organizado, não sai "juntando" tudo. É mais fácil identificar o 
que é da base e o que não é, até visualmente em relação à estrutura de 
diretórios.

Dessa forma alguns dos seus comandos misturam coisas da base e de 
terceiros, enquanto no FreeBSD a distinção é constante.

Basicamente o que pode ser feito via fonte (ports) funciona na estrutura 
esqueleto do ports (ports skeleton) com comandos baseados em "make 
<alguma coisa>" enquanto pacotes tem aplicaçòes pra isso, 
pkg_<algumacoisa>. Várias das coisas que você quer, podem ser feitas via 
fonte e tambem pacote.

Vamos lá.

> apt-get remove pacote (remove o pacote)

(fonte)
cd /usr/ports/<categoria>/<aplicacao>/
make deinstall

(pacote)
pkg_delete <pacote>

> apt-get dist-upgrade (atualiza a distro)

(fonte)
cd /usr/src/
make update

(O sistema deve estar configurado para compreender o make update, 
colocando servidor CVSup, normalmente é feito as etapas passo-a-passo 
que por ser via fonte oferece mais controle ao usuario, processo chamado 
de construção do mundo, refira-se a "make world" na documentacao oficial 
do FreeBSD)

(pacote)
freebsd-update (requer instalacao da ferramenta via Ports, mas 
lembre-se, isso é atualização binária, eu acho péssima idéia, apesar de 
mais fácil, e não oferece customização normalmente feita no 
/etc/make.conf, kernel, etc.)

> apt-get upgrade (atualiza os pacotes instalados)

(fonte)
portupgrade <aplicacao>
portupgrade -a (todos pacotes)
(portupgrad requer instalacao via ports, nao está na base)

(pacote)
não tem ferramenta confiável pra isso;

> apt-get update (atualiza a base de dados ou cache)

O FreeBSD não precisa disso. Normalmente atualiza-se no máximo as 
definições de ports (fonte), e a busca é feita com base nos Makefile's 
da estrutura.

> apt-get check (verificar a integridade da base de dados ou cache)

(fonte)
cd /usr/ports/<categoria>/<aplicacao>/
make checksum

(pacote)
pkg_check <pacote>

> apt-cache search nome (para pesquisar na base de dados ou cache)

(fonte)
cd /usr/ports/<categoria>/<aplicacao>/
make search name=<nome da aplicacao>
OU
make search key=<qualquer palavra chave>

(pacote)
Não tem, use sempre o nome do port para instala-lo, já que são os 
mesmos, ou seja use o metodo acima que a resposta é pra pacotes tbm.

> apt-get clean (limpa os pacotes em cache)

Tambem não tem essa de limpar pacote em cache (ou cache de pacotes) no 
freebsd; mais uma vez depende da existencia/atualizacao do skel de ports 
(/usr/ports)

> apt-get autoclean (limpar os pacotes que não estão sendo
> utilizados ou copiados)

Nunca usei isso no Debian, então não sei exatamente o que ele faz... sua 
descrição nao ajuda muito, eu fico umaginando que ele vai apagar pacotes 
instalados, mas nao sei... nem se isso meche no cache, ou o que...

> apt-get remove –s pacote (simula a remoção)

pkg_delete -n <pacote>

> apt-get install –s pacote (simula a instalacão)

pkg_add -n <pacote>

Via fontes não tem como fazer simulação de fetch, compilacao, 
configuracao, etc, tem no maximo nao isntalar, as a construcao eh feita.

> Como ficaria esses comandos acima com o pkg do FreeBSD ?

Opz, nao tinha lido que voce queria apenas com pkg, então foi ports 
também. Lembre-se, de preferencia à ports em relação à pacotes, 
principalmente porque no minimo ja existe otimizacao das flags do 
compilador C para sua classe de processador, otimizacao que voce pode 
ainda melhorar muito via /etc/make.conf.

Outra observação é que o pkg_add por padrão quer instalar pacotes que 
voce tenha disponivel em disco, e não fazer o download pra voce. Se 
quizer fazer o download e instalar use -r tambem, por exemplo.

pkg_add -r lynx

e por fonte seria

cd /usr/ports/www/lynx
make install clean

-- 
Atenciosamente,

Patrick Tracanelli

FreeBSD Brasil LTDA.
The FreeBSD pt_BR Documentation Project
http://www.freebsdbrasil.com.br
patrick @ freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"

_______________________________________________________________
Para enviar um novo email para a lista: fugspbr em fugspbr.org
Sair da Lista: http://lists.fugspbr.org/listinfo.cgi
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/



Mais detalhes sobre a lista de discussão freebsd