Використання RPM, Linux, Операційні системи, статті

Черкашин Євген, linux.irk.ru

Привіт! Тепер і я вирішив написати дещо вивчене мною. А саме як користуватися однією з найбільш важливих утиліт дістрібьюшена Red Hat X.X – Пакета RPM (Red Hat Package manager). Пакет призначений для спрощення встановлення та вбивання інших програмних продуктів (будемо називати їх пакетами (packages) а RPM – RPMмом!), Відповідним чином оформлених (щось на зразок інсталятора і дєїнсталлятора в Вінду, тільки крутіше). Перш за все хочу сказати які переваги і недоліки таїть його використання.

Почнемо з переваг:

Недоліки:

Якщо хтось хоче ще додати – це не забороняється.

Отже, по-порядку …

Всі пакети мають розширення. Rpm

Їх по вмісту, як звичайно, можна розділити на два класи: пакети із програмами в двійковому коді, і пакети з вихідним кодом. Ім’я пакета задається наступним чином: “ім’я-програми” – “версія” – “реліз”. “Платформа або src “. rpm, наприклад недавній реліз IceWM називається так: icewm-0.9.25-1.i386.rpm, тобто icewm версії 0.9.25, реліз перший, для платформи PC-x86. Додам, що необхідно дивитися для яких бібліотек він скомпільований (визначається по імені піддиректорії, звідки був вирячені, наприклад ./RPMS/…./i386/libc6/icewm …., icewm для бібліотек libc6 (glibc2?) (для RedHat не менше 5.0 піде). Я ще чайник тут.). RPMS – ім’я директорія з двійковими пакунками, саме в ньому треба шукати бінару. Сирці (вихідний код) у більшості репозиторіїв лежать в SRPMS (з буквою “S” на початку), тобто исходники icewm 0.9.25 лежатимуть у файлі … / SRPMS/icewm-0.9.25-1.src.rpm.

Розглянемо детальніше перший клас, хоча більшість, а саме 57% линуксоидов інсталює з сирців.

Для початку розглянемо самий “складний” варіант – робота з rpm в командному рядку. Щоб проинсталлировать пакет наберіть команду:

bash $ rpm-i "повне ім'я пакета"

але краще, використовуючи icewm для прикладу, набрати

bash$ rpm -ivh icewm-0.9.25-1.i386.rpm

а ще краще, щоб врахувати можливий апгрейд (якщо у вас інстальований пакет ранньої версії):

bash$ rpm -Uvh icewm-0.9.25-1.i386.rpm

Тут використовуються такі опції: i – install package (встановити пакет), U – upgrade package (апгрейд пакета). vh – для статус бару та додаткової інформації. Опція U робить не тільки апгрейд, якщо встановлена ​​стара версія, але і здійснює установку пакета, якщо його немає взагалі. Я користуюся саме-Uvh.

Можна, наприклад, запустити

bash$ rpm -Uvh ftp://sf.irk.ru/pub/linux/redhat-5.2/i386/RPMS/apache-1.3.3-1.i386.rpm

(За точність відтворення не ручаюсь) тоді ви проінсталліруете Apache прямо з чудового сайту Thora Ablestara (Качка досягає 10kbps). Якщо треба встановити проксі використовуються додаткові опції.

Якщо установка завершена успішно то rpm ні чого не відповість, інакше вилає (ся). Якщо цього пакету щось ще треба, не турбуйтеся він [rpm] вам скаже.

Зауважу ще, іноді буває необхідно використовувати як нову так і стару бібліотеки, наприклад для старого GIMP і нового GNOME з ще недорозвиненими бібліотеками. В цьому випадку використовуйте-ivh опції для нового пакета. Таким чином у вас будуть обидві програми працювати, і місця в два рази більше витрачено, але при цьому стара бібліотека буде ціла і неушкоджена.

Якщо в системі вже були якісь файли, з тими ж іменами, що і в пакеті, то rpm зберігає їх як. Rpmsave файли, що економить ваші зусилля по налаштуванню.

До речі, якщо ви використовуєте Midnight Commander (mc), то замість імені файлу можна писати% f і встановити курсор на сам файл. Більш того mc забезпечує спеціальний сервіс для. Rpm і. Deb (Debian) пакетів. Про це пізніше.

Видалення пакетів з системи здійснюється так само просто.

bash$ rpm -e apache

Але в даному випадку треба вказати тільки ім’я пакета. Якщо він ніякому іншому пакету не потрібен то його як не бувало.

Якщо вам не подобаються повідомлення, що те чи се не можна видаляти або інсталювати, то можна спробувати додати опцію – force. Вона корисна для переінсталяції пакета, так як rpm не хоче заново інсталювати той же самий пакет, якщо не наполягти таким чином ;-). Або є ще крутіші заходи впливу і переконання (корисні особливо при втраті інформації про встановлені пакетах. Буває й таке.): – Nodeps – Не перевіряти залежності і – replacefiles – замінювати всі старі файли на нові не перейменовуючи їх в. Rpmsave.

Як дізнаватися інформацію про пакет. Я користуюся Midnight Commanderом для цього (почекайте, див. нижче), але цей спосіб не прийнятний для FTP (вимагає повної закачки файлу). Тут я навчився набирати

bash$ rpm -qpi FTP://sf.irk.ru/......./apache-1.3.3-1.i386.rpm

і почекавши 5 сек отримую всю необхідну інформацію

Name        : apache                      Distribution: Manhattan
Version     : 1.3.3                             Vendor: Red Hat Software
Release     : 1                             Build Date: Tue Oct 13 16:08:03 1998
Install date: (not installed)               Build Host: porky.redhat.com
Group       : Networking/Daemons            Source RPM: apache-1.3.3-1.src.rpm
Size        : 1980776                          License: Freely distributable and usable
Packager    : Red Hat Software
Summary     : Leading World Wide Web server
Description :
Apache is a full featured web server that is freely available, and also
happens to be the most widely used.

Мені інформації предостатньо, але іноді буває так, що є необхідність побачити список файлів всередині

bash$ rpm -qpl FTP://sf.irk.ru/......./apache-1.3.3-1.i386.rpm

і отримую

/etc/httpd/conf
/etc/httpd/conf/access.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/httpd/conf/srm.conf
/etc/httpd/logs
/etc/httpd/modules
...................
/usr/sbin/ab
/usr/sbin/httpd
/usr/sbin/logresolve
/usr/sbin/rotatelogs
/var/cache/httpd
/var/log/httpd

і т.д. (В сенсі іншу інформацію). Знайти інші опції можна або набравши rpm, man rpm або RPM-HOWTO.XXX, є російський переклад в розділі документації на www.linux.org.ru.

Опції: q – query (запит), p – package (пакет), i – information (інформація), l – file list. Все очевидно як в раю.

Зауважу, однак, що якщо ви хочете переглянути інфу про встановлений пакеті, то вам треба прибрати букву p зі списку опцій і задавати тільки ім’я пакету, тобто

bash$ rpm -qi apache

дізнається все про проінталлірованом Апачі.

Тепер розглянемо як дізнатися чи встановлений даний пакет і як перевірити інтегрованість системи.

Спочатку, наприклад ми хочемо дізнатися чи встановлений в нашій системі IceWM.

bash$ rpm -q icewm
icewm-0.9.25-1

Як видно він у мене є IceWM версії 0.9.25, реліз 1. А тепер хочемо дізнатися з якого пакету ми отримали файл mc

bash$ whereis mc
mc: /usr/bin/mc /usr/lib/mc /usr/man/man1/mc.1
bash$ rpm -qf /usr/bin/mc
mc-4.5.3-1

або ще крутіше (зауваження Anton Dzubenko)

bash$ rpm -qf `whereis mc`

Тепер перевіримо чи всі файли Midninght Commanderа в порядку:

bash$ rpm -V mc
Unsatisfied dependencies for mc-4.5.3-1: pam >= 0.59,
/sbin/chkconfig  , ld-linux.so.2, libc.so.6, libgpm.so.1,
libm.so.6, libncurses.so.4, libslang.so.0, /bin/sh,
/usr/bin/perl
S.5....T   /usr/lib/mc/mc.ext

Виходячи з цієї інформації порушені деякі залежності, а саме немає пакета pam, версією більше 0.59, і ряду інших файлів. Це прикро, звичайно, але нещодавно стався збій на моїй машині і загубилася інформація про інстальованих пакетах. Тому на цю інформацію я не звертаю (зараз) великої уваги, а от останній рядок говорить мені про те, що файл / usr / lib / mc / mc.ext з глобальними настройками був мною модифікований, це повідомляють мені букви S – size (розмір файлу), 5 – MD5 сума (щось на зразок CRC?), T – time (час). Є й інші літери. Якщо з файлом все гаразд (інформація про який збігається з інформацією в ресурсному файлі) то він на екран не виводиться.

Припустимо, що ви комусь одного разу встановили Red Hat Linux, і, раптом, той товариш звертається до вас з проханням дізнатися, що він таке наробив, що машина раптом перестала нормально працювати. В цьому випадку велику допомогу в пошуку його виправлень допоможе команда:

bash$ rpm -Va
Unsatisfied dependencies for tetex-latex-0.9-6: tetex = 0.9, /bin/sh  , /bin/sh
.M......   /usr/share/texmf/tex/generic/xypic/xylatex.ini
S.5....T   /usr/share/texmf/web2c/elatex.efmt
S.5....T   /usr/share/texmf/web2c/elatex.log
S.5....T   /usr/share/texmf/web2c/latex.fmt
S.5....T   /usr/share/texmf/web2c/latex.log
S.5....T   /usr/share/texmf/web2c/pdflatex.fmt
S.5....T   /usr/share/texmf/web2c/pdflatex.log
Unsatisfied dependencies for tetex-russian-2.0-6: /bin/sh  , tetex >= 0.9, patch
..5.....   /usr/share/texmf/fonts/source/lh/base/lypseudo.mf
..5.....   /usr/share/texmf/fonts/source/lh/base/nodraw.mf
..5.....   /usr/share/texmf/tex/latex/cyrsam/antiqua.fd
..5.....   /usr/bin/gyahtzee
..5.....   /usr/bin/mahjongg
..5.....   /usr/bin/same-gnome
..5..... c /etc/X11/wmconfig/printtool
.M......   /usr/lib/libImlib.so.1
.M......   /usr/lib/libgdk_imlib.so.1

Що ж ви зробили? … А ви перевірили (V – verify) усі (a – all) пакети, встановлені в системі.

Це звичайно не все, що може rpm, але саме основне, що я, особисто, користуюся.

Тепер кілька слів, як я і обіцяв, про програмках, що працюють з rpm

Midnight Commander – чудова сістемка, дозволяє переглядати. Rpm і. Deb пакети як піддиректорії файлової системи, для цього треба лише натиснути введення на rpm-пакеті. Зверну увагу лише на ряд віртуальних файлів і тек (вони все пишуться великими літерами).

glint – Спецпрограммка для X-ів, безпосередньо призначена для управлінням rpmмом. Вона відображає пакети у вигляді ієрархії (як встановлені, так і директорій з невстановленими пакетами). Входить в стандартний дистрибьюшн Red Hat.

purp – Ncursers-ний tty-шний пакет, зручний для видалення непотрібних пакетів не запускаючи X-и. Теж відображає ієрархію.

grpm,gtkrpm – GTK +-ні програмки. Зізнаюся чесно – я їх дивився мигцем. Інформацію про них дивіться на www.gnome.org.

Де і Як шукати ці самі rpm-и?

Якщо вам потрібні стабільні, якісні і, найголовніше, перевірені професіоналами RedHat пакети беріть їх на ftp://contrib.redhat.com, Але з 15 січня це буде доступно на ftp://sf.irk.ru, Напевно в директорії contrib.

Є на rufus.w3.org/linux/RPM просто величезний репозиторій (43Гб). Там же є чудова програмка rpmfind, яка шукає пакети для вас в цьому репозиторії, і навіть завантажує їх для вас у директорій / tmp. Приклад:

bash$ rpmfind -q -latest icewm

– Знайти останній IceWM.

Крім того rpm-и можна знайти на Home-сайтах проектів, зазвичай по мимо. Tgz виставляються і rpmи.

Питання “Що робити, якщо інформація про встановлені пакетах втрачена?” я залишу відкритим. Порекомендую лише зберігати час від часу файли директорія / var / lib / rpm. А якщо раптом це сталося, то при інсталяції використовуйте опції – nodeps, – replacefiles.

Останнє. Якщо у вас налаштована російська локаль, як писав шановний Мультик, то більшу частину повідомлень rpm видає російською І ще, мене дуже здивувало, що GNOME-0.99.X і програма LYX вже русифіковані! Так, що Linux крутеет не тільки для заходу!

Якщо є питання пишіть мені, так як В’ячеслав користується Slackware-3.6, а він, якщо не зробити

bash$ rpm --initdb

RPM-ів не розуміє. (;-)))) Від В’ячеслава)

Так! І ще не забувайте перевіряти букву p в слові rpm, а то можна буде раптово засмутитися.

Ось ще одне. Я найчастіше використовую наступні пакети:

Якщо ви хочете дізнатися моя думка (поки ще чайника) про те що це і як це можна використовувати, напишіть мені і ми подискутуємо на сторінках IrkLUG!

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*