Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  начальная настройка
  Установка FreeBSD
  DUMMYNET
  Сборка ядра
  IPFW
  обновление
  portsnap
  CP1251 на FreeBSD
  loader.conf
  defaults/rc.conf
  jail
  Ntpdate/Ntpd
  diskless
  Обновление мира ("world")
  PBR & PF
  bsnmpd
  newsyslog
  if_bridge
  make.conf
  PBR & IPFW
  Работа с HDD
  sshd & AD
  Удаленное разбиение HDD
  Заметки об IPFW
  FreeBSD на VDS
  CVSUP и софт через Proxy
  i386=>amd64
  ALTQ в IPFW
  Виртуальный свитч
  VPN сервер по средствам mpd5.
  NTP
  sysupdate
  mpd5 L2TP
  freebsd + webcamera
  IPFW policy (PBR)
  RAID1 via LAN
  зеркальный RAID1 на ОС FreeBSD
  4.x => 7.x
  portdowngrade
  Быстрое обновление портов
  ipfw nat
  Использование csup
  UTF-8 console
  dump/restore
  hast carp zfs ucarp cluster
  ng_nat
  Wi-FI роутер + DHCP + DNS
  backup/restore & ZFS
  Обновление ОС и портов через SVN.
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> настройка —> Обновление мира ("world")

Обновление мира ("world") FreeBSD

Автор: serge.


    Обновленная версия статьи в которой постарался учесть все пожелания и замечания оставленные в коментариях. Рассматривается переход с версии 6.1 на 6.2.
   Во FreeBSD имеется две ветки разработки: FreeBSD-CURRENT и FreeBSD-STABLE. FreeBSD-CURRENT является последними рабочими версиями исходных кодов FreeBSD и предназначена в первую очередь для разработчиков, тестеров и просто интересующихся людей. В отличие от FreeBSD-CURRENT ветка FreeBSD-STABLE является разработкой, из которой делаются основные релизы. Соответственно для использования на ответственных серверах рекомендуется FreeBSD-STABLE.
   Для того чтобы иметь самые последние версии исходных текстов системы необходимо провести синхронизацию с любым из серверов проекта FreeBSD. Для этих целей воспользуемся утилитой cvsup с sup-файлом stable-supfile из каталога /usr/share/examples/cvsup. Это наиболее рекомендуемый метод, так как он позволяет вам загрузить набор исходных текстов один раз полностью, а затем загружать только произошедшие изменения. Если интернет трафик ограничен, то имеет смысл перенести исходные тексты с установочного диска и затем провести синхронизацию.
   Копируем stable-supfile и приводим его содержание к следующему виду.    
server# cp /usr/share/examples/cvsup/stable-supfile /etc/
server# vi /etc/stable-supfile
# Выбираем cvsup сервер. Кому какой ближе.
*default host=cvsup2.ru.FreeBSD.org
*default base=/var/db
*default prefix=/usr
# Качаем исходные тексты 6.2 ветки. Если необходимо 5, 4, 3 или 2.2, то меняем на
# "RELENG_5", "RELENG_4", "RELENG_3", "RELENG_2_2" соответственно.
# Если не указывать версию в ветке (RELENG_6), то будут скачиваться исходники
# последней доступной версии, которая не обязательно может быть STABLE
# (на момент написания статьи это 6.2RC2).
*default release=cvs tag=RELENG_6_2
*default delete use-rel-suffix
# Включаем сжатие трафика
*default compress
# Качаем полное дерево исходников
src-all

   Запускаем cvsup и ждем пока закончится обновление.
   
server# cvsup -g -L2 /etc/stable-supfile

   Переходим в /usr/scr и начинаем процесс обновления. Запаситесь терпением, так как это занимает 1-2 часа на P4.
server# cd /usr/src/
server# rm -rf /usr/obj
server# make -j4 buildworld

   Где j4 - компилировать в 4 потока. Рекомендуется для однопроцессорных машин, т.к. компиляция в большей степени требовательная к системе ввода-вывода, а не процессору. Для многопроцессорных это значение можно увиличить.
     Для настройки системы можно использовать make.conf. Пример смотрите здесь /usr/share/examples/etc/make.conf.
server# make -j4 buildkernel KERNCONF=MYKERNEL

   Где MYKERNEL - ваше ядро. Без KERNCONF=MYKERNEL собирается с ядром GENERIC. В следующей строке поступаем соответственно.
server# make installkernel KERNCONF=MYKERNEL

   Перезагрузимся
server# reboot

   Перейдем в однопользовательский режим. При загрузке жмем 4, либо из основного режима следующей командой.
server# shutdown now

     Монтируем разделы файловой системы.
server# mount -u /
server# mount -a
server# mergemaster -p

   Устанавливаем мир
server# cd /usr/src
server# make installworld

   Удаляем временные файлы
server# make delete-old

   Сравниваем конфигурационные файлы
server# mergemaster

   Несколько слов о работе этой утилиты. Она сравнивает уже установленные файлы конфигурации с теми которые предлагаются новой версией FreeBSD. Если есть отличия, то на экране появляется сообщение об этом. Первой строкой в нем идет имя файла, который не соответствует новым требованиям, а ниже сами отличия. Знаком "-" помечаются строки, которые утилита собирается удалить, а "+" - которые будут добавлены.
   В конце предлагаются следующие варианты:
   d - удалить предлагаемый вариант и оставить старый;
   i - установить предлагаемый вариант, удалив старый;
   m - сравнить построчно старый и предлагаемый вариант;
   v - посмотреть отличия в файлах снова.
   Чаще всего можно жать i, но иногда это может привести к замене ваших настроек на дефолтные. Так что будте внимательны. Например, у меня установлен exim, а mergemaster предложил вернуть файл /etc/mail/mailer.conf в первоначальное состояние. Это мне не нужно, поэтому выбираю m.
   Начинается построчное сравнение файлов. Экран делится на две части, слева строки из старого файла, а справа из предлагаемого. При нажатии на "Enter" выводятся возможные варианты последующих действий:
   l - использовать вариант слевой стороны;
   r - использовать вариант справой стороны;
   и т.д.
   В моем случае, чтобы оставить старые настройки жмем "l". После того как сравнение кончилось, предлагаются следующие варианты:
   i - установить получившийся файл;
   r - повторить сравнение снова;
   v - просмотреть получивщийся файл.
   Возможен также вариант, когда с новой версией системы появляются новые файлы, которых до этого не было. В таком случае предлагается только 2 варианта:
   d - удалить предлагаемый вариант и оставить старый;
   i - установить предлагаемый вариант, удалив старый.
   И в таком же духе сравниваются все файлы.
   Перезагрузимся
server# reboot
server# cd /usr/src/
server# make delete-old-libs

   Все. Проверяем.
server# uname -a
server# ... FreeBSD 6.2-RELEASE #0 ...

   До обновления было FreeBSD 6.1-RELEASE-p10



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=18120.

размещено: 2006-10-23,
последнее обновление: 2007-01-15,
автор: serge

оценить статью:

vad73, 2007-01-17 в 14:38:17

Несколько комментариев:

1 - К lissyara! Статья хорошая своевременная (спасибо serge)! Но т.к. она обновленная - то она не появилась в списке свежих (в правой колонке). Мне кажется это надо поправить.

2 - По поводу строчки "*default host=cvsup2.ru.FreeBSD.org" из файла stable-supfile! Я бы рекомендовал воспользоваться командой "fastest_cvsup -c ru" - она выдает самые близкие и быстрые к вам сервера рунета.

3 - Ну и последнее дополнение к "make -j4 ". Я еще добавляю ключик "s" (пустячек - но экран выдается меньше подробностей  о процессе компиляции). И последнее - Если параметр KERNCONF=MYKERNEL задан в /etc/make.conf - то его можно не указывать в командной строке

lissyara, 2007-01-17 в 15:20:08

1. статья не моя.
3. я по три-четыре ядра собираю бывает в день. На одной машине... с суффиксами -v1; -v2; ....

OzzzY, 2007-05-15 в 18:36:12

Чтобы обновить релиз лучше использовать /usr/share/examples/cvsup/standart-supfile в котором исправить только default host.

ВиталёК, 2007-06-13 в 1:05:37

Вопрос: что нужно изменить в этом кофиги
[code]*default host=cvsup2.ru.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_6_2
*default delete use-rel-suffix
src-all[/code]
что бы обновление было до STABLE...
сделать надо
*default release=cvs tag=RELENG_6_2_STABLE ?

KaMa-CyTpA, 2007-07-19 в 8:11:13

server# make -j4 buildworld
Нет говорит ничего такого.
Лезу - тока папка SYS
А я хочу до 7-ки обновиться.

Boogyman, 2007-07-30 в 15:31:49

БАГ!
Я конечно понимаю что повел себя как лопух, но тем не менее, действую вечером по инструкции выполнил не задумавшись:
"server# reboot
"server# cd /usr/src/
"server# make delete-old-libs

после чего получил БИГ-БИГ трабл, т.к. exim, squid, sh и т.д. использовали старые библиотеки, а обновить их я не успел и соотвественно после перезагрузки получилось что даже шел не запускается! Порадовало, что не смотря на отсутствие библиотек, squid не сдался и продолжал работать! Вот так вот я вляпался по самые помидоры! Так что думаю надо добавить этот нюанс в статью т.к. ее читают не только гуру собирающие по 3-4 ядра в день!

Товарищщ, 2007-09-27 в 18:06:57

"... гуру собирающие по 3-4 ядра в день. На одной машине..."
Э-э-э, а зачем?

Макс, 2007-10-09 в 8:45:25

Вообщето с таким конфигом качается не STABLE а RELEASE со всеми на текущий момент заплатками что есть правильно, т.к. держать на сервере всетаки лучше замороженный RELEASE чем STABLE. Хотя кому как, по мне так лучше один раз систему пересобрать а потом только следить за рассылками, да патчи по необходимости накладывать. Но это только мое мнение.

pxel, 2007-11-09 в 3:20:26

#portupgrade -f -c -a -C
#make delete-old-libs

Raven2000, 2007-11-16 в 12:51:12

to serge
Корректней и правильней так
server# cd /usr/obj
server# chflags -R noschg *
server# rm -rf *
Так в процессе прошлых сборок создаются файлы с флагом schg (флаг "постоянства системы") которые даже под рутом не удалить. В итоге фак.

E-Wind, 2007-12-11 в 15:42:29

У меня под 6.2 команда cvsup -g -L2 /etc/stable-supfile не прошла. Заменил в ней cvsup на csup и все запустилось...

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

VVD, 2008-03-21 в 11:31:21

Может я не в том мире живу, но регулярно слышу, что использовать -j для сборки системы и уж темболее ядра - не лучшая идея. Даже порты собирать "все" рекомендуют без -j.
В рассылке, как только попадается вопрос об ошибках при сборке, первым делом рекомендуют попробовать собрать без -j.
Если очень критично время сборки, то можно и поэсперементировать, но врядли имеет смысл рекомендовать всем использование -j.

mcat, 2008-03-29 в 16:45:01

2 VVD : у меня проблема многопоточного мыйканья была только на машинах - уровня пентиум 3 и ниже

VVD, 2008-03-31 в 18:08:16

2 mcat: я вот только месяц назад видел тред в рассылке uafug.org.ua вопрос о проблемах сборки с -j. И тут же куча советов забить вообще на -j, в том числе и при сборке портов, не говоря уже о мире и ядре.

Игорь, 2008-06-06 в 14:08:20

Че то после описанных выше процедур система перестала монтировать /usr. fsck со всеми возможными опциями отказывался что либо делать говоря что нет доступа для записи на диск! Благо все это было на пробной машине =(

HOSTER, 2008-07-22 в 23:24:38

Да статья хорошая но делать ето все очень стремно, чет не решился я на ето все) проще будет ФРЮ переставить и без риска )

Rus, 2008-08-09 в 13:19:15

Ух... вроде всё встало нормально.
Но статейка точно для юных Торвальдсов писана.
По некоторым позициям вопросов появляется больше, чем было до прочтения статьи.

А всем, кто только начал обновлять свой "world" могу посоветовать прежде внимательно прочитать все комментарии,
во избежание проблемных ситуаций (и последующего психического расстройства). :))

Rus, 2008-08-10 в 22:02:39

Да, еще надо заметить, что у меня обновление портов из нета проходило сутки. Поэтому терпением надо запастись просто нечеловеческим...

Anri, 2008-09-09 в 22:34:29

Vse supper! Obnovlenie proshlo bez edinoi problemmy! Spasibo!!!

nevzorofff, 2008-12-08 в 18:24:44

Про j истина, два раза ядро пересобира уже, а оно пересобирается по 12 часов, потому что кампутер на amd k6-2 300mHz :)

Хотя порты обновляются пару часов, потому что канал толстый! :-)

adminMK, 2009-01-08 в 2:18:41

На этапе make installworld [u] наткнулся на:
santacruz# make installworld
...
....
.....
.../usr/src/i386/usr/games:/tmp/install.63146 make -f Makefile.inc1
reinstall
make: permission denied
*** Error code 126

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
santacruz#

причина:
/tmp был смонтирован с опциями noexec,nosuid
решение:
#umount /tmp
#mergemaster -p
#make installworld

omolota, 2009-01-19 в 11:07:55

Ура! Все получилось 7.0 Release => 7.1 Stable.

viktor, 2009-02-20 в 11:58:40

Спасибо за статью! =) Уже как полгода мир на всех серверах под 6.2 обновляю по этой статье и никаких проблем.. =)

ПРОхожий, 2009-02-21 в 1:03:03

Неплохо было бы рассказать, что указывать в stable-supfile для корректного обновления до следующего релиза...

Olorin, 2009-02-21 в 7:02:47

Никто не освобождал от прочтения: [url=http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/makeworld.html]

Менее понятно, но более подробно. Удобно совмещать статью и хэндбук.

afiskon, 2009-05-23 в 14:49:17

Пара замечаний:
* csup уже включен в мир, cvsup не нужен
* в статье не помешает лишний раз напомнить о необходиости делать бекапы.

Raven2000, 2009-05-25 в 21:51:34

to afiskon
баян =) глянь дату статьи (но предложение дельное и нужно подкорректировать)

Gurd, 2009-06-19 в 19:28:57

OlorinrnСамый правильный комментарий ;)rn+1

receptor, 2009-07-25 в 14:14:56

freebsd-update upgrade -r 7.2
freebsd-update install
shutdown -r now


Всё!)

acd, 2009-08-19 в 19:15:49

 А если update ядра или world надо сделать на удалённой машине, как тогда "Перейдем в однопользовательский режим." ?

Raven2000, 2009-08-19 в 19:23:23

to acd
вот для как раз тебя Локальное и удаленное обновление FreeBSD =)

Senya88, 2010-01-22 в 14:48:55

Подскажите пожалуйста, что можно сделать в том случае если по глупости нажималось в mergemaster -i "i" везде вместо "d" ?  Теперь сервер загружается с ошибками, /etc/rc ругается source_rc_confs not found
и дальше ругань на rc.conf.
Поможет ли повторный запуск mergemaster -i ?

receptor, 2010-05-01 в 0:49:16

Senya88 думаю не поможет, проще перезаписать все конфиги из исходников.
При условии конечно что дефолтные конфиги в системе.

nevzorofff, 2010-05-25 в 12:59:21

Второй раз mergemaster лучше запускать с ключиками a и U - заменит автоматически неизменившиеся и не изменявшиеся юзеров файлы автоматически.

gonzo111, 2010-05-27 в 13:44:09

чтоб убрать подтверждение при
delete-old надо

#> yes | make delete-old
ну или
#> make BATCH_DELETE_OLD_FILES=YES delete-old delete-old-libs

Dusya, 2010-06-20 в 23:51:42

В отличие от FreeBSD-CURRENT ветка FreeBSD-STABLE является разработкой, из которой делаются основные релизы. Соответственно для использования на ответственных серверах рекомендуется FreeBSD-STABLE.


Ага, канешна, а не лучше ли релизы ставить на сервера?

Нахрен нужна промежуточная разработка на серваке который не имеет права падать.

adre, 2010-07-08 в 4:15:58

дУСЯ в чем отличие релиза от стайбл?

Dusya, 2010-07-25 в 3:26:40

В том шо из стейблов делают релизы.
Вот и вся разница

gonzo111, 2010-10-17 в 11:51:19

сделал  /etc.mergemaster.rc
    # Install the new file if it differs only by VCS Id ($FreeBSD, -F)
FREEBSD_ID=yes
    #
    # Verbose mode includes more details and additional checks (-v)
    #VERBOSE=
    #
    # Automatically install files that do not exist on the system already (-i)
AUTO_INSTALL=yes
    #
    # Automatically upgrade files that have not been user modified (-U)
#AUTO_UPGRADE=yes

mir11.ru, 2011-08-24 в 1:21:05

adminMK спасибо, откровенно выручил!))

tehnikpc, 2012-04-13 в 10:11:40

\"Переходим в /usr/scr и начинаем процесс обновления. Запаситесь терпением, так как это занимает 1-2 часа на P4\"
На Pentium IV это займёт минимум 3-4 часа.

VVD, 2012-04-13 в 17:51:34

> На Pentium IV это займёт минимум 3-4 часа.
9-а собирается часа 2.
У меня P4-3GHz 2Gb.

tehnikpc, 2012-04-13 в 22:12:46

VVD, странно. У меня на Intel Core i7-990X и SSD OCZ Vertex 3 тоже 2 часа make buildworld. Только я новые исходники не качал.


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 6 чел.
За последние 30 мин было: 35 человек
За сегодня было
4629 показов,
549 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0477 секунд
Из них PHP: 25%; SQL: 75%; Число SQL-запросов: 77 шт.
Исходный размер: 143626; Сжатая: 26241