[FUG-BR] usando pkgng

Renato Botelho rbgarga em gmail.com
Quinta Janeiro 30 16:06:43 BRST 2014


On 30-01-2014 14:49, EnioRM wrote:
> pessoal gostaria de saber sobre este pkgng pelo que eu notei ele instala
> pacotes compilados, estou certo?
> 
> para ports que são instalados a partir da compilação dos sources continua
> normal como antes?

Bom, ports e pacotes binários continuam sendo duas coisas "separadas",
como sempre foram. Os pacotes binários são gerados a partir do ports.

O que mudou com o pkgng foi o seguinte. Durante muito tempo o FreeBSD
ofereceu pacotes binários (utilizando pkg_add, pkg_delete, pkg_*). Mas,
como essas ferramentas eram muito ruins, usar pacotes binários no
FreeBSD era algo não recomendado.

Alguns desenvolvedores tentaram algumas vezes dar uma melhorada nessas
ferramentas, mas, elas eram antigas, mal escritas, não tinha muito pra
onde ir com elas.

Até que apareceu alguém, o bapt@, que resolver escrever o pkgng, feito
do zero, e isso foi o começo de algo que eu nunca tinha visto no ports
do FreeBSD. Uma completa reestruturação da árvore do ports.

1. OPTIONSng - todo o framework de OPTIONS foi refeito, permitindo
coisas como radio, abrir o config quando uma OPTION nova for adicionada,
entre outras coisas internas, reduzindo a complexidade do Makefile dos
ports. Além disso permite que você defina de forma mais simples o que
deseja ligar ou desligar em um port ou em todos eles dentro do
make.conf. Mais informações em /usr/ports/Mk/bsd.options.mk

2. USE_XXX - USES=xxx - isso ainda está em andamento, mas a ideia é
deixar esses knobs de uma forma mais organizada.

3. Staging - Historicamente o port é compilado dentro de ./work e depois
quando você rodava um make install, ele já copiava os arquivos direto
para o /usr/local. Isso atrapalha demais na hora de empacotar e acabava
sendo muito intrusivo. Então dos 24 mil ports, ainda faltam quase 10 mil
pra serem portados pra suportar STAGING, mas a coisa tá andando muito
rápido e eu acredito que em poucos meses tudo estará migrado. Quando o
port suporta STAGING, o processo funciona assim, o make install irá
instalar o port em ./work/stage, criar um pacote binário e instalá-lo
usando o pkg (ou pkg_install em sistemas antigos).

Toda essa modernização permitirá que tenhamos mais opções na hora de
gerar pacotes, como flavours e/ou subpackages.

Outra coisa que vale mencionar, é que pela primeira vez a árvore do
ports possui um branch. A cada 3 meses um novo branch será criado
(2014Q1, 2014Q2, ...). Esses branches apenas recebem updates de
segurança e não de versão, permitindo assim que se mantenha um servidor
sem muitas alterações de versão dos ports.

Ah, e também é legal lembrar que o repositório de pacotes pra pkgng, é
atualizado semanalmente para 11-current, 10.0, 9.2 e 8.4. Tanto do
branch head quanto do 2014Q1, então agora podemos dizer que o FreeBSD
está começando a fornecer pacotes binários de uma forma mais profissional.

Devo ter esquecido bastante coisa, se alguém quiser complementar, por favor.

[]s
-- 
Renato Botelho


Mais detalhes sobre a lista de discussão freebsd