Я ніколи не був повністю задоволений системою портів у великих умовах - завжди здається, що вам потрібно застосувати до нього зовнішнє управління, щоб змусити його добре працювати.
Мої найкращі поради (з метою зростання переваг, "найгіршого" рішення до "найкращого" рішення):
Якщо ви будуєте кожного хоста, не робіть цього .
Якщо потрібно, не робіть цього над NFS за допомогою кріплення для читання-запису, як ви описуєте: Ви зазвичай можете довіряти портам зробити правильну річ і не тупати по дереву портів, якщо ви надаєте альтернативні робочі каталоги, але завжди краще будьте безпечніші, ніж вибачте: запустіть локальне дзеркало CVS / csup і запускайте всі свої хости з цього вікна, а потім будуйте локально, як би ви були, якби це були окремі машини.
Так, я знаю, це означає мати більше дискового простору на хостах та додатковий крок. Це майже гарантовано без проблем.
Caveat: Напевно, ви хочете синхронізувати файли конфігурації пакета (rsync або подібні) з призначеного "хоста конфігурації", щоб забезпечити послідовність роботи кожної машини (ви навіть можете rsync весь дерево портів, якщо хочете, а не використовувати csup на кожному вузлі).
Скористайте хост побудови, створіть пакети та встановіть їх.
Набагато краще рішення, ніж побудова на кожній окремій машині: використовуйте хост побудови для створення пакетів та наводьте свої інструменти на ці пакунки.
Це означає зберігати хост збірки для кожної запущеної архітектури (або перехресне компілювання), але в кінцевому підсумку приємніше для ваших цільових машин (відсутність великих завдань компіляції, гарантія послідовності)
Використовуйте інструмент для конфігурації / управління системою.
Це рішення, з яким я завершився - я будую стандартне зображення сервера і розгортаю його навколо свого середовища за допомогою radmind
. Ви можете робити подібні речі з Лялькою або шеф-кухарем . Це має всі переваги використання хоста побудови (послідовність, менша навантаження на окремі сервери) та додає перевагу управління конфігурацією.
Caveat: Це працює дуже добре, лише якщо ваші машини "ідентичні" - тобто ви можете встановити один і той же набір портів на всіх. Він може працювати, якщо у вас різні набори портів, але це суттєво збільшує адміністративні витрати.
Відмова: Я підтримую порти для sysutils/radmind
. Так, мені це дуже подобається, що я його прийняв.
Все це базується на моєму досвіді управління різними розмірами середовищ FreeBSD (від 1-2 машин до понад 100). Інструменти конфігурації / управління системою, які натискають і підтримують стандартизоване зображення, справді є найкращим способом вирішити це з мого досвіду.