Если воспользоваться возможностями утилиты portaudit, то возникает вопрос о том, как корректно обновить установленный софт, чтобы устанить уязвимости. Надеюсь, что за актуальностью системы портов вы следите, иначе необходимо обновить порты вручную.
Итак, выполним установку portupgrade из системы портов:
# cd /usr/ports/ports-mgmt/portupgrade && make install clean && rehash |
Поскольку на серверах не использую графический интерфейс, то следует последовать совету и добавить в make.conf инструкцию сборки - без поддержки Х-сервера:
# echo 'WITHOUT_X11=yes' >> /etc/make.conf |
Обновлять софт не так и сложно. Синтаксис запуска portupgrade следующий - portupgrade <имя_порта>. Однако, не стоит забывать о том, что во время обновления сервис будет остановлен, к тому же могут обнаружиться и другие "неожиданости", поэтому обновление рекомендую проводить в часы, когда простой сервиса будет "незаметен". Также рекомендую перед каждым обновлением сохранять копию конфигурационных файлов.
Ну и не стоит забывать о золотом правиле: "Работает - не трогай". На наиболее критичных серверах обновление софта выполняю только согласно вывода portaudit, устраняя уязвимости. Постоянно обновляться - себе дороже, поскольку службы на этих серверах должны работать 24 часа в сутки, 7 дней в неделю.
Ну а для некритичных серверов рекомендую обновлять весь софт до последней версии. Посмотрим, какие установленные порты успели "устареть":
# pkg_version -v | grep "need" nmap-5.61.t2 < needs updating (port has 5.61.t4) pcre-8.21 < needs updating (port has 8.21_1) ru-freebsd-doc-20110110 < needs updating (port has 20111014) |
Выполним обновление на примере nmap.
Проверим, какая версия nmap установлена в даный момент:
# pkg_info | grep nmap nmap-5.61.t2 Port scanning utility for large networks |
Выполним процедуру обновления с помощью portupgrade:
# portupgrade nmap-5.61.t2 |
По завершению обновления проверяем текущую версию:
# pkg_info | grep nmap nmap-5.61.t4 Port scanning utility for large networks |
Что ж... Успешно обновились до новой версии. Аналогично необходимо поступить с pcre-8.21 и ru-freebsd-doc-20110110.
Также можно выполнить "ход конем", запустить обновление всех установленных портов:
# portupgrade -aR |
Используемые ключи:
Также, во время обновлений можно увидеть сообщение системы, в котором предлагается выполнить команду pkgdb -F. Эта команда выполнит обновление базы данных пакетов, которая хранится в /var/db/pkg/pkgdb.db. Запуск команды проводит коррекцию в интерактивном режиме, запрашивая у пользователя, как необходимо поступать в определенных ситуациях.
Однако стоит иметь ввиду, что portupgrade - это целый набор утилит:
Теперь более подробно о некоторых инструментах.
Portupgrade
Служит для обновления установленного ПО до более новой версии. Способы использования portupgrade уже описывались, поэтому не будем останавливаться на этом.
Portinstall
С помощью portinstall можно устанавливать новый софт из портов.Пример использования:
# portinstall /usr/ports/misc/mc-light |
Portversion
Утилита portversion служит для сравнения версий установленных портов с версиями, которые находятся в портах. Пример использования:
# portversion | grep ipcalc ipcalc = |
Результат "=", означает, что пакет в обновлении не нуждается. Результат ">" означает что установлен пакет новее, чем присутствует в базе портов, а "<" – означает что пакет устарел и нуждается в обновлении.
Исходя из этого, проверить, какие порты нуждаются в обновлении, можно такой командой:
# portversion | grep \< |
Portsclean
Утилита portsclean служит для чистки дерева портов от "мусора", который остается после неудачных сборок.
Для очистки каталогов, которые используется для сборки, выполняем такую команду:
# portsclean -C |
Для очистки /usr/ports/distfiles от устаревших исходников необходимо выполнить:
# portsclean -D |
Portsdb
Для создания файла базы данных INDEX.db в /usr/ports запускаем portsdb с такими ключами:
# portsdb -Uu |
Просмотреть содержимое INDEX.db обычным просмотрщиком не получится, поскольку это не текстовый ASCII файл. Однако некоторые утилиты portupgrade используют эту базу данных. Btree - алгоритм базы данных, специально предназначенный для просмотра большого количества данных. Многие утилиты portupgrade быстрее и эффективнее "родных", благодаря Btree.
Ports_glob
Утилиту ports_glob можно использовать для поиска месторасположения порта относительно /usr/ports. Пример:
# ports_glob unzip archivers/unzip |
Portcvsweb
Portcvsweb - псевдобраузер. Для запуска воспользуйтесь:
# portcvsweb -F |
Pkgdu
Утилита pkgdu, как уже оговаривалось, служит для подсчета места, занимаемого програмным обеспечением. Например, посмотрим, сколько занимает утилита iperf (в килобайтах):
# pkgdu -k iperf 112 iperf-2.0.5 |
Для обзора возможностей необходимо воспользоваться ключем -h.
Pkgdb
Утилита pkgdb служит для исправления зависимостей. Для запуска необходимо использовать ключ -F:
# pkgdb -F |
Pkg_deinstall
Утилита pkg_deinstall служит для удаления установленных портов. Используя ключ -a можно удалить все установленные порты, оставив систему "чистой".
Последние комментарии
21 неделя 6 дней назад
46 недель 16 часов назад
2 года 46 недель назад
3 года 16 недель назад
3 года 39 недель назад
4 года 2 недели назад
4 года 3 недели назад
4 года 6 недель назад
4 года 18 недель назад
4 года 22 недели назад