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

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


nix:freebsd_ustanovka_i_obnovlenie_ustanovlennogo_po

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


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

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

man pkg

pkg search
pkg install
pkg remove
pkg upgrade

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

Список всех установленных пакетов:

pkg info

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

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.1669627213.txt.gz · Последнее изменение: 2022/11/28 12:20 — san

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