[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