Инструменты пользователя

Инструменты сайта


nix:freebsd_ustanovka_i_obnovlenie_ustanovlennogo_po

Это старая версия документа!


Обновление ПО FreeBSD

Менеджер пакетов pkg

man pkg

pkg search
pkg install
pkg remove
pkg upgrade

Управлять программным обеспечением с помощью менеджера бинарных пакетов проще, быстрее, но это как говорится путь на "темную сторону силы", поэтому я чаще пользуюсь портами FreeBSD. Там преднастройку пакетов можно сделать и скомпилировать все под свои конкретные нужды (и оборудование), правда это может быть значительно дольше(компилировать же все придется).

Если хотите сделать бэкап установленного пакета перед обновлением, то можно воспользоваться командой

pkg create имя_пакета

Можно сделать бэкап всех установленных пакетов

pkg create -a

Обновление из портов

Искать каталог нужной программы(пакета) в портах:

whereis имя_пакета

Обновлять можно и вручную. Заходить в каталог нужного порта и делать make&&make deinstall&&make reinstall&&make clean. Но для упрощения процесса есть пакеты portupgrade и portmaster, которые придется установить вручную из портов или с помощью pkg. Кстати лучше иметь в системе установленными оба пакета для разных ситуаций оба могут пригодиться.

Вообще-то лучше почитать /usr/ports/UPDATING перед обновлением ПО. Но обычно его читать начинают, когда при обновлении что-то пошло не так (принцип стоматолога - к нему бегут, когда зуб совсем развалится)

Обновление дерева портов

https://www.freebsd.org/doc/en/books/handbook/ports-using.html

Первый запуск:

portsnap fetch extract

После этого можно пользоваться

portsnap fetch update

portupgrade

Установка

cd /usr/ports/ports-mgmt/portupgrade && make install clean
pkg install portupgrade

Этот пакет содержит несколько полезных утилит (cat /usr/ports/ports-mgmt/portupgrade/pkg-descr):

  • portinstall - установка ПО из портов
  • portversion - просмотр установленных/доступных версий
  • portsclean - очистка системы портов
  • portupgrade - собственно программа для обновления.

и другие, но их запуск вручную бывает нужен редко.

Просмотр пакетов, требующих обновления:

portversion -vl "<"

Смотрим список обновляемых пакетов. Есть пакеты, от которых ничего особо не зависит (mc, bash…)- их можно обновить в первую очередь. Другие могут быть связаны сложными зависимостями их все-равно придется обновлять рано или поздно, но я надеюсь что как минимум бэкап конфигов у вас есть (хотя бы tar cvzf backup.tar.gz /etc /usr/local/etc)

Обновление пакета и пакетов зависящих от него и пакетов от которых он зависит (rR - обновление с зависимостями). Сначала тестовый запуск без самого обновления(ключ n):

portupgrade -rRn имя_пакета

Затем собственно обновляем.

portupgrade -rR имя_пакета

Обновление всех пакетов, для которых есть обновления (ключ c - сделать make config перед процессом обновления).

portupgrade -rRac

Безоговорочное обновление всех пакетов независимо от наличия новых версий (ключ f).

portupgrade -frRac

pormaster

Вывод списка установленного ПО и наличия обновлений

portmaster -L

Обновление всех пакетов, требующих обновления

portmaster -a

Безусловное обновление всех пакетов

portmaster -afdy

Ошибка: The one in /usr/local/lib/compat/pkg is not used

В процессе работы portupgrade в папке /usr/local/lib/compat/pkg иногда скапливаются симлинки на уже несуществующие библиотеки и portupgrade ругается на них.

Вывести список "битых" линков:

find /usr/local/lib/compat/pkg -type l -exec test ! -e {} \; -print

Удалить "битые" симлинки:

find /usr/local/lib/compat/pkg -type l -exec test ! -e {} \; -delete
nix/freebsd_ustanovka_i_obnovlenie_ustanovlennogo_po.1669626708.txt.gz · Последнее изменение: 2022/11/28 12:11 — san

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki