Nunca fiquei totalmente satisfeito com o sistema de portas em um ambiente grande. Parece sempre que você precisa aplicar um gerenciamento externo a ele para que ele funcione bem.
Minhas melhores dicas (em ordem de preferência ascendente, "pior" solução para "melhor" solução):
Se você está desenvolvendo cada host, não .
Se você precisar, não faça isso no NFS com montagens de leitura-gravação como você descreve: Você pode confiar nas portas para fazer a coisa certa e não pisar na árvore de portes se você fornecer diretórios de trabalho alternativos, mas é sempre melhor prevenir do que remediar: execute um espelho CVS / csup local e copie todos os seus hosts daquela caixa, em seguida, construa localmente como se fossem máquinas individuais.
Sim, eu sei que isso significa ter mais espaço em disco nos hosts e uma etapa extra. Também é quase garantido que não há problema.
Advertência: Você provavelmente deseja sincronizar os arquivos de configuração de pacotes (rsync ou similares) de um "host de configuração" designado para garantir a consistência em cada máquina ( você pode até mesmo rsync a árvore de ports inteira se você quiser, ao invés de usar o csup em cada nó).
Use um host de criação, crie pacotes e instale-os.
Uma solução muito melhor do que criar em cada máquina individual: use um host de compilação para criar pacotes e aponte suas ferramentas para esses pacotes.
Isso significa manter um host de compilação em torno de cada arquitetura que você executa (ou compilação cruzada), mas é melhor para suas máquinas de destino (sem grandes tarefas de compilação, uma garantia de consistência)
Use uma ferramenta de gerenciamento de configuração / sistema.
Esta é a solução que acabei tendo - eu construo uma imagem de servidor padrão e implantei em torno do meu ambiente usando radmind
. Você pode fazer coisas parecidas com o Puppet ou Chef . Isso tem todas as vantagens de usar um host de compilação (consistência, menos carga nos servidores individuais) e adiciona o benefício do gerenciamento de configuração.
Ressalva: Isso só funciona muito bem se suas máquinas forem "idênticas" - ou seja, você pode instalar o mesmo conjunto de portas em todas elas. Ele pode funcionar se você tiver vários conjuntos de portas, mas isso aumenta substancialmente a sobrecarga administrativa.
Aviso: sou o mantenedor da porta para sysutils/radmind
. Sim, eu gostei tanto que adotei isso.
Tudo isso é baseado na minha experiência no gerenciamento de ambientes FreeBSD de vários tamanhos (variando de 1 a 2 máquinas a mais de 100). As ferramentas de configuração / gerenciamento de sistemas que empurram e mantêm uma imagem padronizada são realmente a melhor maneira de lidar com isso na minha experiência.