Пітдтримка оновленних версій Rocky Linux
АБО Як дублювати будь-яку машину Rocky.
Вступ¶
З першого дня проекту Rocky Linux деякі запитували: Як оновити CentOS 7 до Rocky 8 або Rocky 8 до Rocky 9? Відповідь завжди одна: Проект не підтримує оновлення на місці однієї основної версії до іншої. Вам потрібно перевстановити, щоб перейти до наступної основної версії. Щоб було зрозуміло, це Є правильна відповідь. Цей документ дозволить користувачам переходити від однієї основної версії до наступної, використовуючи правильну підтримувану Rocky процедуру для нової інсталяції. Ви можете використовувати цей метод, щоб відновити ту саму версію Rocky Linux. Наприклад, встановити 9.5 на свіжу 9.5 з усіма пакетами.
Застереження
Навіть враховуючи цю процедуру, багато речей можуть піти не так під час переходу від старішої версії однієї операційної системи (ОС) до новішої версії тієї самої чи іншої ОС. Програми застарівають і замінюються супроводжуючими на зовсім інші імена пакетів, або назви не збігаються від однієї ОС до іншої. Також ознайомтеся з репозиторіями програмного забезпечення вашого комп’ютера та переконайтеся, що вони досі функціональні для нової ОС. Якщо ви переходите зі старішої версії на новішу, переконайтеся, що ваш процесор та інші вимоги до комп’ютера відповідають новим. З цих та багатьох інших причин ви повинні бути обережними та звертати увагу на будь-які помилки чи проблеми під час виконання цієї процедури. Тут автор використав Rocky Linux 8 як стару версію та Rocky Linux 9 як нову основну версію. Формулювання всіх прикладів використовує ці дві версії. Ви завжди можете продовжити на свій страх і ризик.
Необхідні кроки¶
- Отримайте список користувачів зі старої інсталяції (
userid.txt
). - Отримайте список репозиторіїв зі старої інсталяції (
repolist.txt
). - Отримайте список пакетів зі старої інсталяції (
installed.txt
). - Скопіюйте всі дані, конфігурацію, утиліти та сценарії зі старої інсталяції в енергонезалежне розташування разом зі створеними файлами
.txt
. - Переконайтеся, що апаратне забезпечення, яке ви будете встановлювати, підтримує операційну систему, яку ви встановлюєте. (ЦП, пам'ять, дисковий простір тощо.)
- Виконайте нову установку операційної системи, яку ви використовуєте на апаратному забезпеченні.
- Виконайте
dnf upgrade
, щоб перевірити наявність оновлених пакетів після створення файлу ISO. - Створіть усіх потрібних користувачів, перевіривши файл
userid.txt
. - Встановіть усі відсутні репозиторії, які не стосуються Rocky, у файлі
repolist.txt
. (Див. примітки щодо репозиторіїв EPEL і Code Ready Builder (CRB).) - Встановіть пакунки за допомогою процедури для файлу
installed.txt
.
Деталі виконання¶
Оновлення тієї ж версії
Як обговорювалося раніше, ця процедура має однаково добре працювати для копіювання інсталяції машини з тим самим випуском операційної системи, наприклад 8.10 до 8.10 або 9.5 до 9.5. Різниця полягає в тому, що вам не потрібен `--skip-broken` під час встановлення пакунків із файлу `installed.txt`. Ймовірно, ви пропустите репозиторій, якщо під час інсталяції версії ви отримаєте помилки пакета. Зупиніть процедуру та перегляньте файл `repolist.txt`. У прикладах тут використовується 8.10 як стара інсталяція та 9.5 як нова.
Версія 10 невідома
Через значні зміни між версією 9.5 і майбутньою версією 10 ця процедура **може не працювати** для переходу між версією 9.5 і 10. Це буде досліджено, коли буде випуск 10 для тестування.
Приклад старої машини¶
Тут використовується стара машина Rocky Linux 8. Інсталяція включає кілька пакетів сховища Extra Packages for Enterprise Linux (EPEL).
Готовий конструктор коду
Репозиторій Code Ready Builder (CRB) у Rocky Linux 9 замінює функціональність у застарілому репозиторії PowerTools, який існував у версії 8. Якщо ви переходите з версії 8 на 9, де у вас є EPEL, вам потрібно буде ввімкнути CRB на вашій новій машині за допомогою наступного:
```bash
sudo dnf config-manager --enable crb
```
Отримати список користувачів¶
Вам потрібно буде створити будь-яких користувачів на новій машині вручну, тому вам потрібно знати, які облікові записи користувачів вам потрібно буде створити. Облікові записи користувачів зазвичай починаються з ідентифікатора користувача 1000 і збільшуються вгору.
sudo getent passwd > userid.txt
Отримайте список сховищ¶
Вам потрібен список сховищ, які існують на старій машині:
sudo ls -al /etc/yum.repos.d/ > repolist.txt
Отримайте список пакетів¶
Згенеруйте список пакетів за допомогою:
sudo dnf list installed | awk 'NR>1 {print $1}' | sort -u > installed.txt
Тут NR>1
усуває один запис зі стовпця, у якому є «Встановлено», яке походить від команди dnf list installed
. Це не пакет, тому він вам не потрібен. {print $1}
означає використання лише першого стовпця. Вам не потрібна версія пакета або репозиторій, з якого він надійшов, у списку.
Вам не потрібно буде встановлювати будь-які пакети, пов’язані з ядром. Не завадить встановити їх знову, якщо ви пропустите цей крок. Ви можете видалити рядки ядра за допомогою:
sudo sed -i '/kernel/d' installed.txt
Резервне копіювання будь-яких даних¶
Це може охоплювати багато речей. Переконайтеся, що ви знаєте призначення машини, яку ви замінюєте, і її програмні компоненти (база даних, поштовий сервер, DNS тощо). Якщо сумніваєтеся, створіть резервну копію.
Скопіюйте файли¶
Скопіюйте створені вами текстові файли в енергонезалежне розташування та всі резервні копії даних.
Приклад нової машини¶
Нова інсталяція Rocky Linux 9 завершена. Вам потрібно отримати будь-які оновлення пакетів після створення образу ISO:
sudo dnf upgrade
Ви готові почати копіювати текстові файли та резервні копії з того місця, де ви їх зберігали під час попередньої процедури.
Створіть користувачів¶
Перегляньте файл userid.txt
і створіть потрібних користувачів на новій машині.
Встановіть репозиторії¶
Перегляньте файл repolist.txt
і вручну встановіть потрібні сховища. Ви можете ігнорувати репозиторії, пов’язані з Rocky. Пам’ятайте, що у нас є пакунки з EPEL, тому вам знадобиться репозиторій CRB, а не PowerTools:
sudo dnf config-manager --enable crb
Встановіть EPEL:
sudo dnf install epel-release
Встановіть будь-які інші репозиторії з файлу repolist.txt
, які не базуються на Rocky або EPEL.
Встановіть пакети¶
Після завершення встановлення репозиторіїв спробуйте встановити ваші пакунки з installed.txt
:
sudo dnf -y install $(cat installed.txt)
Деякі пакети не існуватимуть між Rocky Linux 8 і Rocky Linux 9, незалежно від увімкнених репозиторіїв. Виконання цієї команди дає вам уявлення про те, що це за пакунки.
Ось те, що не було встановлено на тестовій машині автора (реорганізовано як стовпець, а не довгий рядок):
Error: Unable to find a match:
OpenEXR-libs.x86_64
bind-export-libs.x86_64
dhcp-libs.x86_64
fontpackages-filesystem.noarch
hardlink.x86_64
ilmbase.x86_64
libXxf86misc.x86_64
libcroco.x86_64
libmcpp.x86_64
libreport-filesystem.x86_64
mcpp.x86_64
network-scripts.x86_64
platform-python.x86_64
platform-python-pip.noarch
platform-python-setuptools.noarch
xorg-x11-font-utils.x86_64
Примітка
Якщо вам потрібна функція цих відсутніх пакетів під час нової інсталяції, збережіть їх у файлі для використання пізніше. Ви можете переглянути стан доступності відсутніх пакетів, використовуючи наступне:
```bash
sudo dnf whatprovides [package_name]
```
Виконайте команду ще раз, але цього разу з додаванням --skip-broken
:
sudo dnf -y install $(cat installed.txt) --skip-broken
Оскільки ви щойно внесли багато змін, вам слід перезавантажити, перш ніж продовжити.
Відновіть свої резервні копії¶
Після встановлення всіх пакетів відновіть резервні копії, змінені конфігураційні файли, сценарії та інші утиліти, резервні копії яких ви створили перед переходом на нову машину.
Висновок¶
Немає магічної процедури (підтримуваної Rocky Linux) для переходу від однієї основної версії до іншої. Розробники Rocky Linux підтримують лише нову установку. Процедура, наведена тут, дозволяє переходити від однієї основної версії до іншої, дотримуючись найкращих практик команди Rocky.
Ця процедура передбачає встановлення, яке не є складним. Складність інсталяції може вимагати додаткових кроків. Використовуйте цю процедуру як посібник.
Відмова від відповідальності¶
Незважаючи на те, що основний документ належить автору, двоє людей на [форумі] (https://forums.rockylinux.org/t/boot-too-small-rebuild/17415) надійшли з пропозицією про більш чистий спосіб створення installed.txt
і видалення пакетів ядра. Дякуємо всім, хто долучився до цієї процедури.
Author: Steven Spencer
Contributors: Ganna Zhyrnova