Обновление OpenBSD 4.7 -> 4.8

В предверии выхода OpenBSD 4.8 хочется напомнить всем, кто будет обновляться, необходимые для этого шаги. По сути, это краткое содержание официального 'Upgrade Guide: 4.7 to 4.8 '.

Для начала необходимо скачать инсталляционный образ и записать его на носитель. Далее загружаемся с него и выбираем пункт (U)pgrade, после чего произойдет бинарное обновление системы, и перезагружаемся. Не обновятся только два компонента - etc48.tgz и xetc48.tgz. Их придется обновлять вручную пройдя несколько шагов, о чем и пойдет речь ниже.

Шаг 1. Добавляем новых пользователей

useradd -u 99 -g =uid -c "sndio privsep" -d /var/empty -s /sbin/nologin _sndio
useradd -u 100 -g =uid -c "LDAP Daemon" -d /var/empty -s /sbin/nologin _ldapd
useradd -u 101 -g =uid -c "IKEv2 Daemon" -d /var/empty -s /sbin/nologin _iked

Шаг 2. Обновляем /etc

Для этого распакуем etc48.tgz во временную директорию

export RELEASEPATH=/usr/rel
tar -C /tmp -xzphf ${RELEASEPATH}/etc48.tgz

и скопируем из ней такой список файлов

etc/daily
etc/disktab
etc/ksh.kshrc
etc/netstart
etc/rc
etc/rc.conf
etc/systrace/usr_sbin_named
var/named/etc/root.hint

с помощью команд

cd /tmp/etc
mkdir -p /etc/ldap/certs
cp daily disktab iked.conf ksh.kshrc ldapd.conf netstart rc rc.conf /etc
cp systrace/usr_sbin_named /etc/systrace
cp ldap/* /etc/ldap
cp ../var/named/etc/root.hint /var/named/etc

Шаг 3а. Внесем изменения в ряд файлов

etc/changelist
etc/ftpusers
etc/mail/aliases
etc/man.conf
etc/newsyslog.conf
etc/remote
etc/services
etc/ssl/x509v3.cnf
etc/sysctl.conf

с помощью патча http://openbsd.org/faq/upgrade48.patch

выполните patch с параметром -C, чтобы просмотреть изменения
cd /
patch -C -p0 < upgrade48.patch

затем
patch -p0 < upgrade48.patch

так же обратите внимание на ldpd.conf, если используется Label Distribution Protocol daemon

обновим базу псевдонимов

newaliases
mtree -qdef /etc/mtree/4.4BSD.dist -p / -u

Шаг 3б. Внесем изменение в другие конфигурационные файлы с помощью sysmerge

sysmerge -s $RELEASEPATH/etc48.tgz -x $RELEASEPATH/xetc48.tgz

Шаг 4. Некоторые файлы больше не нужны и их можно удалить

rm /usr/include/evdns.h
rm /usr/libdata/perl5/site_perl/*-openbsd/evdns.ph
rm -f /usr/bin/f77 /usr/bin/g77 /usr/include/f2c.h /usr/include/g2c.h \
/usr/lib/gcc-lib/*-unknown-openbsd*/3.3.5/f771 /usr/lib/libfrtbegin.a \
/usr/lib/libfrtbegin_p.a /usr/lib/libfrtbegin_pic.a /usr/lib/libg2c.a \
/usr/lib/libg2c_p.a /usr/lib/libg2c_pic.a /usr/share/info/g77.info \
/usr/share/man/cat1/f77.0 /usr/share/man/cat1/g77.0
cd /usr/X11R6/include/X11
rm Xaw/Print.h Xaw/PrintSP.h
rm -r XprintAppUtil XprintUtil
cd extensions
rm Print.h Printstr.h XEVIstr.h Xagstr.h Xcupstr.h Xdbeproto.h Xevie.h \
Xeviestr.h dpmsstr.h lbxdeltastr.h lbxopts.h lbxstr.h lbxzlib.h \
mitmiscstr.h multibufst.h securstr.h shapestr.h shmstr.h syncstr.h \
xteststr.h xtrapbits.h xtrapddmi.h xtrapdi.h xtrapemacros.h \
xtraplib.h xtraplibp.h xtrapproto.h
cd /usr/X11R6/lib/pkgconfig
rm evieproto.pc lbxutil.pc printproto.pc trapproto.pc xaw8.pc \
xevie.pc xp.pc xprintapputil.pc xprintutil.pc xtrap.pc
rm /usr/X11R6/share/aclocal/xaw.m4

Шаг 5. Если вы используете свой конфиг ядра или просто предпочитаете пересобирать GENERIC-ядро и мир, то самое время это сделать, получив исходники для релиза 4.8.

Шаг 6. Последний шаг - обновление пакетов

pkg_add -ui -D update -D updatedepends

На этом процесс обновления завершается, надеюсь, успешно.

Аватар пользователя ssh2

Спасибо, с

Спасибо, с нетерпением ожидаю релиза.

Аватар пользователя Pers

Шаги 1 и 2 с

Шаги 1 и 2 с современным sysmerge не нужны.

Делать просто cp (не cp -p) после tar -p как-то странно...

Если используются собственные ядро/мир, проще добавить/заменить ими релизный сет. Оно и надёжнее будет.

Если делается pkg_add -ui , то нет никакого смысла в -D update -D updatedepends. Тем более что -D update, вроде, дропнули ещё до отпочковывания 4.8...

Аватар пользователя Eudgen

tar -p для etc48

tar -p для etc48 делается в /tmp
sysmerge нужно делать для этих файлов, если они правились вручную, если нет то cp
это я всё ман цитирую

Аватар пользователя Eudgen

Только что

Только что обновился на ноуте - полёт нормальный.