Freebsd оновлення системи за допомогою freebsd-update, rtfm linux, devops і системне

Freebsd оновлення системи за допомогою freebsd-update, rtfm linux, devops і системне
В операційній системі FreeBSD є два різні способи установки оновлень - бінарне оновлення за допомогою стандартної утиліти freebsd-update. або оновлення з вихідних текстів, які можна отримати за допомогою SVN.

Процес оновлення системи на новішу версію описаний в статті FreeBSD: оновлення 8.2 RELEASE до 8.3 RELEASE.

Перший спосіб більш простий, але він не буде працювати в тому випадку, якщо використовується нестандартне ядро. Точніше - можна на час встановити версію ядра GENERIC. провести оновлення world. після чого вручну пересобрать заново ваше ядро. У разі, якщо ви запускаєте freebsd-update на системі з нестандартним ядром - система виведе попередження:

WARNING: This system is running a «MYKERNEL» kernel, which is not a kernel configuration distributed as part of FreeBSD 9.0-RELEASE. This kernel will not be updated: you MUST update the kernel manually before running »/ usr / sbin / freebsd-update install»

Але в в такому випадку буде простіше виконати оновлення з вихідних текстів, які можна отримати за допомогою SVN (яка прийшла на зміну застарілої CVS).

Розглянемо перший варіант, за допомогою freebsd-update.

Утиліта freebsd-update має всього кілька опцій:

fetch - отримує оновлення для поточної архітектури і конфігурації, наприклад - для установки нових патчів безпеки поточної версії,
cron - випадково, з проміжком від 1 до 3600 секунди виконує fetch для отримання оновлень, при наявності оновлення - відправить лист адміністратору;
upgrade - використовується для поновлення на новий реліз, наприклад - при оновленні 8. * на 9. *;
install - установка отриманих оновлень;
rollback - відкочується внесені зміни, видаляє оновлення.

Процес оновлення включає в себе 3 етапи - щоб отримувати оновлення, установка, і завершення установки.

Додаткову настройку оновлення можна виконати за допомогою файлу /etc/freebsd-update.conf.

Перевірити поточну версію вашої системи можна кількома способами:

# Grep -A 2 'TYPE = "' /usr/src/sys/conf/newvers.sh
TYPE = "FreeBSD"
REVISION = "9.0"
BRANCH = "RELEASE"

# Uname -srmi
FreeBSD 9.0-RELEASE i386 GENERIC

Для того, що б отримати оновлення - виконуємо:

# Freebsd-update fetch
Looking up update.FreeBSD.org mirrors ... 4 mirrors found.
Fetching public key from update5.freebsd.org ... done.
Fetching metadata signature for 9.0-RELEASE from update5.freebsd.org ... done.
...
Inspecting system ... done.
Preparing to download files ... done.
Fetching 221 patches ...
...

Після закінчення завантаження файлів - буде виведений список файлів і каталогів, які будуть оновлені:

The following files will be updated as part of updating to 9.0-RELEASE-p7:
...

Тепер можна приступити до установки оновлень:

# Freebsd-update install
Installing updates ... done.

Якщо оновлення торкнулися ядра або його модулів - необхідно перезавантажити сервер, і повторити установку оновлень.

Якщо оновлення проводиться в системі з нестандартним ядром - використовуйте nextboot для завантаження ядра GENERIC після перезавантаження системи:

# Nextboot -k GENERIC

Тепер перезавантажуємо систему:

Після перезавантаження запускаємо повторно установку:

Якщо система повідомляє, що:

# Freebsd-update install
No updates are available to install.

Значить оновлення завершено.

Перевіримо поточну версію:

# Uname -v
FreeBSD 9.0-RELEASE-p3

Для перевірки - можна ще раз запустити freebsd-update:

# Freebsd-update fetch
...
Inspecting system ... done.
Preparing to download files ... done.

No updates needed to update system to 9.0-RELEASE-p3.

У разі, якщо щось пішло не так - можна "відкотити" установку оновлень:

# Freebsd-update rollback
Uninstalling updates ... done.

Перезавантажуємо сервер і перевіряємо поточну версію:

# Uname -v
FreeBSD 9.0-RELEASE

Що б перевіряти наявність оновлень автоматично - в cron можна додати завдання:

@daily freebsd-update cron

У разі помилки "freebsd-update: not found" - міняємо рядок на:

@daily / usr / sbin / freebsd-update cron

Так, раз на добу, вночі, freebsd-update буде перевіряти наявність оновлень і, при їх наявності, завантажить їх на машину і повідомить листом адміністратора. Після чого необхідно вручну провести установку оновлень.

P.S. Ви могли помітити, що деякі висновки консолі містять версію 9.0-RELEASE-p7. в той час як uname виводить версію 9.0-RELEASE-p3. Пов'язано це з тим, що при цьому оновленні не було порушено ядро ​​системи, саме тому інформація в uname не відповідає вмісту файлу /usr/src/sys/conf/newvers.sh.

Під час оновлення системи з вихідних текстів - такого спостерігатися не буде, тому що і world ( "світ") і саме ядро ​​( "kernel") будуть збирати заново.