Есть разные подходы к поддержанию софта на уровне. Кто-то его обновляет постоянно, кто-то раз в месяц… Мне по душе смотреть на работу порта portaudit. Уже не помню процесс установки его, в в результате он настроился так что выкачивает каждый день свою базу уязвимостей и если в моем софте обнаружена дыра - то пишет в ежедневный отчет. И через какое-то время можно поискать новую версию порта и обновится. (Так как логично, что новый порт не будет доступен в ту же минуту, что и обнаруженая дыра. )

Portaudit

Можем смотреть в письмах от periodica а можем проверить и в консоли

portaudit -Fda

и например получить

Affected package: png-1.2.26
Type of problem: png — unknown chunk processing uninitialized memory access.
Reference:<http://www.FreeBSD.org/ports/portaudit/57c705d6-12ae-11dd-bab7-0016179b2dd5.html>

pkg_version

Другой удобный способ узнать какие порты у вас устарели это утилита pkg_version. Напишите

pkg_version -l ‘<’

или

pkg_version -L ‘=’

и вы увидите какие порты можно по идее обновить. Но для этого имеет смысл сначала обновить дерево портов.

Обновляем софт
Например мы решили обновить png-1.2.26, который имел уязвимость.

Сначала обновляем дерево портов!!!

portsnap fetch
portsnap update

1. способ - грубо но быстро.
cd /usr/ports/graphics/png
make deinstall

===> Deinstalling for graphics/png
===> Deinstalling png-1.2.26
pkg_delete: package ‘png-1.2.26′ is required by these other packages
and may not be deinstalled (but I’ll delete it anyway):
libslang2-2.1.3
php5-gd-5.2.5_1
mc-4.6.1_8

make install clean

Все сделано. Никто из зависимых портов не был затронут. Это иногда плохо. Потому способ номер два.

Portupgrade

2. способ - медленно но верно. Через portupgrade. Если он еще не стоит - поставьте:

cd /usr/ports/sysutils/portupgrade
make install clean

Затем для обновления порта достаточно набрать

portupgrade -rRi vash_port

что приведет к интерактивному обновлению указанного порта с зависимостями в обе стороны. Интерактивному - значит вы будете решать надо ли обновлять какую-то зависимость или нет.

Если вы хотите обновить все устаревшие порты - сначала перестройте базу установленых портов
pkgdb -F
а затем
portupgrade -arR

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 4 out of 5)
Loading ... Loading ...