FreeBSD/Проблемы с обновлениями

Материал из Lblss.ru
Перейти к: навигация, поиск

Содержание

Принудительное обновление порта с зависимостями

Итак, не слишком приятная ситуация. Обнаружилась нерабочая функция в PHP 5.2 и 5.3 (две ОС на виртуалке, устанавливались примерно в одно время):

$ php -r "imagecreatefrompng('/usr/local/www/apache22/icons/blank.png');"

Abort trap: 6 (core dumped)

Простая пересборка и обновление PHP и модулей, а так же png не привела к успеху, несмотря на то что софт обновился. Очевидно, проблема где то в зависимостях. Потому их так же следует переустановить. Здесь принудительно обновляется/переустанавливается png и всё что зависит от png:

$ sudo portupgrade -rf png

Есть ещё ключик -R - обновление/переустановка всего, от чего зависит данный порт.

Аналогичным образом приходится обновлять icu, иначе очень много "ломается" после обновления :-)


Как зафиксировать версию порта (не обновлять)

Для массового обновления ПО удобно использовать команду portupgrade -a. Однако, бывает необходимость сохранить какой-то порт в текущей версии. Как вариант, можно при помощи ключика -x исключить нужное. Однако, каждый раз набирать не слишком удобно. В таком случае в базе /var/db/pkg создаем файл +IGNOREME для нужного порта. Пример:

$ sudo touch /var/db/pkg/openfire-3.6.4/+IGNOREME

Таким образом, игнорируется обновление openfire.

"Лишние" порты

При обновлении портов через portupgrade -a вываливается сообщение вроде такого:

$ sudo portupgrade -a
** Port marked as IGNORE: archivers/xz:
        is already in the base system
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        - archivers/xz (marked as IGNORE)

В принципе, ничего страшного, но можно избавиться. Устанавливаем portmaster, если он не установлен:

$ sudo portinstall portmaster

Далее удаляем из портов этот xz (или на что там ругань):

$ portmaster -d -e xz
===>>> Deleting all distfiles for archivers/xz
===>>> Running pkg_delete -f xz-4.999.9_1

===>>> Running portmaster -s -d

И проверяем целостность зависимостей:

$ portmaster --check-depends
===>>> Checking apache-2.2.16_1
....весь список установленных....
===>>> Checking xtrans-1.2.5

При необходимости доставляем недостающие зависимости, отвечая "YES".

Ссылки

https://wiki.freebsd.org/portupgrade - Статья на официальной wiki FreeBSD.

http://www.gsp.com/cgi-bin/man.cgi?topic=portupgrade - Подробный man с кучей примеров.

Персональные инструменты