Час від часу доводиться оновлювати ПО з тих чи інших причин (знайшли уразливість або додався новий функціонал). Є чудово утиліта portupgrade. Але вона написана на ruby. а значить при установці потрібно буде ставити ruby. Що не завжди виправдано, коли у вас не планується використовувати ruby.
Що ж робити? Вихід є. Будемо використовувати утиліту portmaster. Вона написана на shell. а значить досить швидко буде виконуватися і не вимагає залежностей. Нижче буде представлений короткий огляд можливостей даної утиліти з прикладами.
За замовчуванням вона не йде в базовій поставці FreeBSD. тому її потрібно встановити окремо. Наприклад, через порти:
#cd / usr / ports / ports-mgmt / portmaster make install clean
Вилізе діалогове вікно з вибором установки доповнень для оболонок bash / zsh. Якщо ви ними не користуєтеся - можете нічого не вибирати.
Після установки рекомендую пройтися по конфігураційному файлу /usr/local/etc/portmaster.rc і виставити такі змінні:
Як бачимо, є 2 нових пакета, які можна оновити.
Назва пакета має бути повністю, разом з версією. Наприклад, php5-sockets-5.3.6
При цьому якщо потрібно оновити залежності, portmaster про це попередить і видасть запит. продовжувати чи ні.
Без параметрів portmaster буде оновлювати так само і залежні пакети. Якщо потрібно оновити тільки деякі пакети, то використовуйте опцію '-i'. яка дозволить вибрати будь пакети потрібно оновити.
4) Заміна версії пакету інший.
Дуже зручно, коли потрібно оновитися не в межах поточної гілки, а через гілку. Наприклад, оновити php5.2 до php5.3. У портах ці версії рознесені по різних гілках. Робимо так:
#portmaster -o dev / php5 dev / php52
5) Оновлення всіх пакетів, для яких доступні оновлення.
де параметр '-d' означає видаляти старі версії пакетів
6) Вибір джерела оновлень: пакети або порти.
Якщо для вас збірка з портів займає багато часу, можна вказати portmaster'y пробувати оновлюватися спочатку через пакети, і якщо немає потрібної версії, тоді -через порти:
#portmaster -P vim
Якщо вказати ключ '-PP' то буде проведено оновлення ТОЛЬКО ИЗ ПАКЕТІВ. Якщо потрібної версії не виявиться, тоді пакет не буде оновлено.
7) Видалення порту і всіх залежностей невикористовуваних іншими
# Portmaster -e exim portmaster -s exim