[FUG-BR] Confusões com o gerenciamento de pacotes

Renato Botelho rbgarga em gmail.com
Quarta Maio 21 21:28:57 BRT 2014


On May 21, 2014, at 20:10, Eduardo Lemos de Sa <eduardo.lemosdesa at gmail.com> wrote:

> Oi Renato
> 
> Obrigado pelas dicas e conselhos. Mas abaixo no email, eu vou abusar de sua
> boa-vontade e fazer algumas perguntas.

Opa, vamos lá

> Obrigado por esta informação: eu li muito sobre o gerenciamento dos pacotes
> e isto não havia ficado claro para mim. Agora a pergunta: se o pkgng e o
> ports são maneiras diferentes de se chegar ao mesmo conjunto (armazenado no
> db sqlite, eu preciso fazer um pkg2ng em algum momento? Pelo que eu vi, ele
> só é necessário quando eu estou migrando do antigo pkg_add (não me lembro o
> nome do pacote, só o comando) para o pkgng. É isto mesmo? A confusão pode
> ser causada porque a cada instalação feita usando o ports, aparece a
> mensagem dizendo para habilitar o PKGNG no make.conf, o que dá a impressão
> de que ele não foi habilitado e nem se está usando o novo aplicativo para
> instalar os pacotes.

Na era dos antigos pkg_* tools, você instalava um port ele fazia o seguinte:

- Compilava tudo em ./work (make build)
- Instalava o que foi compilado em /usr/local (make install)
- Registrava todos os dados do port em arquivos txt dentro de /var/db/pkg/$PORT

Ou você podia instalar um pacote binário, já com pkg_add, e ele iria:

- Copiar todos os arquivos pra /usr/local
- Registrar em /var/db/pkg/$PORT

No fim das contas você terminava com os mesmos arquivos instalados no mesmo lugar e registrado em /var/db/pkg

Depois do advento do pkgng, todo o conteúdo do /var/db/pkg/$PORT passou a ser guardado em um db sqlite3, independente se você instala via pkg ou via ports, ele sempre é armazenado no mesmo lugar.

Durante esse processo, imagine que você tem um equipamento com o pkg_ velho e quer migrar pra pkgng? Você teria que seguir poucos passos:

- Marcar no make.conf que você quer o pkgng (WITH_PKGNG=yes)
- instalar o pkg (cd /usr/ports/pkg-mgnt/pkg && make install clean)
- Rodar o comando pkg2ng uma única vez pra migrar os dados pro sqlite

Depois disso você poderia apagar os diretórios lá no /var/db/pkg, só toma cuidado pra não apagar o banco pois ele fica no mesmo lugar.

Agora vamos ao seu caso. Se você tá rodando um 10-STABLE, por default ele já deveria usar o pkgng e nõ dar aquela msg, então o que eu acredito é que a sua árvore do ports está antiga, tem atualizado ela com freqüência com portsnap fetch update?

Se a sua árvore tá velha, ela vai registrar os ports a moda antiga, e os outros instalados via pkg a moda nova, vira uma zona. Então na sua limpeza, aproveita e atualiza o 10-STABLE pros dias de hoje além de atualizar a árvore do ports, fazendo isso deve dar tudo certo. 

> Uma outra pergunta: eu posso apagar os vários diretórios que estão no
> /var/db/pkg? Eles contêm os nomes dos pacotes instalados pelo ports, mas um
> comando pkg version (que deveria listar as versões de tudo que está
> instalado) retorna com uma lista em branco (exceto, é claro, o próprio
> pkgng).

Remove todos os ports e depois limpa o /var/db/pkg por completo.

>> 
>> Sobre o WITH_NEW_XORG=yes, ele também já é default tem um tempo.
>> 
> 
> Já o removi do make.conf (que, agora, existe como um arquivo em branco

Atualiza o Free pro 10-stable de hoje + atualiza o ports

>> 
>> Vamos aos repos, pode remover esse repo do /uar/local/etc, apenas o básico
>> do /etc é suficiente para te atender.
>> 
> 
> Eu já removi o do /usr/local/etc/pkg

Perfeito

>> 
>> Meu conselho, como não sei como ficou o banco de dados depois de tudo isso
>> seria reinstalar tudo usando o pkg, seguindo os passos:
>> 
> 
> Eu também acho mais fácil zerar e começar do início do que desenrolar este
> emaranhado. Eu pensei em fazer isto antes de escrever para a lista, mas
> achei que a minha solução era "viking" demais
> 
>> 
>> - Remover o FreeBSD.conf do /usr/local/etc/pkg/repos
>> - Criar uma lista de tudo o que está instalado usando ‘pkg query %o >
>> lista’
>> - Remover todos os pacotes usando ‘pkg delete -f -a’
>> - Conferir para ter certeza que não existe nenhuma variável referente ao
>> NEW_XORG ou ao PKGNG dentro de /etc/make.conf
>> - Reinstalar todos os pacotes usando ‘pkg install `cat lista`’
>> 
>> 
> A minha lista ainda era o básico e pode ser refeita de cabeça porque
> instalei o xorg, o vim, o xfce4 , o VirtualBox. Os demais pacotes, podem
> vir quando eu sentir a necessidade.

Boa sorte!

—-
Renato Botelho
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
Url : http://www.fug.com.br/historico/html/freebsd/attachments/20140521/ac42f664/attachment.bin 


Mais detalhes sobre a lista de discussão freebsd