Как применять обновления в OpenBSD, NetBSD и FreeBSD?

25

Я использую OpenBSD уже довольно давно. Однако все, что я делаю, - это переход от одного выпуска к другому, всегда просто делаю обновление. Я настроил систему так, чтобы она работала как мой маршрутизатор и брандмауэр, и он работает довольно хорошо. Но я никогда не обновляю пакеты. Все, что я делаю, это просто перехожу к следующему выпуску.

Исходя из мира Linux, я привык применять обновления несколько раз в неделю; но как мне это сделать на * BSD? - Или это не часть философии * BSD?

Полемон
источник
portupgrade -arR
usermane
Обновление с помощью OpenBSD с помощью pkg_addis pkg_add -uvi, верно?
Полемон
да
usermane
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - Из обзора
Archemar

Ответы:

22

OpenBSD является бинарно-ориентированным. Вы можете обновить двоичные файлы (если доступны какие-либо обновления / изменения), выполнив pkg_add :

pkg_add -Uu

Команда OpenBSD рекомендует использовать пакеты вместо сборки из портов - Система пакетов и портов OpenBSD

FreeBSD можно обновлять через пакеты или порты .

gregnotcraig
источник
1
pkg_add -uдостаточно на OpenBSD. Используйте -Uпри установке одного пакета (или набора пакетов), если вы хотите обновить пакеты, от которых (эти) зависят.
Кусалананда
9

Как правило, при использовании OpenBSD вы обновляете свои пакеты только при обновлении системы. Итак, в качестве последнего шага после обновления до последней версии вы должны выполнить:

 # pkg_add -ui

Который (u) обновит ваши установленные пакеты, задавая вам любые вопросы (i), когда это необходимо.

Как правило, пакеты для данного выпуска не обновляются до следующего выпуска (OpenBSD не хватает ресурсов разработчика для предоставления обновлений для пакетов в версиях, отличных от «текущей»). Если вы хотите обновлять свои пакеты более регулярно, вам нужно либо использовать порты, либо обновить их до нового снимка, а затем pkg_add -uiснова запустить .

Для дальнейшего чтения, проверьте: http://www.openbsd.org/faq/faq15.html

Гейб.
источник
3
OpenBSD lacks the developer resources for providing updates to packages on versions other than 'current'Это также относится к обновлениям безопасности? Поэтому, если в бинарном пакете, который я использую, обнаружена критическая дыра в безопасности, я должен переустановить ее из стабильных портов?
imgx64
@ imgx64 Исправления безопасности для портов сделаны -current. OpenBSD не будет перестраивать пакеты для -stable.
Кусалананда
4

OpenBSD: M: Tier предоставляет стабильные пакеты для архитектур amd64 и i386. Это позволяет поддерживать систему в актуальном состоянии с помощью самых последних исправлений безопасности из -stableветви портов.

Статья о OpenBSD Journal объясняет подробности:

На практике это означает, что как только исправление / обновление безопасности будет зафиксировано в дереве OPENBSD_5_3, пакет будет создан из дерева CVS. Затем этот пакет тестируется и отправляется на наш сервер разветвления на Stable.MTier.org, чтобы каждый мог его использовать!

Holu
источник
3

Различные системы BSD имеют четкое разделение на «базовую систему» ​​и «программное обеспечение сторонних производителей (порты / пакеты)». Вы обновляете два отдельно.

Это предполагает, что у вас установлена ​​OpenBSD 6.5 или более поздняя версия (старый ответ см. Ниже):

Базовая система обновлена sysupgrade(8):

doas sysupgrade

Это позволит загрузить и обновить базовую систему до следующей «стабильной» версии OpenBSD, если вы следуете стабильной или выпускной ветви, или до последней «моментальной копии», если вы используете моментальные снимки. Обратите внимание, что вы не должны использовать, sysupgradeесли у вас есть настроенная установка без всех базовых системных наборов.

После обновления базовой системы вы можете захотеть запустить ее syspatch(8)(только для того, чтобы ваша система перешла с «выпуска» на «стабильный», системы моментальных снимков не используются syspatch).

Порты обновляются с помощью pkg_add(1):

doas pkg_add -u

В системе моментальных снимков вы можете добавить -D snapк этому (см. Руководство).

Вы также захотите проверить соответствующий раздел часто задаваемых вопросов по OpenBSD перед обновлением, например, раздел « Отслеживание тока и использование снимков » или раздел, касающийся обновления до последней стабильной версии.

Существует также порт / пакет с именем sysclean(in sysutils/sysclean), который поможет вам указать библиотеки базовой системы и другие файлы, которые больше не являются частью установки по умолчанию. Он также скажет вам, какие порты используют устаревшие библиотеки.


Старый ответ, относящийся к релизам OpenBSD до 6.5:

В случае OpenBSD, предполагая, что вы хотите перейти от одного стабильного выпуска к следующему стабильному выпуску (переход на выпуски не поддерживается, если вы не сделаете новую установку), вы начинаете с прочтения конкретного FAQ для обновления, которое вы выполняете. В случае обновления с 5.9 до 6.0 вы читаете « Руководство по обновлению: с 5.9 до 6.0 ».

В общем, суть этого заключается в загрузке установочного носителя для выпуска, который вы хотите обновить, и выборе «(U) pgrade» из меню. Как только базовая система обновлена, вы загружаете ее и, как root, обновляете все установленные пакеты с помощью pkg_add -u.

Обычно пакеты, принадлежащие стабильному выпуску OpenBSD, обновляются очень часто. Обычно это происходит только тогда, когда исправлены критические ошибки. Поэтому запуск pkg_add -uнесколько раз в неделю, вероятно, не принесет особых результатов (но продолжайте делать это, поскольку это может привести к критическим исправлениям).

Если вы следуете «току», все будет по-другому. Затем вы будете собирать свои пакеты из дерева портов, проверенного с помощью CVS /usr/ports, и, вероятно, вам также придется перестраивать базовую систему вручную (см. « Сборка системы из исходного кода »). Установленные порты могут быть обновлены с dpb/usr/ports/infrastructure/bin), если даны правильные параметры и список установленных вручную пакетов.

я использую

#!/bin/sh -x

pkg_info -P -q -m | sort -o "$HOME/packages"
/usr/ports/infrastructure/bin/dpb -scuR -P "$HOME/packages"

С последующим

$ doas pkg_add -u -D unsigned
$ doas pkg_delete -a

Это не рекомендуется для новых пользователей.

Кусалананда
источник
2

Мне нужно было получать обновления, потому что я установил bash и не хотел страдать от уязвимости Shellshock, поэтому я согласился с предложением Holu /unix//a/103661/93476, и оно меня залатало.

RedScourge
источник
1

Всегда читайте FAQ / руководство: http://www.openbsd.org/faq/upgrade58.html

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

bsdguru
источник
1

Извините, NetBSD pkgsrcне поддерживает небрежное решение. Вместо этого вы должны использовать менеджер пакетов, например nihили pkgin. Под pkgsrcвами приходится форсировать обновления, которые игнорируют часто связанные файловые зависимости. Также копирование новой версии поверх старой pkgsrcможет привести ваше pkgsrcдерево в неконтролируемое состояние.

darktrym
источник
0

Для меня обновление пакетов NetBSD - это команда в / usr / pkgsrc:

# cvs update -dP && csup /some-path-to-wip-supfile/netbsd-pkgsrc-wip && pkg_rolling-replace -u
зеЬг
источник