Você precisa lembrar que pkg
e portas registram o software instalado no mesmo local (um banco de dados SQLite em /var/db/pkg
). Nenhum sistema registra qualquer informação adicional de que um determinado software foi instalado como um pacote pré-compilado ou como uma porta. Assim, uma vez que uma parte do software é instalada por qualquer abordagem, as ferramentas não têm como saber como ela foi instalada.
Quando você selecionou o suporte do GTK2 para a editors/vim
port, isso foi registrado no banco de dados do pacote. Mais tarde, quando você executou pkg upgrade
, pkg
consultou os dados do pacote para vim
e descobriu que o suporte GTK2 tinha sido habilitado na versão instalada, enquanto não está habilitado no pacote pré-compilado. pkg upgrade
está fazendo exatamente o que deveria - encontrar quaisquer pacotes instalados que sejam diferentes dos pacotes pré-compilados disponíveis e tentar atualizá-los. Essas diferenças podem estar no número de versão, no gráfico de dependência, nas opções de tempo de compilação, etc.
A maneira correta de evitar que pkg
considere uma porta ou pacote (uma vez instalado, não há diferença, no que diz respeito às ferramentas) que você deseja proteger é usar o comando pkg lock
.
Como alternativa, se você estiver alterando as opções em várias portas, considere instalar poudriere
e manter seu próprio repositório de pacotes. Demora um pouco de configuração e funciona melhor se o seu host de compilação tiver um pool de armazenamento do ZFS, embora funcione se você não tiver o ZFS; é uma maneira muito flexível e conveniente de gerenciar construções de software personalizadas.