Обновление FreeBSD с помощью cvsup
Моя фря благополучно обновилась. Без геморроя, конечно, не обшлось. Впрочем, всё по порядку.
-
Поставил cvsup
cd /usr/ports/net/cvsup make install make clean
-
Настроил файл:
назвать можно как угодно. Например, /etc/cvsupfile.
Содержимое:*default host=cvsup.FreeBSD.org *default base=/usr *default prefix=/usr *default release=cvs *default tag=RELENG_5_3 *default delete use-rel-suffixsrc-all *default tag=. ports-all*default host=cvsup.FreeBSD.org - адрес сервера откуда мы потащим обновления. *default tag=RELENG_5_3 - до какой версии обновляемся. Я ставил RELENG_7 src-all - обновить исходники системы *default tag=. - это строкой указываем до какой версии обновить порты, если укажите вместо точки, чтото другое то порты просто удалятся. ports-all - указываем что нам надо обновить все порты.
При обновлении портов, не очень нужны порты: китайские, японские и т.д. Поэтому можно обновлять эти порты экономя трафик и время. Это достигается с помощью создания файла refuse со следующим содержанием:
ports/arabic ports/chinese ports/french ports/german ports/hebrew ports/hungarian ports/japanese ports/korean ports/portuguese ports/polish ports/vietnamese
Файл надо положить в директорию
/usr/sup - Запустил обновление сиcтемы. Для этого надо выполнить команду:
cvsup -g -L 2 /etc/cvsupfile
-
cd /usr/obj rm -rf *
Если при удаление выдало ошибки по поводу установленных флагов, то необходимо выполнить команду
chflags -R noschg *
и потом повторить удаление. -
Собственно, сборка системы
cd /usr/src make buildworld (собираем мир) make buildkernel KERNCONF=YOUR_KERNEL_HERE(рекомендуют скопировать папку GENERIC в другую и собирать своё ядро, но я собирал GENERIC)
-
Поставил ядро новое
make installkernel KERNCONF=YOUR_KERNEL_HERE
-
Теперерь, по идее надо было перезагрузиться в сингл юзер мод, и провести предварительное объединение конфигов. Я не ребутился и объединение провёл так(благо система чистая и всего лишь установился новый файл /etc/group)
mergemaster -p
-
Инсталляция нового мира
make installworld
-
Объединил конфиги (сидел полчаса тыкал i, Enter)
mergemaster
-
reboot
-
Удалил старые либы(про это забывают, и старые либы так и живут вечно)
cd /usr/src make delete-old-libs #(или через почёркивания. Не помню точно)
-
Собрал portupgrade(где точно лежит не помню), и
portupgrade -af
Всё что не обновилось портапгрейдом сходил и пересобрал руками. Один пакетих (expat) пришлось pkg_add ставить, так как собираться он не хотел ни в какую, а зависели от него многие.
Собсно и всё. Теперь у меня FreeBSD 7.0 STABLE



Я обычно ставлю /usr/ports/net/cvsup-without-gui – иксовый мусор не тянет в систему с собой …
Если быть совсем точным, то я делал вот так:
cd /usr/ports/net/cvsup
make config
и там убрал галочку с “Build with X11 support”
Эффект, я думаю, тот же.
Вы чё, csup в FreeBSD есть со времён 6.2, теже яйца, что и cvsup только без кучи зависимостей.