sed 's/RELENG_7_0/RELENG_7_1/' < /usr/share/examples/cvsup/standard-supfile > supfile
csup -h cvsup2.ru.FreeBSD.org supfile
cd /usr/src
make buildworld
make buildkernel KERNCONF=MY
make installkernel KERNCONF=MY
make installworld
tar czvf /root/etc-backup.tgz /etc /var/named/etc
mergemaster
rebootИнструкция по обновлению при помощи freebsd-update: http://www.opennet.me/tips/info/1818.shtml
URL: http://ihtiandr.info/unix/1-unix/102-freebsd-cvsup-updating-...
Обсуждается: http://www.opennet.me/tips/info/1889.shtml
Инструкция не очень сильно отличается от Хэндбука, но всё равно спасибо за напоминание :)
Только вот еще нужно второй "world" перебрать :)
Часть приложений, как собранных в 7.0 из портов, так и ручками - в корку выпадет :)
Так чта портупграде -а -ф плюс ревизия всего, что помимо портов поставлено :)
>Только вот еще нужно второй "world" перебрать :)
>Часть приложений, как собранных в 7.0 из портов, так и ручками -
>в корку выпадет :)
>Так чта портупграде -а -ф плюс ревизия всего, что помимо портов поставлено
>:)нене, это не мажорный релиз, это вот когда с 6 на 7 - да, нужно обновлять и все порты, а так - никогда порты не обновлял.. точнее не перекомпиливал при пересборке ядра
корки будут.
не верю, чтоб ничего не сломалось в бэквзадной совместимости.
> корки будут.
> не верю, чтоб ничего не сломалось в бэквзадной совместимости.Не надо народ пужать. :)
Не будет никаких корок. Если и будут, то скорее с портами которые требуют при установке наличия сорцов базовой системы (mpd, vmware3 и т. п.). Да и то это с натягом можно сказать, например в случае каких-нить серьезных изменений в структурах, а их не бывает в пределах одной ветки. Ну и обычно о всякого рода несовместимостях предупреждают в ports/UPDATING.
На собственной шкуре проверено.
"Второй мир" устанавливался 30 июля со времен 7.0, базовая система сейчас уже 7.1-p1 десктопная тачка (иксы, KDE, куча пакетов для работы с видео). Все работает на ура, никаких корок. Пакеты переустанавливать лень, если и собируюсь, то после появления KDE 4.2 в портах (а точнее даже в пакаджах).P. S.
Более того если вы специально не убирали из ядра опции COMPAT_FREEBSD4, COMPAT_FREEBSD5, COMPAT_FREEBSD6, то бинарки собраные в прошлых ветках как правило нормально тоже запускаются. Проблемы могут быть только тредами, но это лечится с помощью /etc/libalias.conf :-)
>/etc/libalias.conf :-)Пардонте, /etc/libmap.conf конечно же...
Объясните смысл обновления из исходников вместо штатного freebsd-update -r? Дело вкуса, или что-то другое?
Если не ошыбаюсь, то freebsd-update только для обновления с релиза на релиз + security pathes.
не. можно с 6.х до 7.х дойти
>Если не ошыбаюсь, то freebsd-update только для обновления с релиза на релиз
>+ security pathes.ошибаетесь
указываем -r BETA и все
ну... там бинарное обновление, тут - из сырцов, чтобы собрать с нужными оптимизациями под нужный процессор с нужныс конфигом ядра и прочее :)
Объясните, зачем добавлять это на opennet, чтоб в очередной раз напомнить про Ваш сайт ?
Я добавил это на OpenNet, чтобы народ обновлялся, так как вышел новый долгожданный релиз.
Вот эта строчка полезная. главное ее не забывать =)tar czvf /root/etc-backup.tgz /etc /var/named/etc
Кстати, она полезная по причине того, что если что-либо будет сломано по причине ошибки в ответе на mergemaster (затерт конфиг), то будет откуда восстановить.Надо быть очень внимательным.
>Кстати, она полезная по причине того, что если что-либо будет сломано по
>причине ошибки в ответе на mergemaster (затерт конфиг), то будет откуда
>восстановить.
>
>Надо быть очень внимательным.Просто необходимо делать регулярно бекап конфигов!
автор очередной кальки напутствует наступить на классические грабли при обновлении
Какие грабли? Аккуратненько взяли и обновили 7.0 до 7.1, проблем при таком обновлении быть не может, это же не major version меняется...
Нельзя выполнять цель installworld на старом ядре.
Мир не является бинарно-совместимым с более ранними сборками ядра даже в пределах одной стабильной ветки. Вот почему после установки ядра настоятельно рекомендуется перезагрузка системы.Классический пример: добавление cpuset(2) в libc после 7.0.
Если установить такой мир на старом ядре, система будет практически разрушена.
Странно, всегда после обновления сырцов просто писал:
cd /usr/src && make buildworld && make buildkernel && make installworld && make installkernel && reboot
и ничего, даж с 6 на 7 когда переходил ничего особо не падало
И тем не менее, вы не правы, а он прав. Вам везло.
Да, просто вам повезло, а я однажды наткнулся..
Отлаживал код и надо было мне пересобрать libc. Пересобрал, поставил.
И забыл, что апался перед этим до последнего RELENG_7 :/Восстанавливал систему перезаливкой чуть более старого libc с одного из снапшотов...
>Да, просто вам повезло, а я однажды наткнулся..
>Отлаживал код и надо было мне пересобрать libc. Пересобрал, поставил.
>И забыл, что апался перед этим до последнего RELENG_7 :/
>
>Восстанавливал систему перезаливкой чуть более старого libc с одного из снапшотов...ну значит надо делать сначала инсталлкернел, а потом - инсталлворлд, и сразу ребуут, вот :)
> ну значит надо делать сначала инсталлкернел, а потом - инсталлворлд, и сразу ребуутА теперь представьте, что используемые для выполнения цели installworld утилиты зависят от нового ядра. Установка такого мира может завершиться неудачно.
Перезагрузка пройдет с загрузкой уже нового ядра и с частично обновленным миром, и повторная установка мира пройдет уже успешно (если рассинхронизация мира не приведет к новым проблемам), но кому оно надо такое..
>Да, просто вам повезло, а я однажды наткнулся..
>Отлаживал код и надо было мне пересобрать libc. Пересобрал, поставил.
>И забыл, что апался перед этим до последнего RELENG_7 :/Ну при переходе от релиза к релизу одной ветки таких граблей еще не было, по крайней мере в UPDATING будет обязательно описано если что-то подобное может случится.
В UPDATING описана единственно верная процедура обновления из исходников,
которой и следует придерживаться:make buildworld [9]
make kernel KERNCONF=YOUR_KERNEL_HERE [8]
[1]
<reboot in single user> [3]
mergemaster -p [5]
make installworld
make delete-old
mergemaster -i [4]
<reboot>> Ну при переходе от релиза к релизу одной ветки таких граблей еще не было
Такие "грабли" у меня возникли внутри RELENG_7 где-то между 7.0 и 7.1 после добавления cpuset(2).
> <reboot in single user> [3]Ну.... конечно так правильней, но что если у сервера нет монитора и клавы... да и вообще он находится за много километров от тебя? в ингл-юзер же ссх не работает (
у нас для этого есть т.н. serial console over telnet
Тогда возможности серверного железа, вроде HP iLO2, очень даже становтся востребованными :)(не рекламы ради - просто правда удобно видеть консоль сервера и удаленно делать с ним все что хочешь; одно плохо - за тысячу километров не очень быстро работать с CD-ROM-ом, примонтированным через веб-интерфейс)
а еще есть ipkvm и "площадеры" - человеки работающие в ДЦ и которые могут этот самый ip kvm подкл. к машине
Тогда прибиваешь все процессы не системные - оставляешь только из сервисов ssh запущеный и запускаешь процедуру обновления. 99% что все пройдет гладко
>Нельзя выполнять цель installworld на старом ядре.
>Мир не является бинарно-совместимым с более ранними сборками ядра даже в пределах
>одной стабильной ветки. Вот почему после установки ядра настоятельно рекомендуется перезагрузка
>системы.Наоборот, нельзя собирать мир и оставляя старое ядро.
Даже если конфиг ядра не изменился, его нужно пересобрать.P.S. я обхожусь без mergemaster'a, ручками заменяю файлы в /etc
жуть какая ...
очень таки продуктивный метод обновлять ось=) проще не придумать;) хоть будет чем заняться серверам долгими, холодными зимними вечерами, будут пересобирать мир и едро;)
>очень таки продуктивный метод обновлять ось=) проще не придумать;) хоть будет чем
>заняться серверам долгими, холодными зимними вечерами, будут пересобирать мир и едро;)
>Очень таки продуктивный метод ляпать своим языком (в данном случае пальцами по клаве) только ради того чтоб вставить свои пять копеек, при этом не имея никакого понятия о чем речь. Да ещё и не подписавшись. Там русским по белому написано, что это метод обновления из исходных текстов. Для тех кому это не нужно (например человек не делал изначально никакой оптимизации под свою архитектуру, а спокойно работает себе с генерик ядром без пересборки мира после установки) - достаточно сделать бинарное обновление с помощью freebsd-update, о чем сказано в конце новости.
>>достаточно сделать бинарное обновление с помощью freebsd-update, о чем сказано в конце новости.попробуйте сделать, версии так с 5.х на 7.1, посмотрим что из этого получится. не говоря про то, что freebsd-update в общем-то нету в штатной установке.
судя по всему этот бинарный метод появился относительно недавно и распространен слабо, не зря же все подряд одминчеги фри вечно обновляюцца через перестройку мира.
кстати лично йа потерпел поражение при попытке обновицца с 7.1-PRERELEASE через freebsd-update по хэндбуку, пишет знаете ли следющее:
sh freebsd-update.sh -r 7.1-RELEASE upgrade
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update2.FreeBSD.org... failed.
Fetching public key from update4.FreeBSD.org... failed.
Fetching public key from update1.FreeBSD.org... failed.
Fetching public key from update3.FreeBSD.org... failed.
No mirrors remaining, giving up.видимо что хочет только generic ядро, которое от моего отличается только именем.
т.е. опять остаётся только "продуктивный" метод обновления через перестройку мира и едра.
или метод бубна, подсовывать генерик едро и тогда уже пробовать бинарно обновицца.
хорошая дискуссия по поводу обновления у фри была на форуме posix.ru, там даже давали "мудрый" совет поднять отдельный сервер для сборки;)
да, это от неумения готовить фрю, да эта "проблема" решаема, но уже надоел бубен=) почему-то у меня обновление с mac os x server 10.4.0 до 10.4.11 прошёл почти без вмешательства, сказал ставь всё новое, согласился очередной раз с лицензией и всё поставилось.
"Падонки" с их вечно новым языком - сразу на ЛОР.А насчет макоси - я бы хотел посмотреть на Apple и его обновление, подсунь ему владелец мака кастомное ядро :)
Проше уж сказать - вот гадкая эта фря, столько выбора дает, что даже уже надоело. Но вот ведь какое дело - сервера по другому редко кто обновляет. Если, конечно, не интересует результат. ;)
>А насчет макоси - я бы хотел посмотреть на Apple и его
>обновление, подсунь ему владелец мака кастомное ядро :)
>М.... насколько я знаю, в макоси ядро не фряшное, а... эм.... не помню я, какое-то микроядро там в общем :), а от фряхи - только окружение )
Основу Mac OS X составляетпроэкт Darwin.
Darwin это открытая POSIX-совместимая операционная система, выпущенная Apple Inc. в 2000 году. Она совмещает код, написанный самой Apple, с полученным от NextStep, FreeBSD и прочих свободных проектов. Darwin представляет собой набор основных компонентов, используемых в MacOS X и iPhoneOS. Он совместим со третьей версией спецификации единой UNIX (SUSv3) и POSIX UNIX-приложениями и утилитами.
Darwin построен на основе XNU - гибридного ядра, включающего микроядро Mach 3, некоторые части BSD (такие как модель процессов, сетевой стек, виртуальная файловая система) и I/O Kit - объектно-ориентированный API для написания драйверов.Некоторые преимущества от выбора такого ядра составляет использование бинарного формата Mach-O, позволяющего в одном исполняемом файле (включая само ядро) поддерживать несколько архитектур процессоров и зрелые возможности SMP в ядре. Гибридный дизайн ядра - это компромисс между гибкостью микроядер и производительностью монолитных решений.
>попробуйте сделать, версии так с 5.х на 7.1, посмотрим что из этого
>получится. не говоря про то, что freebsd-update в общем-то нету в
>штатной установке.
>судя по всему этот бинарный метод появился относительно недавно и распространен слабо,
>не зря же все подряд одминчеги фри вечно обновляюцца через перестройку
>мира.Действительно с 5.х на 7.х врядли получится гладко. И тому есть много причин. А даже если получится, то это не избавит Вас от пересборки всех программ. Ну вообще-то это вполне объяснимо и я не вижу чему здесь удивляться. Эта особенность касается не только FreeBSD, но так же и Linux, Windows и так любимой Вами (мной, кстати, тоже) Mac OS X. При переходе на две версии вверх. :)) Так что приведённый Вами пример, как минимум некорректен.
>кстати лично йа потерпел поражение при попытке обновицца с 7.1-PRERELEASE через freebsd-update по хэндбуку, пишет знаете ли следющее:
>sh freebsd-update.sh -r 7.1-RELEASE upgrade
>Looking up update.FreeBSD.org mirrors... 4 mirrors found.
>Fetching public key from update2.FreeBSD.org... failed.
>Fetching public key from update4.FreeBSD.org... failed.
>Fetching public key from update1.FreeBSD.org... failed.
>Fetching public key from update3.FreeBSD.org... failed.
>No mirrors remaining, giving up. видимо что хочет только generic ядро, которое от моего >отличается только именем.
>Сложно сказать что тут не так, хотя имея более подробные логи, думаю это решаемо вполне тривиально.
>т.е. опять остаётся только "продуктивный" метод обновления через перестройку мира и >едра. или метод бубна, подсовывать генерик едро и тогда уже пробовать бинарно обновицца.
>хорошая дискуссия по поводу обновления у фри была на форуме posix.ru, там
>даже давали "мудрый" совет поднять отдельный сервер для сборки;)Ну отдельная машинка для сборки вообще полезная штука, особенно если используются конфигурации очень уж специфические. :-)
>да, это от неумения готовить фрю, да эта "проблема" решаема, но уже
>надоел бубен=)Знаете, мне лично, за то и нравится FreeBSD, что бубен при работе с ней я использовал на порядок меньше, чем с любой другой системой. Хотя это может быть я что-то не так делаю.
>почему-то у меня обновление с mac os x server
>10.4.0 до 10.4.11 прошёл почти без вмешательства, сказал ставь всё новое,
>согласился очередной раз с лицензией и всё поставилось.А вот здесь Вы лукавите. Безболезненно Вы смогли одновиться с 10.4.6 до 10.4.11 Все обновления с 10.4.0 до 10.4.6 нужно было делать последоватьельно. Так говорит и практика и официальная документация Apple по обновлению :-) Кроме того, в приведенном Вами выше примере Вы должны безболезненно без бубна обновиться с 10.3.х до 10.5.х Вот тогда Ваши сравнения будут правильными и честными. :-)
>[оверквотинг удален]
>>почему-то у меня обновление с mac os x server
>>10.4.0 до 10.4.11 прошёл почти без вмешательства, сказал ставь всё новое,
>>согласился очередной раз с лицензией и всё поставилось.
>
>А вот здесь Вы лукавите. Безболезненно Вы смогли одновиться с 10.4.6 до
>10.4.11 Все обновления с 10.4.0 до 10.4.6 нужно было делать последоватьельно.
>Так говорит и практика и официальная документация Apple по обновлению :-)
>Кроме того, в приведенном Вами выше примере Вы должны безболезненно без
>бубна обновиться с 10.3.х до 10.5.х Вот тогда Ваши сравнения будут
>правильными и честными. :-)дыг в том и дело, что с 10.4.0 до 10.4.11 оно само дотягивало что требуется, не требуя от пользователя ничего кроме запуска обновления и согласия с лицензией. предупреждала, что после обновления N будет перезагрузка, после чего запускал снова обновление и оно продолжалось до N+1, но бинарно и без проблем.
честное слово, нет желания проверять на практике как себя поведёт макось при переходе с пантеры на леопарда, но есть мнение, что если установщик леопарда возьмётся ставить поверх, то даже настройки все останутся. уж программы идущие в комплекте точно будут работать=) конечно выплывут и глюки всякие, без этого никуда=)ещё дебиан тоже очень приятно обновляется, imho, даже ещё приятнее чем в макоси, меньше вопросов спрашивает=)
причём к фри йа до сих пор испытываю очень тёплые симпатии, как к оси децтва, хотя почти не использую, но вот обновление через пересборку всегда там не нравилось, признаю, что это хорошо иметь возможность создать под себя систему, но в 99.999% случаев это не востребовано и чаще всего это напрасный труд процессора пересобирать всё, давно доказано тестами что оптимизация даёт ничтожный выигрыш.
хочется использовать бинарный метод обновления, которого долгое время просто не было, но право не всё там просто и продуманно оказалось. ведь если подумать, когда я готов отдать систему для обновления, что может быть проще вытянуть tbz архивы и распаковать их, затирая всё, но не трогая /etc и /var. в теории всё должно быть гладко, а на практике проблемы бывают как при пересборе мира, так и при бинарном обновлении. в прочем фря не одинока глюками, они есть везде=)
Дело в том, что существует документация (man), в которой сказано, во-первых, что freebsd-update работает только для релизов и RC (а вы пытались обновиться со STABLE) и, во-вторых, что работать это будет только для систем, установленных с официальных бинарников, а не собранных из исходников самостоятельно (ибо контрольные суммы). Про GENERIC - бред линуксоида, я так и не понял с чего вы это взяли. Что до апдейта с 5.x до 7.1, то по словам автора - все получится. freebsd-update входит в базовую систему начиная то ли с 6.3 то ли с 6.4, для более ранних систем эта утилита доступна в ports collection.>[оверквотинг удален]
>по хэндбуку, пишет знаете ли следющее:
>sh freebsd-update.sh -r 7.1-RELEASE upgrade
>Looking up update.FreeBSD.org mirrors... 4 mirrors found.
>Fetching public key from update2.FreeBSD.org... failed.
>Fetching public key from update4.FreeBSD.org... failed.
>Fetching public key from update1.FreeBSD.org... failed.
>Fetching public key from update3.FreeBSD.org... failed.
>No mirrors remaining, giving up.
>
>видимо что хочет только generic ядро, которое от моего отличается только именем.
Как обновиться с 7.1-RC1?
Точно также как и с 7.0, накатать cvsup на исходники с RELENG_7_1 и пересобрать систему.
не надо меня накатывать, пусть воспользуется freebsd-update
Несобираеться ядро GENERIC
***
/usr/src/sys/dev/ata/ata-chipset.c
cc: Internal error: Segmentation fault: 11 (program as)
Please submit a full bug report.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
*** Error code 1
Stop in /usr/obj/usr/src/sys/GENERIC.
*** Error code 1
***
Что нибудь посоветуете?
>Несобираеться ядро GENERIC
>***
>Что нибудь посоветуете?М.... сначала пересобрать мир? =)
хорошая шутка :)
>Несобираеться ядро GENERIC
>Что нибудь посоветуете?% cd /usr/obj/ && chflags -R noschg * && rm -rf *
% cd /usr/src/ && chflags -R noschg * && make cleandir && make cleandir && make cleandir
% cd /usr/src/ && make buildworld buildkernel KERNCONF=GENERIC
% cd /usr/src/ && make installkernell KERNCONF=GENERIC && reboot
% shutdown now
# cd /usr/src/ && make installworld && mergemaster
# reboot
% shutdown now
# cd /usr/src/ && make BATCH_DELETE_OLD_FILES=true delete-old delete-old-libs
# reboot
>Что нибудь посоветуете?почистить /usr/obj/
если не поможет, обновиться дерево исходников.
или удалить дерево и скачать заново
МБ ACORP 6VIA85X, наверно это будет важно.
***
/usr/src/gnu/usr.bin/cc/cc_tools/../../../../contrib/gcc/genautomata.c:7644: int ernal compiler error: in create_stmt_ann, at tree-dfa.c:182
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
*** Error code 1
Stop in /usr/src/gnu/usr.bin/cc/cc_tools.
*** Error code 1
Stop in /usr/src/gnu/usr.bin/cc.
*** Error code 1
***
у мя что-то подобное было на ноуте из-за нехватки оперативки.. мб поможет выгрузка всего лишнего из памяти?
- нехватка ОЗУ
- ошибки в ОЗУ
- перегрев процессора
Всегда читайте UPDATING перед обновлением !!!
А там все написано - как собирать, обновлять и т.п.
и никто не вспомнил про csup :)
Подскажите
Пытаюсь обновиться с 7.0 до 7.1 через freebsd-update upgrade -r 7.1-RELEASE
Проверилось ядро, сказал что обновиться не может, т.к. не стандартное...собрать нужно будет потом заново до # freebsd-update install?
Долго проверял систему качал обновления, потом написал:
Applying pathes... done.
Fetching 33055 files... failed.где искать причину? пишутся ли при обнавлении логи и где?
а мало ли...
$ cat /usr/local/sbin/csup!/bin/sh
cvsup8)