Что такое 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 в командной строке. Чтобы проинсталлировать пакет наберите команду: но лучше, используя icewm для примера, набрать а еще лучше, чтобы учесть возможный апгрейд (если у вас инсталлирован пакет ранней версии): Здесь используются следующие опции: i — install package (установить пакет), U — upgrade package (апгрейд пакета). vh — для статус бара и дополнительной информации. Опция U делает не только апгрейд, если установлена старая версия, но и осуществляет установку пакета, если его нет вообще. Я пользуюсь именно -Uvh .

Можно, например, запустить (за точность воспроизведения не ручаюсь) тогда вы проинсталлируете Apache прямо с замечательного сайта Thora Ablestara (качка достигает 10kbps). Если надо установить проксю используются дополнительные опции.

Если установка завершена успешно то rpm ни чего не ответит, иначе выругает(ся). Если этому пакету что-то еще нужно, не беспокойтесь он [rpm] вам скажет.

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

Если в системе уже были какие-то файлы, с теми же именами, что и в пакете, то rpm сохраняет их как .rpmsave файлы, что экономит ваши усилия по настройке.

К стати, если вы используете Midnight Commander (mc) , то вместо имени файла можно писать %f и установить курсор на сам файл. Более того mc обеспечивает специальный сервис для .rpm и .deb (Debian) пакетов. Об этом позже.
Удаление пакетов из системы осуществляется так же просто. Но в данном случае надо указать только имя пакета. Если он никакому другому пакету не нужен то его как ни бывало.

Если вам не нравятся сообщения, что то или се нельзя удалять или инсталлировать, то можно попробовать добавить опцию —force . Она полезна для переинсталляции пакета, так как rpm не хочет заново инсталлировать тот же самый пакет, если не настоять таким образом ;-). Или есть еще более крутые меры воздействия и убеждения (полезны особенно при потере информации об установленных пакетах. Бывает и такое.): —nodeps — не проверять зависимости и —replacefiles — заменять все старые файлы на новые не переименовывая их в .rpmsave.
Как узнавать информацию о пакете . Я пользуюсь Midnight Commanderом для этого (подождите, см. ниже), но этот способ не приемлем для FTP (требует полной закачки файла). Здесь я научился набирать и подождав 5 сек получаю всю необходимую информацию Мне информации предостаточно, но иногда бывает так, что есть необходимость увидеть список файлов внутри и получаю и т.д. (в смысле другую информацию). Найти другие опции можно или набрав rpm , man rpm или RPM-HOWTO.XXX , есть русский перевод в разделе HOW TO.

Читайте также:  Defender atp mac os

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

Замечу, однако, что если вы хотите просмотреть инфу об установленном пакете , то вам надо убрать буковку p из списка опций и задавать только имя пакета, т.е. узнает все об проинталлированом Апаче.
Теперь рассмотрим как узнать установлен ли данный пакет и как проверить интегрированность системы .

Сначала, например мы хотим узнать установлен ли в нашей системе IceWM. Как видно он у меня есть IceWM версии 0.9.25, релиз 1. А теперь хотим узнать из какого пакета мы получили файл mc или еще круче (замечание Anton Dzubenko) Теперь проверим все ли файлы Midninght Commanderа в порядке: Исходя из этой информации нарушены некоторые зависимости, а именно нет пакета pam, версией больше 0.59, и ряда других файлов. Сие обидно, конечно, но недавно произошел сбой на моей машине и потерялась информация об инсталлированных пакетах. Поэтому на эту информацию я не обращаю (сейчас) большого внимания, а вот последняя строчка говорит мне о том, что файл /usr/lib/mc/mc.ext с глобальными настройками был мной модифицирован, это сообщают мне буквы S — size (размер файла), 5 — MD5 сумма (что-то вроде CRC?), T — time (время). Есть и другие буквы. Если с файлом все в порядке (информация о котором совпадает с информацией в ресурсном файле) то он на экран не выводится.

Предположим, что вы кому-то однажды установили Red Hat Linux, и, вдруг, тот товарищ обращается к вам с просьбой узнать, что он такое наделал, что машина вдруг перестала нормально работать. В этом случае большую помощь в поиске его исправлений поможет команда: Что ж вы сделали? . А вы проверили ( V — verify) все ( a — all) пакеты, установленные в системе.
Это конечно не все, что может rpm, но самое основное, чем я, лично, пользуюсь.
Теперь несколько слов, как я и обещал, об программках, работающих с rpm

Midnight Commander — замечательная системка, позволяет просматривать .rpm и .deb пакеты как поддиректории файловой системы, для этого надо только нажать ввод на rpm-пакете. Обращу внимание только на ряд виртуальных файлов и директориев (они все пишутся большими буквами).

  • HEADER — заголовок пакета, то, что получаете по rpm -qi . . Содержимое просматривается по F3.
  • *INSTALL и *UPGRADE , если вы нажмете на них ввод, то Midnight Commander, соответственно, проинсталлирует или апргрейднет этот пакет. Заметьте, чрезвычайно удобно.
  • /INFO — директорий с разнообразной информацией, тоже в виде файлов. (Разберитесь с ним сами).

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

purp — ncursers-ный tty-шный пакет, удобен для удаления ненужных пакетов не запуская X-ы. Тоже отображает иерархию.

grpm,gtkrpm — GTK+-ные программки. Признаюсь честно — я их смотрел мельком. Информацию о них смотрите на http://www.gnome.org/.

Где и Как искать эти самые rpm-ы?

Если вам нужны стабильные, качественные и, самое главное, проверенные профессионалами RedHat пакеты берите их на ftp://contrib.redhat.com/, но с 15 января сие будет доступно на ftp://sf.irk.ru/, наверняка в директории contrib .

Есть на http://rufus.w3.org/linux/RPM просто огромный репозиторий (43Гб). Там же есть замечательная программка rpmfind , которая ищет пакеты для вас в этом репозитории, и даже загружает их для вас в директорий /tmp . Пример: — найти последний IceWM.

Кроме того rpm-ы можно найти на Home-сайтах проектов, обычно по мимо .tgz выставляются и rpmы.
Вопрос «Что делать, если информация об установленных пакетах потеряна?» я оставлю открытым. Порекомендую лишь сохранять время от времени файлы директория /var/lib/rpm . А если вдруг это случилось, то при инсталляции используйте опции —nodeps, —replacefiles .
Последнее . Если у вас настроена русская локаль, как писал уважаемый Мультик, то большую часть сообщений rpm выдает на русском И еще, меня очень удивило, что GNOME-0.99.X и программа LYX уже русифицированы! Так, что Linux крутеет не только для запада!
Если есть вопросы пишите мне, так как Вячеслав пользуется Slackware-3.6 , а он, если не сделать RPM-ов не понимает. (;-)))) от Вячеслава)

Да! И еще не забывайте проверять букву p в слове rpm , а то можно будет внезапно огорчиться.

Источник

🏋️♀️ Как установить / удалить / запросить / обновить RPM пакеты в Linux (Шпаргалка)

RPM – это мощный менеджер программного обеспечения, который можно использовать для создания, установки, запроса, проверки, обновления и удаления отдельных пакетов программного обеспечения.

Пакет RPM состоит из архива файлов и информации о пакете, такой как имя, версия, описание и информация о зависимостях от других пакетов RPM.

RPM – это больше, чем инструмент для Red Hat

Многие другие современные дистрибутивы, такие как Ubuntu и SuSE, также используют RPM.

Преимущества использования RPM включают в себя:

  • Упрощенное распространение, установка, обновление и удаление программного обеспечения
  • Гарантирует, что:
    необходимое программное обеспечение установлено в системе.
    версии обязательного программного обеспечения остаются совместимыми.
    локально модифицированные файлы конфигурации не засоряются при обновлении RPM.
    локально измененные файлы конфигурации сохраняются с суффиксом «.rpmsave», если пакет будет удален позже.
  • Позволяет подтвердить, что установленное программное обеспечение не было изменено, модифицировано, повреждено или изменено каким-либо образом.

RPM хранит информацию об установленных пакетах в каталоге «/var/lib/rpm».

Компоненты инструмента RPM:

  • Пользовательская база данных, содержащая информацию обо всем программном обеспечении, установленном в системе, собранную с отдельных RPM.
  • Исполняемый файл «/bin/rpm».
  • Доступные через Интернет репозитории доступных пакетов RPM.

Типы RPM-пакетов

RPM-пакеты делятся на две категории: исходные и бинарные.

Исходный RPM всегда можно распознать, поскольку имя файла заканчивается строкой “.src.rpm”.

В исходном RPM находятся не только исходные файлы исходного кода программы, но и скрипты, которые позволяют автоматически перекомпилировать код, автоматически устанавливать его и удалять автоматически.

В исходном RPM нет исполняемых файлов конечного пользователя. Обычно только разработчики заинтересованы в RPM с исходным кодом.

Двоичный RPM содержит компоновки конечного пользователя RPM. Имена двоичных файлов RPM идентифицируют архитектуру хоста для содержимого.

Например, двоичный файл RPM:

Он содержит файлы, которые можно использовать только на 64-битном процессоре Intel X86.

Другие общие значения архитектуры включают «i386» для 32-разрядных хостов Intel.

Некоторые двоичные RPM-пакеты могут быть установлены на любой архитектуре процессора, потому что их файлы будут работать на любом хосте;

Примером этих пакетов «.noarch.rpm» является RPM «tzdata», который содержит информацию о мировых часовых поясах.

Чтобы обновить вашу систему до последней версии пакета, вам потребуется самая последняя двоичная RPM-версия.

Схема именования RPM

Каждый пакет RPM содержится в одном файле.

Имя файла имеет несколько полей, чтобы полностью идентифицировать содержимое пакета.

Хотя сами инструменты RPM не полагаются на само имя файла, вы должны понимать соглашение об имени файла, чтобы помочь вам определить или загрузить соответствующий пакет. Вот пример имени файла RPM:

Этот RPM предназначен для оболочки BASH («/bin/bash»).

Имя файла состоит из нескольких частей:

  • [name] – это название программы или пакета. [name обычно присваивается автором программы. В нашем примере разработчики решили назвать свой продукт «bash» по причинам, которые показались им забавными.
  • [version] определяет, какая версия программного обеспечения содержит этот RPM. Номер [версии] присваивается автором программы. Использование номера позволяет определить, какая версия авторских источников использовалась для создания RPM.
  • [release] предоставляет номер версии самого файла RPM, а не версию исходных файлов автора. Обновленная RPM может быть выпущена для предоставления исправленной версии оригинального программного обеспечения автора. Патч не обязательно должен быть от оригинального разработчика, поэтому RPM-версия увеличивается вместо [version].
  • [arch] описывает содержимое RPM и сообщает, содержит ли этот файл источник продукта («.src.rpm»), независимые от архитектуры файлы («.noarch.rpm») или файлы, которые могут быть установлены только в определенный тип хоста («.sh.rpm» будет работать только на встроенном процессоре STRONGHOLD).

Примечание:[version] контролируется первоначальным автором, а [release] контролируется тем, кто создал RPM.

Понимание версий RPM

Поля RPM [version] и [release] не всегда строго числовые и могут содержать другие символы, кроме обычных цифр.

Обычно можно увидеть как версию «10», так и версию «10а» в одном и том же пакете.

Иногда выбрать самую последнюю версию может быть сложно.

Вот как сам RPM сравнивает номера версий и выпусков внутри себя:

1. Удалите префикс [name] и суффикс «. [Arch] .rpm». Например,:
«Bash-3.1-16.1.x86_64.rpm» становится «3.1-16.1», а «bash-3.1-16.5a.1.x86_64.rpm» становится «3.1-16.5a.1»

2. Сравнивайте оставшиеся строки посимвольно слева направо, пока не встретите цифру.

Если символы отличаются, какой бы символ не появился позже в последовательности сопоставления, это более поздние варианты.

3. При обнаружении цифры преобразуйте всю последовательность цифр в одно двоичное число. В нашем примере два символа «16» объединяются в значение шестнадцать (16). Полученные двоичные значения сравниваются, и чем больше значение, тем выше новизна.

Таким образом, RPM с [версией] «0010» является более новым, чем RPM с «версией» «9».

Шаги 2 и 3 повторяются по мере необходимости, пока не произойдет различие.

Установка и удаление файлов

Примечание. Обычно только один или несколько RPM-пакетов могут быть установлены одновременно.

Более поздние версии обычно устанавливаются с использованием функции RPM «-U» (обновление) вместо функции «-i» RPM.

Распространенными исключениями из единственного правила RPM являются RPM ядра.

В системе обычно установлено несколько версий ядер; У RPM есть список, у которых может быть установлено несколько версий.

Чтобы удалить одну версию, когда установлено несколько, необходимо полностью указать имя и версию пакета.

В архитектуре x86_64 обычно устанавливаются как 32-разрядные пакеты «.i386», так и 64-разрядные пакеты «.x86_64», поддерживающие как 32-разрядные, так и 64-разрядные приложения.

Обычно RPM не отображает архитектуру пакета в запросе, но вы можете отобразить его вручную.

Установка и удаление

Подсказка: никогда, никогда не используйте опцию «-U» для установки нового RPM ядра. Функция обновления «-U» сначала удаляет текущий RPM из системы, а затем пытается установить новый RPM. Любая проблема, которая препятствует установке нового RPM, приведет к тому, что система не будет загружаться. Это не то, что вам нужно, поэтому всегда используйте ключ «-i» для установки RPM ядра.

Запросы (пакеты и / или информация)

Используйте запрос для получения информации об установленных пакетах.

Вы можете запросить все установленные пакеты или один установленный пакет.

Вы также можете узнать, какой RPM предоставляет конкретный файл.

Информация

по умолчанию (имя пакета)
-i: общая информация
-l: список файлов

Примеры

Подсказка: при поиске определенного пакета RPM, когда точное имя неизвестно, используйте пайп таким образом:

Более поздние версии инструмента RPM позволяют сделать это кратко:

Запросы – проверка (файлы)

База данных RPM содержит множество атрибутов для каждого файла, установленного RPM.

Вы можете проверить текущее состояние файла по информации, каталогизированной RPM, когда пакет был установлен.

Примечание. Во многих дистрибутивах Linux имеется RPM «с предварительной связью», который пытается уменьшить время, необходимое для запуска приложения с использованием общей библиотеки (в большинстве приложений используется как минимум одна общая библиотека и, возможно, десятки), путем добавления специальной информации непосредственно в программный файл приложения.

Добавление этой информации делает запуск приложений быстрее, но изменения файла делают недействительными большинство атрибутов файла в базе данных RPM, таких как дата последнего изменения файла, размер файла и контрольная сумма файла MD5.

Запросы – проверка (пакеты)

Восстановить базу данных RPM

Средство RPM использует свою собственную реализацию базы данных для хранения своей информации

. Иногда эта база данных может быть повреждена; симптомы включают заявления об отсутствии установленного пакета RPM; или попытки обновить RPM просто зависают.

Если ваша база данных RPM зависла или повреждена, вы можете попытаться восстановить ее с помощью этих команд. Этот процесс не гарантированно работает.

Вы должны войти в систему с привилегиями суперпользователя (он же «root») для этих действий.

Команды могут быть скопированы и вставлены непосредственно в окно рутового терминала.

1. Убедитесь, что в вашей системе не запущены процессы RPM. Используйте команду ps, чтобы идентифицировать их. Используйте команду kill, чтобы завершить любые процессы «rpm», которые вы найдете; «kill -9» на всякий случай.

2. Удалите файлы блокировки, которые использует RPM:

3. Если вы испытыли зависание команды «rpm», попробуйте снова.

Если это работает, это все. Если нет, выполните Шаг № 1 и № 2 снова. Затем перейдите к следующему шагу.

4. Сделайте резервную копию вашей базы данных RPM:

Источник

Читайте также:  Система сама перезагружается windows 10
Оцените статью