Ну вот и настала пора опять прыгать по веткам. Я немножко подождал, по 10 ветка оттестируется и решил ставить на сервер. обновляться я буду с последний на сегодня версии 9той ветки
zabbix# uname -a
FreeBSD zabbix.cz6.ru 9.3-STABLE FreeBSD 9.3-STABLE #9 r271302:
Да и способ обновления будет старый - сборка из исходников. Поехали.
Далим старые сырцы
Закачаем исходники нового ядра
Код: Выделить всё
zabbix# svn checkout https://svn0.us-east.FreeBSD.org/base/stable/10 /usr/src
Переходим в директорию исходников
И соберём в привычной манере
Код: Выделить всё
zabbix# make buildworld
zabbix# make buildkernel
zabbix# make installkernel
По идее дальше должно быть
make installworld но команда не сработает и нас отправят читать что же там слочилось.
zabbix# make installworld
ERROR: Required unbound user is missing, see /usr/src/UPDATING.
*** Error code 1
Stop.
bmake: stopped in /usr/src
*** [installworld] Error code 1
Stop in /usr/src.
А случилось там, что добавился новый юзер. Такая ситуауия уже была и мы добавляли учётку руками - такой способ уже описан, потому не будем повторяться, и воспользуемся утилиткой
mergemaster
Нам будет задано несколько вопросов - внимательно читаем, так как можно покорёжить системные файлы.
Сначало он нас спросит про директории - нажимаем
d
Код: Выделить всё
Use 'd' to delete the old /var/tmp/temproot and continue
Use 't' to select a new temporary root directory
Use 'e' to exit mergemaster
Дальше разговор будет идти о файлах. если это то, что вы не знаете - ставьте новыю версию, для этого нажимайте
i
Use 'd' to delete the temporary ./etc/master.passwd
Use 'i' to install the temporary ./etc/master.passwd
Use 'm' to merge the temporary and installed versions
Use 'v' to view the diff results again
Но вот файл паролей мне захотелось сохранить, потому я выбрал вариант сравнения - итак, если вы хотите обьединить новый и старый файлы, то надо нажать
m после чего вы "провалитесь" в область обьединения файлов - слева будет старый файл, справа новый - вам необходимо выбирать левая или правая строка попадёт в итоговый файл. Что бы попала левая - надо нажать
l а что бы правая - нажимаем
r Вам будут предлогаться различия, а вы должны выбрать, что попадёт в итокге. Появляться различия будут построчно (возможно блоками). Когда все различия закончатся у вас появится
i для записи итогового файла.
Use 'i' to install merged file
Use 'r' to re-do the merge
Use 'v' to view the merged file
Как сохраните, появится вопрос вроде такого
Код: Выделить всё
*** You installed a new master.passwd file, so make sure that you run
'/usr/sbin/pwd_mkdb -p /etc/master.passwd'
to rebuild your password files
Would you like to run it now? y or n [n]
Тут следует ответь
y иначе система будет говорить что пользователя всё ещё нет
Если вы решили обновиться, скажем, с 8.2 сразу до 10.1, как я, то без нескольких каков вам не обойтись. Во первых вы столкнётесь с тем что у вас не устанавливается мир и не компенсируются программы - решение было найдено тут https://forums.freebsd.org/threads/issu ... nds.46291/
Код: Выделить всё
server# pkg_add -r http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/i386/packages-9.0-release/devel/bmake-20111111.tbz
Fetching http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/i386/packages-9.0-release/devel/bmake-20111111.tbz... Done.
server# rm /usr/bin/make
server# ln -sv /usr/local/bin/bmake /usr/bin/make
/usr/bin/make -> /usr/local/bin/bmake
server#
Ну а что бы обновить порты надо поставить новый менеджер портов
Код: Выделить всё
server# cd /usr/ports/ports-mgmt/pkg
server# make -m /usr/share/mk UPGRADEPKG=1 install clean
server# rehash
server# pkg2ng
Второй прикол - это то, что я не смог зайти в систему после обновления - решение было взято отсюда (оригинал на момент написания статьи не работает)
http://webcache.googleusercontent.com/s ... clnk&gl=ru
В файле
/etc/pam.d/sshd мне пришлось строку
заменить на
после чего система пустила. Сделайте это заранее
[/color][/i]
Как только вы это сделаете мы сможем установить мир
И перегрузить сервер. Загрузился я уже на 10 фрю
Код: Выделить всё
zabbix# uname -a
FreeBSD zabbix.cz6.ru 10.1-PRERELEASE FreeBSD 10.1-PRERELEASE #10 r271303:
Ну раз с ядром всё, то займёмся программами - на всякий случай я всё удалю,
как и раньше и закачаю заново
Код: Выделить всё
zabbix# rm -R /usr/ports
zabbix# svn checkout https://svn0.us-west.freebsd.org/ports/head /usr/ports
Теперь поговорим о
make.conf - как вы помните у меня там прописаны какие-то строки, и вот начиная с 9.3, ну а в 10 и подавно, у них поменялись переменные - о чём говорится при сборке, потому пока качаются порты сразу исправим этот файлик, и вместо
WITHOUT_X11=yes надо прописать
OPTIONS_UNSET=X11
Ну и теперь рабюота с портами. для начала мы их конвертонём в новый формат
После того, как база сконвертируется надо обновить базу данных
Теперь Опишем репозиторий - для начала удалим старый файл конфига
и создадим новый из шаблона
Код: Выделить всё
zabbix# cp /usr/local/etc/pkg.conf.sample /usr/local/etc/pkg.conf
Создадим и каталог репозитория
затем прописываем в конфиг параметры
Код: Выделить всё
zabbix# ee /usr/local/etc/pkg/repos/FreeBSD.conf
с таким содержимым
Теперь можно обновить базу нашего pkg
на всякий случай и ради эксперемента сделал ещё
ну вот и всё. программы я обновлял привычным
portupgrade -arR
Никаких трудностей при переходе на FreeBSD 10 я не испытал - все программы обновились, работают - всё хорошо.