Детально про rpm
# Linux HowTo (як зробити)
# Книги та керівництва
# Матеріали англійською мовою
Навіщо потрібен rpm
Як уже згадувалося в розділі "Додавання і видалення пакетів", rpm (Redhat Package Manager), щоб виконувати завдання пакетами - установка, видалення, перевірка і т.д.
При установці пакету rpm записує інформацію про нього в свою базу даних, що і дозволяє в подальшому видаляти пакет, переглядати інформацію про нього і т.д.
Такий підхід до встановлення ПО має кілька переваг, зокрема:- Уніфікована робота з різними пакетами (зокрема, не треба пам'ятати, куди будь-яка програма поклала при інсталяції свої файли - постійний головний біль в Dos / Windows).
- Відстеження залежностей між пакетами виконується автоматично (не треба пам'ятати, що програма така-то вимагає якоїсь бібліотеки з версією не нижче якоїсь - порівняйте з вічними проблемами, наприклад, з DirectX в Windows).
- Несуперечливість між різними пакетами - зокрема, коректно "розлучається" ситуація, коли кілька пакетів містять один і той же файл (наприклад, в / etc /).
Режими роботи rpm
Якщо викликати rpm без параметрів, то він покаже "короткий" список ключів. Зазвичай же формат виклику rpm такий:
rpm -КлючРежіма [додаткові ключі] [параметри]
КлючРежіма, що указується першим, визначає режим роботи. Самі частоїспользуємиє режими перераховані в таблиці.
Основні варіанти виклику rpm
Установку, оновлення і видалення пакетів ми розглянули раніше, тому зараз зупинимося лише на загальних параметрах, отриманні інформації і перевірці.
Ключі та параметри, загальні для різних режимів
В аргументах зазвичай використовується два варіанти посилань на пакети.
Назва_пакунка-пакета.rpm для режимів -i і -U - це повне (з Директорією) ім'я файлу. наприклад,
/RPMS/apache-1.3.3-1.i386.rpm. В принципі, rpm розуміє імена файлів у вигляді ftp-URL, тобто ftp: //сервер/діректорія/файл.rpm. але ними має сенс користуватися тільки в швидкій і надійної мережі (в нашій країні - в локальній). Втім, в локальній мережі (і будь-який швидкої) зручніше користуватися NFS-сервером, якщо він є.
Пакет - це ім'я вже встановленого пакету для режимів -e, -q і -y. Воно може вказуватися як з номером версії, так і без нього. Приклади: acroread-3.01-4. acroread. Якщо замість списку пакетів вказати ключ "-a" (a ll), то це буде означати "все пакети". Крім того, ключ "-f" дозволяє замість імені пакета вказати будь-якої файл, що належить цьому пакету (див. Нижче).
Можна вказувати не один файл-пакета або пакет, а відразу кілька, розділяючи їх пробілами.
Отримання інформації
Команда rpm -q дозволяє отримувати таку інформацію про пакет:- Версію пакету.
- Список файлів.
- Чого вимагає пакет.
- Можна дізнатися, до якого пакунку належить файл.
Просто "rpm -qімя-пакета" видає повну назву пакета, разом з версією:
Але найчастіше команда "rpm -q" використовується для отримання списку файлів пакета.
Коротка інформація про пакет - rpm -qi
Команда "rpm -qi" (i nfo) видає зведення інформації про пакет - назва, версія, обсяг і т.д. плюс коротку анотацію:
Де ж був цей файл.
Аналогічно іноді виникає необхідність знайти якийсь файл, ім'я якого пам'ятаєш дуже приблизно, а вже в який він лежить директорії.
Замість того, щоб робити пошук по всьому диску (що дуже довго), можна змусити rpm видати список файлів всіх пакетів (ключ "-al") і відфільтрувати потрібне за допомогою grep. Приклад ( "де там був файл з параметрами залежно від виробу?"):
Шуканий файл в даному прикладі - другий.
Інформація про неінсталлірованном пакеті
Перед установкою нового пакета зазвичай має сенс подивитися інформацію про нього і / або список містяться в ньому файлів.
Отримати інформацію про вміст .rpm-файлу можна, якщо замість імені пакета вказати ключ "-p" (p ackage) і повне ім'я .rpm-файлу, що містить пакет. приклад:
Чого вимагає пакет - rpm -qR
Ключ "-R" (R equirements) дозволяє дізнатися, які пакети і бібліотеки потрібні пакету. Особливо часто це потрібно перед установкою пакета. приклад:
У наведеному вище прикладі видно, що даний пакет встановити не вдасться, як мінімум тому, що встановлена версія пакету gtk + занадто стара.
Команда rpm -y пакет дозволяє порівняти поточний стан файлів пакета з інформацією, записаною в базі даних. Це потрібно, наприклад, при перевірці, не зіпсовані чи якісь важливі для системи файли (таке трапляється після раптового відключення живлення).
При знаходженні відмінностей друкується ключова рядок, з позначенням відмінностей і ім'я файлу, в якому вони знайдені.
Порівнюються наступні параметри: 5 Контрольна сума (підрахована за алгоритмом MD5) S Розмір файлу L Куди вказує символьний лінк (якщо перевіряється файл є симлінк) T Час модифікації D Пристрій (розділ), на якому розташований файл U Власник G Група-власник M Права доступу
Перевірку краще виконувати як "root", так як деякі файли (наприклад, / usr / X11R6 / bin / xterm) можуть бути недоступні на читання іншим користувачам і для них завжди буде видаватися розбіжність по контрольній сумі.
Як видно з цього прикладу, в деяких файлах обов'язково будуть відмінності, оскільки той же / etc / passwd змінюється при створенні і зміні користувачів.
Аналогічно команді rpm -q. rpm -y можна замість імені пакета вказувати "-f файл" або "-a".
Команда rpm -ya корисна для перевірки всієї системи, але її виконання займає багато часу.