Como atualizar uma mistura de pacotes e portas no FreeBSD

18

Eu uso principalmente pacotes no FreeBSD, porque a maioria deles é adequada para mim. Alguns não me agradam, no entanto, como o vimpacote, que não inclui um gráfico gvim.

Sem problemas. Eu posso instalar a porta, usando portmaster editors/vime selecionando a GTK2opção. Isso funciona bem.

No entanto, quando corro pkg upgradedepois de um tempo, recebo o seguinte:

        Reinstalling vim-7.4.110_3 (options changed)

O que da? Não alterei nenhuma opção e não há nova versão (também não nas portas). Está comparando minha porta instalada com a versão remota sem GTK2?

Claro que posso deixar pkg upgradeseu trabalho e instalar a porta novamente depois, mas isso é estúpido. Qual é a maneira recomendada de atualizar uma mistura de pacotes e portas?

Ricardo Buring
fonte
Está usando pkg locka solução recomendada? Funciona, mas espero que algo tão simples quanto isso possa ser tratado automaticamente.
Ricardo Buring 20/01
Sim, pkg locka solução foi projetada para isso: na página de manual: “pkg lock é usado para bloquear pacotes contra reinstalação, modificação ou exclusão.”.
Dereckson
este post foi encerrado. Mas eu gostaria de dizer que tenho até agora o mesmo problema. Eu tinha perguntado ao Fórum do FreeBSD "Usando pacotes e portas ao mesmo tempo?" E um membro me deu o conselho de usar um script para atualizações de instalação, como ele fez. Você pode encontrá-lo na resposta dele.
HL1234

Respostas:

15

Você precisa se lembrar que as pkgportas e registram o software instalado no mesmo local (um banco de dados SQLite /var/db/pkg). Nenhum sistema registra informações adicionais de que um determinado software foi instalado como um pacote pré-compilado ou como uma porta. Assim, uma vez que um software é instalado por qualquer uma das abordagens, as ferramentas não têm como saber como ele foi instalado.

Quando você selecionou o suporte GTK2 para a editors/vimporta, isso foi registrado no banco de dados do pacote. Quando você executou mais tarde pkg upgrade, pkgolhou para os dados do pacote vime descobriu que o suporte ao GTK2 havia sido ativado na versão instalada, enquanto não estava ativado no pacote pré-compilado. pkg upgradeestá fazendo exatamente o que deveria - encontrando todos os pacotes instalados diferentes dos pacotes pré-compilados disponíveis e tentando atualizá-los. Essas diferenças podem estar no número da versão, gráfico de dependência, opções em tempo de compilação etc.

A maneira correta de impedir a pkgconsideração de uma porta ou pacote (uma vez instalado, não há diferença, no que diz respeito às ferramentas) que você deseja proteger é usar o pkg lockcomando

Como alternativa, se você mudar as opções em várias portas, considere instalar poudrieree manter seu próprio repositório de pacotes. É preciso um pouco de configuração e funciona melhor se o host de construção tiver um pool de armazenamento ZFS, embora funcione se você não tiver o ZFS; é uma maneira muito flexível e conveniente de gerenciar compilações de software personalizadas.

D_Bye
fonte