Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как запустить rpm файл


Установка rpm пакетов в Linux

Рано или поздно нам приходится устанавливать программное обеспечение не из официальных репозиториев. Там есть далеко не все пакеты, и не всегда есть самые новые версии, только что вышедших программ. Очень часто разработчики размещают на своем официальном сайте пакеты для самых популярных дистрибутивов. Обычно это deb и rpm.

Последний встречается немного реже, но если вы используете дистрибутив на базе Red Hat Enterprice Linux, вам нужен именно этот формат пакетов. Также в сети часто можно найти библиотеки и другие компоненты, которых нет в репозиториях в виде пакетов. Раньше мы уже рассматривали установку deb пакетов в Ubuntu. А в этой статье будет подробно разобрана установка rpm пакетов в linux.

Содержание статьи:

Что такое RPM?

RPM или RPM Package Manager - это пакетный менеджер, используемый в дистрибутивах Linux, основанных на Red Hat. Такое же название имеет формат файлов этого пакетного менеджера.

Этот формат не очень сильно отличается от того же самого Deb. Вы можете посмотреть их детальное сравнение в статье что лучше *.deb или *.rpm. Здесь же, только отмечу, что файл rpm - это обычный cpio архив, в котором содержатся сами файлы программы, а также метаданные, описывающие куда их нужно устанавливать. База всех установленных пакетов находится в каталоге /var/lib/rpm. Из особенностей можно отметить, что rpm не поддерживает рекомендованные пакеты, а также зависимости формата или-или.

Для управления пакетами, так же как и в Debian-системах, здесь существует консольная, низкоуровневая утилита с одноименным названием - rpm. Ее мы и будем рассматривать дальше в статье. В разных системах используются разные пакетные менеджеры, например в Red Hat используется Yum, в Fedora - DNF, а в OpenSUSE - zypper, но во всех этих системах будет работать утилита rpm.

Установка RPM пакетов в Linux

Давайте сначала рассмотрим синтаксис самой утилиты rpm:

$ rpm -режимопции пакет

Утилита может работать в одном из режимов:

  • -q, --query - запрос, получение информации;
  • -i, --install - установка;
  • -V, --verify - проверка пакетов;
  • -U, --upgrade  - обновление;
  • -e, --erase - удаление.

Рассмотрим только самые интересные опции программы, которые понадобятся нам в этой статье:

  • -v - показать подробную информацию;
  • --vv - выводить отладочную информацию;
  • --quiet - выводить как можно меньше информации;
  • -h - выводить статус-бар;
  • --percent - выводить информацию в процентах о процессе распаковки;
  • --force - выполнять действие принудительно;
  • --nodeps - не проверять зависимости;
  • --replacefiles - заменять все старые файлы на новые без предупреждений;
  • -i - получить информацию о пакете;
  • -l - список файлов пакета;
  • -R - вывести пакеты, от которых зависит этот пакет;

Теперь, когда вы уже имеете представление как работать с этой утилитой, может быть рассмотрена установка rpm пакета в Linux. Самая простая команда установки будет выглядеть вот так:

sudo rpm -i имя_пакета.rpm

Для работы с командной текущей директорией должна быть папка с пакетом. Здесь мы устанавливаем режим установки и передаем файл пакета. При успешной установке утилита не выведет ничего, если произойдет ошибка, вы об этом узнаете.

Для того чтобы посмотреть более подробную информацию в процессе установки используйте опцию -v:

sudo rpm -iv имя_пакета.rpm

Также вы можете включить отображение статус бара в процессе установки:

sudo rpm -ivh имя_пакета.rpm

Чтобы проверить установлен ли пакет, нам уже нужно использовать режим запроса:

sudo rpm -q имя_пакета

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

sudo rpm -e имя_пакета

Но у rpm так же как и у dpkg, есть один существенный недостаток. Программа не может разрешать зависимости. В случае отсутствия нужного пакета в системе, вы просто получите сообщение об ошибке и пакет не установится.

Для автоматической загрузки зависимостей во время выполнения установки rpm linux нужно использовать пакетный менеджер дистрибутива. Рассмотрим несколько команд для самых популярных RPM дистрибутивов. В RedHat и других дистрибутивах, использующих Yum используйте такую команду:

sudo yum --nogpgcheck localinstall имя_пакета.rpm

Первая опция отключает проверку GPG ключа, а вторая говорит, что мы будем выполнять установку локального пакета. В Fedora, с помощью dnf все делается еще проще:

sudo dnf install имя_пакета.rpm

Пакетный менеджер Zypper и OpenSUSE справляются не хуже:

sudo zypper install имя_пакета.rpm

Вот так очень просто выполняется установка rpm с зависимостями. Но не всем нравится работать в консоли, многие новые пользователи хотят использовать графический интерфейс для решения всех задач, в том числе и этой. Дальше мы рассмотрим несколько таких утилит.

Установка RPM файла в GUI

Если вы используете OpenSUSE, то это делается очень просто. Универсальный конфигуратор системы YaST, кроме всего прочего позволяет установить rpm пакеты. Вы можете сделать это с помощью файлового менеджера, выбрав пункт контекстного меню для файла открыть с помощью Yast или выполнив команду:

yast2 -i имя_пакета.rpm

В Fedora для тех же целей вы можете использовать менеджер приложений дистрибутива. Раньше было еще несколько универсальных утилит для решения этой задачи, но сейчас они уже все устарели.

Выводы

Теперь вы знаете как выполняется установка rpm файла в Linux. На самом деле это очень просто и даже существует не только один способ, а целых несколько. Хотя графических утилит здесь немного меньше чем в Ubuntu. Но консольных утилит полностью хватает. Если у вас остались вопросы, спрашивайте в комментариях!

Оцените статью:

Загрузка...

Как установить RPM в Ubuntu

Установка программ в операционной системе Ubuntu производится путем распаковки содержимого из DEB-пакетов или с помощью скачивания необходимых файлов из официальных либо пользовательских хранилищ. Однако иногда программное обеспечение не поставляется в таком виде и хранится только в формате RPM. Далее мы бы хотели рассказать о методе инсталляции библиотек такого рода.

Устанавливаем RPM-пакеты в Ubuntu

RPM — формат пакетов различных приложений, заточенный под работу с дистрибутивами openSUSE, Fedora. По умолчанию в Ubuntu не предусмотрены средства, позволяющие произвести инсталляцию сохраненного в этом пакете приложения, поэтому придется выполнять дополнительные действия, чтобы вся процедура прошла успешно. Ниже мы разберем весь процесс пошагово, детально рассказывая обо всем поочередно.

Перед тем как переходить к попыткам установить RPM-пакет, внимательно ознакомьтесь с выбранным ПО — возможно, его удастся найти на пользовательском или официальном репозитории. Кроме этого, не поленитесь зайти на официальный сайт разработчиков. Обычно там находится несколько версий для скачивания, среди которых часто встречается и подходящий для Ubuntu формат DEB.

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

Шаг 1: Добавление репозитория Universe

Порой для установки определенных утилит требуется расширение системных хранилищ. Одним из лучших репозиториев считается Universe, который активно поддерживается сообществом и периодически обновляется. Поэтому начать стоит именно с добавления новых библиотек в Ubuntu:

  1. Откройте меню и запустите «Терминал». Сделать это можно другим способом — просто нажмите на рабочем столе ПКМ и выберите нужный пункт.
  2. В открывшейся консоли следует ввести команду sudo add-apt-repository universe и нажать на клавишу Enter.
  3. Вам потребуется указать пароль учетной записи, поскольку действие выполняется через рут-доступ. При вводе символы отображаться не будут, вам надо только ввести ключ и нажать на Enter.
  4. Будут добавлены новые файлы или же появится уведомление о том, что компонент уже включен во все источники.
  5. Если файлы были добавлены, обновите систему, прописав команду sudo apt-get update.
  6. Дождитесь завершения обновления и переходите к следующему шагу.

Шаг 2: Установка утилиты Alien

Для осуществления поставленной сегодня задачи мы будем задействовать простую утилиту под названием Alien. Она позволяет конвертировать пакеты формата RPM в DEB для дальнейшей их установки в Ubuntu. Процесс добавления утилиты не вызывает особых сложностей и выполняется одной командой.

  1. В консоли напечатайте sudo apt-get install alien.
  2. Подтвердите добавление, выбрав вариант Д.
  3. Ожидайте завершения скачивания и добавления библиотек.

Шаг 3: Преобразование пакета RPM

Теперь переходим непосредственно к конвертированию. Для этого у вас на компьютере или подключенном носителе уже должен храниться необходимый софт. После завершения всех настроек останется произвести всего несколько действий:

  1. Откройте место хранения объекта через менеджер, щелкните на нем ПКМ и выберите пункт «Свойства».
  2. Здесь вы узнаете информацию о родительской папке. Запомните путь, он понадобится вам в дальнейшем.
  3. Перейдите к «Терминалу» и введите команду cd /home/user/folder, где user — имя пользователя, а folder — название папки хранения файла. Таким образом, с помощью команды cd произойдет переход в директорию и все дальнейшие действия будут осуществляться в ней.
  4. Находясь в нужной папке, введите sudo alien vivaldi.rpm, где vivaldi.rpm — точное название нужного пакета. Учтите, что .rpm в конце дописывать обязательно.
  5. Снова введите пароль и дождитесь окончания конвертирования.

Шаг 4: Установка созданного DEB-пакета

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

Подробнее: Установка DEB-пакетов в Ubuntu

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

Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТ

использование менеджера пакетов rpm, команды rpm

RPM (RedHat Package Manager) - самая популярная утилита управления пакетами для систем на базе RedHat, таких как RHEL, CentOS, Fedora. Инструмент позволяет системным администраторам и пользователям устанавливать, обновлять, удалять, запрашивать, проверять и управлять пакетами системного программного обеспечения в операционных системах Unix/Linux. Менеджер пакетов RPM хранит информацию об установленных в системе приложениях в свой базе данных /var/lib/rpm. Сами .rpm файлы содержат скомпилированные версии программного обеспечения, библиотеки необходимые для их работы, а так-же актуальную информацию об источниках пакетов, версиях и зависимостях. RPM не может управлять программным обеспечением скомпилированным и установленным из исходных кодов. По сути RPM работает в нескольких режимах. Запросы и проверки:
  • rpm {-q|--query} [select-options] [query-options]
  • rpm {-V|--verify} [select-options] [verify-options]
Установка, обновление, удаление пакетов:
  • rpm {-i|--install} [install-options] PACKAGE_FILE ...
  • rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
  • rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
  • rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts][--notriggers] [--test] PACKAGE_NAME ...
1. Проверить gpg подпись rpm пакета
Желательно всегда проверять gpg подпись пакета перед его установкой что-бы удостовериться в его подлинности.
 # rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK 
2. Установка rpm пакета
Для установки rpm пакета используется ключ -i:
 # rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm Preparing... ########################################### [100%] 1:pidgin ########################################### [100%] 
-i: Установить пакет -v: показать отладочную информацию -h: выводить хэш-меток при установке
3. Проверить зависимости rpm пакета перед установкой
Посмотреть список зависимостей пакета можно так:
 # rpm -qpR htop-2.0.2-2.fc26.aarch64.rpm ld-linux-aarch64.so.1()(64bit) ld-linux-aarch64.so.1(GLIBC_2.17)(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.17)(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.17)(64bit) libncursesw.so.6()(64bit) libtinfo.so.6()(64bit) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 rtld(GNU_HASH) 
-q: выполнить запрос -p | --package: запросить информацию -R: опция режима query, список зависимостей пакета
4. Rpm, установка пакетов без зависимостей
Если вы уверены что все необходимые зависимости установлены, а rpm ругается и не дает установить пакет, можно игнорировать установку зависимостей с помощью флага --nodeps:
 # rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm Preparing... ########################################### [100%] 1:BitTorrent ########################################### [100%] 
Вышеприведенная команда принудительно установит пакет, не смотря на ошибки rpm. Учтите, что если окажется что зависимости все таки отсутствуют в системе, установленная программа работать не будет и нужно будет отдельно установить необходимые зависимости.
5. Rpm, проверить установленный пакет
Что-бы проверить установлен пакет или нет, нужно выполнить запрос нужного пакета: пакет htop установлен
 # rpm -q htop htop-2.0.2-1.el7.x86_64 
пакет fake не установлен
 # rpm -q fake package fake is not installed 
6. Rpm, список файлов установленного пакета
Список файлов установленного пакета можно получить запросом -ql (query list):
 # rpm -ql htop /usr/bin/htop /usr/share/doc/htop-2.0.2 /usr/share/doc/htop-2.0.2/AUTHORS /usr/share/doc/htop-2.0.2/COPYING /usr/share/doc/htop-2.0.2/ChangeLog /usr/share/doc/htop-2.0.2/README /usr/share/man/man1/htop.1.gz /usr/share/pixmaps/htop.png 
7. Rpm, список последних установленных пакетов
 # rpm -qa --last htop-2.0.2-1.el7.x86_64 Sat 03 Jun 2017 06:20:07 PM MSK 
8. Rpm, вывести список всех установленных пакетов
Что-бы получить список всех установленных в системе пакетов, нужно выполнить запрос -qa без дополнительных параметров
 # rpm -qa perl-HTML-Parser-3.71-4.el7.x86_64 dracut-network-033-463.el7.x86_64 filesystem-3.2-21.el7.x86_64 ..................... 
список пакетов будет довольно большим, для постраничного вывода можно использовать такие утилиты как more или less:
 # rpm -qa | more 
9. Обновление rpm пакета
Для обновления любого rpm пакета используется опция -U (upgrade). Данная опция не только делает обновление любого пакета до последней версии, но и создает резервную копию старой версии пакета. Если после обновления что-то пойдет не так и программное обеспечение не заработает, можно будет вернуться на ранее установленную и заведомо рабочую версию.
 # rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm Preparing... ########################################### [100%] 1:nx ########################################### [100%] 
10. Удаление rpm пакета
Для удаления пакета предназначена опция -e (erase), опция vv используется для более подробного вывода отладочных сообщений:
 # rpm -evv nx 
11. Удаление rpm пакета без зависимостей
Параметр --nodeps принудительно удаляет пакет rpm из системы. Имейте в виду, что удаление определенного пакета может нарушить работу других рабочих приложений.
 # rpm -ev --nodeps htop 
12. Rpm, запросить файл принадлежащий пакету
Если понадобилось узнать какому пакету принадлежит конкретный файл, используется опция -qf (query file):
 # rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64 
13. Rpm, получить информацию об установленном пакете
Что-бы получить развернутую информацию об установленном пакете, используется опция -qi (query info):
 # rpm -qi htop Name : htop Version : 2.0.2 Release : 1.el7 Architecture: x86_64 Install Date: Sun 04 Jun 2017 10:20:51 AM MSK Group : Applications/System Size : 212139 License : GPL+ Signature : RSA/SHA256, Sun 24 Jul 2016 09:22:13 PM MSK, Key ID 6a2faea2352c64e5 Source RPM : htop-2.0.2-1.el7.src.rpm Build Date : Sun 24 Jul 2016 01:01:34 PM MSK Build Host : buildvm-26.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://hisham.hm/htop/ Summary : Interactive process viewer Description : htop is an interactive text-mode process viewer for Linux, similar to top(1). 
14. Rpm, получить информацию о пакета который еще не установлен
Что-бы получить информацию о пакете который уже скачан, но еще не установлен, можно запросом -qip (query info package):
 rpm -qip ./pachage_name.rpm 
15. Rpm, посмотреть файлы документации определенного пакета
Запрос -qdf (query document file) выведет список всех файлов документации пакета:
 # rpm -qdf /usr/bin/htop /usr/share/doc/htop-2.0.2/AUTHORS /usr/share/doc/htop-2.0.2/COPYING /usr/share/doc/htop-2.0.2/ChangeLog /usr/share/doc/htop-2.0.2/README /usr/share/man/man1/htop.1.gz 
16. Проверка определенного rpm пакета
При проверке пакета сравнивается информацию об установленных файлах пакета с базой данных rpm.
 # rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf 
17. Проверка всех rpm пакетов
 # rpm -Va S.5....T. c /etc/rc.d/rc.local .......T. c /etc/dnsmasq.conf .......T. /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf 
18. Импорт GPG ключа
Для проверки пакетов RHEL/CentOS/Fedora, нужно импортировать GPG ключ. Для этого выполните следующую команду:
 # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 
19. Rpm, посмотреть все импортированные ключи
 # rpm -qa gpg-pubkey* gpg-pubkey-7bd9bf62-5762b5f8 gpg-pubkey-352c64e5-52ae6884 gpg-pubkey-f4a80eb5-53a7ff4b gpg-pubkey-810f8996-552b1d92 
20. Перестроить поврежденную базу данных rpm
Иногда база данных rpm может быть повреждена, при этом rpm не может нормально функционировать. Если подобное случилось, нужно перестроить базу данных rpm:
 # cd /var/lib/rpm # rm -f __db.* # rpm --rebuilddb 
Ну и как обычно:
 # man rpm 
Удачи

Как установить RPM пакеты на Ubuntu

В этой статье мы покажем вам, как вы можете установить RPM пакеты на Ubuntu. Система Ubuntu на базе Debian и на базе RedHat такая как CentOS, в основном аналогичны по своей конструкции. Тем не менее, есть несколько различий здесь и там. Например, система RedHat на основе использование .rpm файлов для представления пакетов программного обеспечения, в то время как система Debian на основе использование файлов .deb. Эти типы файлов отличаются друг от друга по своей конструкции, и не могут быть установлены за пределами их соответствующего типа операционных систем (например, установка файла .deb на CentOS, или установка файла .rpm на Ubuntu). Тем не менее, есть способы импорта этих пакетов для других типов систем.

Есть два способа установки пакета RPM: либо путь преобразования файла .rpm в файл .deb, или путем непосредственно установки файла .rpm. Оба метода довольно просты, но установка RPM пакетов в системе Debian может привести к некоторым проблемам, в зависимости от устанавливаемого программного обеспечения (более подробно об этом внизу).

1. Добавьте репозитория Universe

Для первого способа вам понадобится пакет программного обеспечения под названием «Alien», который является программным обеспечением, предназначенным для преобразования файлов .rpm в файлы .deb. Для того, чтобы установить Alien, вам нужно будет добавить репозиторий программного обеспечения под названием «Universe». Откройте терминал и введите:

sudo add-apt-repository universe

2. Обновление apt-get

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

sudo apt-get update

3. Установите пакет Alien

Теперь, когда мы добавили в хранилище Universe, установили Alien, выполните следующую команду:

sudo apt-get install alien

4. Преобразование .rpm в .deb

После установки, убедитесь, что пакет программного обеспечения вы загрузили файл .rpm. Перейдите в папку, где находится файл .rpm. Если у вас есть готовый файл .rpm, просто запустите следующую команду:

sudo alien <name of package>.rpm

5. Установите преобразованного пакета

Это может занять некоторое время файл для преобразования. Как только это будет сделано, установите файл, обычно с помощью DPKG:

sudo dpkg -i <name of package>.deb

 

Он должен установиться как обычный файл .deb. Теперь вы можете использовать только что установленное программное.

6. Установка пакета RPM непосредственно на систему

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

sudo alien -i <name of package>.rpm

 

Дайте ему минуту, и он должен быть установлен на вашей системе без каких-либо проблем.

Возможные проблемы

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как установить RPM файлы (пакеты) на CentOS Linux

RPM Package Manager (RPM) – это мощная система управления пакетами, используемая Red Hat Linux и его производными, такими как CentOS и Fedora. RPM также относится к команде rpm и формату файла .rpm.

В репозиториях CentOS содержатся тысячи rpm, которые могут быть установлены с помощью менеджера desktop software manager или из командной строки, используя утилиты yum, dnf и rpm. Некоторые библиотеки и приложения упакованы в формате rpm, но не включены ни в один репозиторий CentOS. Эти приложения должны быть загружены с веб-сайтов разработчика и установлены вручную.

В этой статье мы расскажем, как установить rpm-файлы в CentOS.

Будьте особенно осторожны при установке пакетов rpm из неофициальных источников. Пакет должен быть собран для вашей системной архитектуры и версии CentOS . Никогда не заменяйте и не обновляйте основные системные пакеты, такие как glibc, systemd или другие службы и библиотеки, которые необходимы для правильного функционирования системы.

Только root или пользователь с правами sudo может устанавливать или удалять RPM-пакеты.

 

yum и dnf являются инструментами командной строки для установки, обновления, удаления и иного управления пакетами rpm в CentOS и связанных дистрибутивах Linux.

Начиная с CentOS 8, yum заменен на dnf в качестве менеджера пакетов по умолчанию. dnf обратно совместим с yum.

Вы можете продолжать использовать yum на CentOS 8, так как это псевдоним для dnf.

Чтобы установить локальные пакеты rpm с помощью yum или dnf, используйте команду install, а затем путь к файлу. В приведенном ниже примере мы устанавливаем браузер Chrome :

sudo yum install google-chrome-stable_current_x86_64.rpm
 
sudo dnf install google-chrome-stable_current_x86_64.rpm
 

 

И yum и dnf разрешит и установит все зависимости пакета. Вам будет предложено ввести, Y чтобы продолжить:

...
 Install 69 Packages
 
 Total size: 45 M
 Total download size: 28 M
 Installed size: 292 M
 Is this ok [y/N]: 
 

 

Вот и все, приложение установлено в вашей системе, и вы можете начать его использовать.

Вы также можете установить пакет rpm прямо с URL:

sudo yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
 
sudo dnf install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
 

 

rpm – менеджер пакетов низкого уровня для систем RHEL

При установке, обновлении и удалении пакетов вы всегда должны использовать yum или dnf больше чем rpm, поскольку он не устраняет зависимости.

Для установки rpm-пакетов rpm используйте опцию -i (или -U), за которой следует путь к файлу:

sudo rpm -i google-chrome-stable_current_x86_64.rpm
 

 

Если пакет, который вы устанавливаете или обновляете, зависит от других пакетов, которые в данный момент не установлен, rpm отобразит список всех отсутствующих зависимостей. Вам нужно будет установить все зависимости.

rpm также принимает установку пакетов с URL:

sudo rpm -i google-chrome-stable_current_x86_64.rpm
 

 

В CentOS вы можете установить локальный rpm-файл, используя yum или dnf, так же, как вы устанавливаете пакет из репозиториев.

Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Команда RPM в Linux | ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

RPM Package Manager (RPM) – это мощная система управления пакетами, используемая Red Hat Linux и его производными, такими как CentOS и Fedora. RPM также относится к команде rpm и формату .rpm файла. Пакет RPM состоит из архива файлов и метаданных, включая информацию, такую как зависимости и место установки.

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

 

Обычно, чтобы установить новый пакет на основе дистрибутивов Red Hat, вы будете использовать либо команды yum или dnf, которые могут решить и установить все зависимости пакетов.

Вы всегда должны предпочитать использовать yum или dnf больше rpm при установке, обновлении и удалении пакетов.

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

При установке RPM-пакетов убедитесь, что они созданы для вашей системной архитектуры и вашей версии CentOS. Будьте особенно осторожны при замене или обновлении важных системных пакетов, таких как glibc, systemd или других служб и библиотек, которые необходимы для правильного функционирования вашей системы.

Только root или пользователи с привилегиями sudo могут устанавливать или удалять RPM-пакеты.

Чтобы установить RPM-пакет с помощью rpm, используйте параметр -i, а затем имя пакета:

sudo rpm -ivh package.rpm

 

Опция -v указывает rpm показать подробный вывод и -h показать индикатор выполнения.

Вы можете пропустить часть загрузки и указать команду для пакета RPM в команде rpm:

sudo rpm -ivh https://example.com/package.rpm

 

Чтобы обновить пакет RPM, используйте опцию -U. Если пакет не установлен, он будет установлен:

sudo rpm -Uvh package.rpm

 

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

Чтобы установить пакет RPM без установки всех необходимых зависимостей в системе, используйте параметр –nodeps:

sudo rpm -Uvh --nodeps package.rpm

 

Чтобы удалить (стереть) пакет RPM, используйте параметр -e:

sudo rpm -e package.rpm

 

Опция –nodeps также полезна, когда вы хотите удалить пакет, не удаляя его зависимости:

sudo rpm -evh --nodeps package.rpm

 

Опция –test указывает rpm запустить установку или удаление команды фактически не делая ничего. Это только показывает, будет ли команда работать или нет:

sudo rpm -Uvh --test package.rpm

 

Опция -q указывает команде rpm выполнить запрос.

Чтобы запросить (выполнить поиск), установлен ли определенный пакет, передайте имя пакета в rpm команду -q. Следующая команда покажет вам, установлен ли в системе пакет OpenJDK 11:

sudo rpm -q java-11-openjdk-devel

 

Если пакет установлен, вы увидите что-то вроде этого:

java-11-openjdk-devel-11.0.4.11-0.el8_0.x86_64

 

Укажите параметр -i чтобы получить больше информации о запрашиваемом пакете:

sudo rpm -qi java-11-openjdk-devel

 

Чтобы получить список всех файлов в установленном пакете RPM:

sudo rpm -ql package

 

Если вы хотите узнать, к какому установленному пакету принадлежит тот или иной файл, введите:

sudo rpm -qf /path/to/file

 

Чтобы получить список всех установленных пакетов в вашей системе, используйте опцию -a:

sudo rpm -qa

 

При проверке пакета команда rpm проверяет, существует ли в системе каждый файл, установленный пакетом, дайджест файла, владелец, разрешения и т. д.

Чтобы проверить установленный пакет, используйте опцию -V. Например, чтобы проверить пакет openldap, вы должны выполнить:

sudo rpm -V openldap-2.4.46-9.el8.x86_64

 

Если проверка прошла успешно, команда не напечатает никаких выходных данных. В противном случае, если некоторые проверки не пройдены, будет показан символ, обозначающий неудавшийся тест.

Например, следующий вывод показывает, что mTime файла был изменен («T»):

.......T. c /etc/openldap/ldap.conf

 

Обратитесь к справочной странице RMP, чтобы узнать, что означает каждый символ.

Чтобы проверить все установленные пакеты rpm, выполните следующую команду:

sudo rpm -Va

 

rpm, это низкоуровневое средство командной строки для установки, запроса, проверки, обновления и удаления пакетов RMP. При установке RPM-пакетов следует предпочитать использовать yum или dnf, поскольку они автоматически разрешают все зависимости для вас.

Для получения дополнительной информации обо всех доступных параметрах команд введите man rpmв своем терминале или посетите веб-сайт RPM.org.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как запустить RPM в Ubuntu | Small Business

Хотя официальные репозитории программного обеспечения Ubuntu содержат тысячи приложений на выбор, последняя версия приложения, необходимого вашему бизнесу, могла быть разработана для систем Fedora, OpenSuse или Mandriva Linux. Эти системы устанавливают программы с использованием формата диспетчера пакетов RPM или RPM вместо формата Debian или DEB, используемого Ubuntu. К счастью, вы можете конвертировать пакеты RPM в пакеты DEB, используя приложение командной строки «Alien», доступное в репозиториях программного обеспечения Ubuntu.Как только Alien преобразует RPM в формат DEB, вы можете установить и запустить его, используя стандартные инструменты управления пакетами Ubuntu.

Нажмите кнопку «Unity Dash». Введите "терминал" в поле поиска.

Щелкните значок приложения «Терминал».

Введите в командной строке «sudo apt-get install alien» и нажмите клавишу «Enter». Введите свой пароль в командной строке, затем нажмите «Ввод», чтобы установить приложение Alien RPM manager.

Перейдите в каталог, содержащий файл RPM, который вы хотите использовать.Например, если ваш RPM находится в папке «Загрузки», введите «cd Downloads» и нажмите клавишу «Enter».

Используйте опцию команды «-d», чтобы указать Alien преобразовать ваш RPM в файл «DEB». Например, если ваш RPM-файл называется chatclient.rpm, введите «sudo alien -d chatclient.rpm», нажмите клавишу «Enter», введите системный пароль, затем нажмите «Enter».

Введите в командной строке «ls * .deb» и нажмите клавишу «Enter». Обратите внимание на имя файла DEB Alien, созданного из вашего RPM.Протестируйте новый файл DEB, используя имитацию диспетчера пакетов DPKG или режим «пробного запуска». Например, если ваш новый файл DEB называется «libzine3.5.1.deb», введите «sudo dpkg --simulate -i libzine3.5.1.deb» в командной строке, нажмите клавишу «Enter», введите свой пароль, если будет предложено , затем нажмите клавишу «Enter».

Если ошибок или предупреждений нет, установите файл DEB с помощью DPKG. Например, если ваш новый файл DEB - «libzine3.5.1.deb», введите в командной строке «dpkg -i libzine3.5.1.deb», нажмите клавишу «Enter», введите свой пароль, если будет предложено, затем нажмите "Введите ключ.

.

Как установить файл RPM в Linux

Как установить файл RPM в Linux

Автор: Джаррод 31 мая 2017 г. Файлы

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

Не все дистрибутивы Linux поддерживают RPM. Обычно файлы RPM используются в дистрибутивах на основе RHEL, таких как CentOS и Fedora, чтобы назвать пару, однако они также были перенесены в другие места.Если вы обнаружите, что ваш дистрибутив не поддерживает установку файла RPM, вам может потребоваться изучить другие параметры, такие как файлы .deb в Ubuntu / Debian.

Если вы загрузили файл RPM из Интернета, есть несколько инструментов, которые можно использовать для его установки. Лично я предпочитаю использовать Yum / DNF, они действуют как интерфейс для команды RPM и будут поддерживать актуальную базу данных зависимостей пакетов.

Установка файла RPM с помощью Yum

Обычно при установке пакета из репозитория с помощью команды yum вы запускаете «yum install httpd», и он просто загружает требуемый файл RPM из настроенного репозитория.Вместо этого мы можем использовать «yum install file.rpm» и указать локальный файл RPM, который мы должны установить.

 [[адрес электронной почты защищен] ~] #  yum instsall httpd-2.4.6-45.el7.centos.x86_64.rpm  Загруженные плагины: fastestmirror, langpacks Изучение httpd-2.4.6-45.el7.centos.x86_64.rpm: httpd-2.4.6-45.el7.centos.x86_64 Маркировка httpd-2.4.6-45.el7.centos.x86_64.rpm для установки Разрешение зависимостей -> Выполняется проверка транзакции ---> Пакет httpd.x86_64 0: 2.4.6-45.el7.centos будет установлен -> Зависимость обработки: httpd-tools = 2.4.6-45.el7.centos для пакета: httpd-2.4.6-45.el7.centos.x86_64 Скорость загрузки зеркала из кэшированного хост-файла * база: centos.mirror.serversaustralia.com.au * Дополнительно: ftp.swin.edu.au * обновления: centos.mirror.serversaustralia.com.au -> Зависимость обработки: /etc/mime.types для пакета: httpd-2.4.6-45.el7.centos.x86_64 -> Зависимость обработки: libapr-1.so.0 () (64 бит) для пакета: httpd-2.4.6-45.el7.centos.x86_64 -> Зависимость обработки: libaprutil-1.so.0 () (64 бит) для пакета: httpd-2.4.6-45.el7.centos.x86_64 -> Выполняется проверка транзакции ---> Пакет apr.x86_64 0: 1.4.8-3.el7 будет установлен ---> Будет установлен пакет apr-util.x86_64 0: 1.5.2-6.el7 ---> Будет установлен пакет httpd-tools.x86_64 0: 2.4.6-45.el7.centos ---> Будет установлен пакет mailcap.noarch 0: 2.1.41-2.el7 -> Завершенное разрешение зависимостей Решенные зависимости ================================================== ================================================= Размер репозитория версии пакета Arch ================================================== ================================================= Установка: httpd x86_64 2.4.6-45.el7.centos /httpd-2.4.6-45.el7.centos.x86_64 9,4 млн Установка для зависимостей: апр x86_64 1.4.8-3.el7 base 103 k apr-util x86_64 1.5.2-6.el7 база 92 КБ httpd-tools x86_64 2.4.6-45.el7.centos base 84 КБ mailcap noarch 2.1.41-2.el7 base 31 k Сводка транзакции ================================================== ================================================= Установить 1 пакет (+4 зависимых пакета) Общий размер: 9.7 млн Общий размер загрузки: 309 КБ Установленный размер: 10 м Это нормально [г / д / н]:  y  Скачивание пакетов: (1/4): апр-1.4.8-3.el7.x86_64.rpm | 103 кБ 00:00:00 (2/4): mailcap-2.1.41-2.el7.noarch.rpm | 31 кБ 00:00:00 (3/4): httpd-tools-2.4.6-45.el7.centos.x86_64.rpm | 84 кБ 00:00:00 (4/4): апр-util-1.5.2-6.el7.x86_64.rpm | 92 кБ 00:00:00 -------------------------------------------------- ------------------------------- Всего 247 кБ / с | 309 кБ 00:00:01 Выполняется проверка транзакции Запуск теста транзакции Проверка транзакции прошла успешно Выполняемая транзакция Установка: апр-1.4. 
.

Как установить или обновить пакет RPM?

Окружающая среда

  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 5

Выпуск

  • Как установить или обновить пакет RPM?
  • Как обновить пакет об / мин ?

Разрешение

Чтобы установить пакет RPM, у вас сначала должен быть пакет RPM, который вы пытаетесь установить в своей системе.Портал для клиентов Red Hat предоставляет все пакеты RPM, включенные в наши продукты, в разделе «Загрузки». Найти интересующий вас пакет можно двумя способами.

Поиск по имени пакета
В разделе «Загрузки» выберите «Поиск пакетов RPM». Поиск пакетов позволяет искать пакеты независимо от продукта, но может быть ограничен конкретным продуктом.

Просмотр по продукту
В разделе «Загрузки» перейдите к интересующему вас продукту и выберите вкладку «Пакеты».Например, пакеты для RHEL 7 Server

Примечание: Для просмотра или загрузки пакетов требуется активная подписка на продукт, которая включает в себя права на пакет.

Для получения дополнительной информации о загрузке пакетов с портала для клиентов см. Это решение: Как загрузить руководство по пакету rpm

.Руководство по упаковке

об / мин - Руководство по упаковке RPM 0.0.1 документация

Здравствуйте! Добро пожаловать в RPM Packaging 101 (из-за отсутствия более изобретательного названия). Вот вы найдете всю необходимую информацию, чтобы начать упаковывать RPM для различных дистрибутивов Linux, использующих формат упаковки RPM.

Это руководство не предполагает никаких предварительных знаний об упаковке программного обеспечения для любых Операционная система, Linux или другая. Однако следует отметить, что это руководство написано для «семейства» дистрибутивов Linux Red Hat, которые являются:

Хотя эти дистрибутивы являются целевой средой, следует отметить, что уроки изученное здесь, должно быть применимо ко всем дистрибутивам, основанным на RPM но примеры необходимо будет адаптировать для конкретных элементов распространения, таких как необходимые элементы для установки, инструкции или макросы.(Подробнее о макросах позже)

Примечание

Если вы зашли так далеко и не знаете, что за программный пакет или Дистрибутив GNU / Linux, возможно, вам лучше всего подойдет изучение некоторых статьи по темам Linux и менеджеры пакетов.

Пакеты

об / мин

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

Что такое RPM?

Для начала давайте сначала определим, что такое RPM. Пакет RPM это просто файл, который содержит некоторые файлы, а также информацию, которую система нужно знать об этих файлах. В частности, это файл, содержащий cpio архив и метаданные о себе. Архив cpio - это полезная нагрузка а заголовок RPM содержит метаданные. Менеджер пакетов об / мин использует это метаданные для определения таких вещей, как зависимости, место установки файлов и т. д.

Условно говоря, есть два разных типа оборотов в минуту, это Исходный RPM (SRPM) и двоичный RPM. Оба они имеют общий формат файла и инструменты, но они представляют собой очень разные вещи. Полезная нагрузка SRPM - это Файл SPEC (который описывает, как создать двоичный RPM) и фактический источник код, из которого будет построен результирующий двоичный RPM (включая любые исправления что может понадобиться).

об / мин Рабочее пространство упаковки

В разделе «Необходимые условия» мы установили пакет с именем rpmdevtools , который предоставляет ряд удобных утилит для упаковщиков RPM.

Не стесняйтесь исследовать вывод следующей команды и проверить справочные страницы различных утилит или диалоговые окна справки.

 $ rpm -ql rpmdevtools | grep bin 

Для настройки нашего рабочего пространства RPM Packaging воспользуемся rpmdev-setuptree Утилита для создания макета нашего каталога. Затем мы определим для чего предназначен каждый каталог в структуре каталогов.

 $ rpmdev-setuptree $ tree ~ / rpmbuild / / главная / maxamillion / rpmbuild / | - СТРОИТЬ | - RPMS | - ИСТОЧНИКИ | - ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ `- SRPMS 5 каталогов, 0 файлов 
Здесь находятся файлы
Справочник Назначение
СТРОИТЬ Различные каталоги % buildroot будут созданы здесь, когда пакеты построены.Это полезно для проверки вскрытие сборки, которая выходит из строя, если в журналах нет предоставьте достаточно информации.
об / мин двоичных RPM будут размещены здесь, в подкаталогах Архитектура. Например: noarch и x86_64
ИСТОЧНИКИ Сжатые архивы исходного кода и любые исправления должны быть здесь, именно здесь их будет искать команда rpmbuild .
ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ SPEC.
SRPMS Когда правильные аргументы переданы в rpmbuild в создайте исходный RPM вместо двоичного RPM, исходные RPM (SRPMS) попадет в этот каталог.

Что такое файл SPEC?

Файл SPEC можно рассматривать как рецепт , который rpmbuild утилита используется для создания RPM. Он сообщает системе сборки, что делать определение инструкций в серии разделов.Разделы определены между преамбула и тело . В преамбуле мы определим серию элементы метаданных, которые будут использоваться в Body и Body , где основная часть работы выполнена.

Пункты преамбулы

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

Директива SPEC Определение
Имя (базовое) имя пакета, которое должно соответствовать SPEC название файла
Версия Номер исходной версии программного обеспечения.
Выпуск Начальное значение обычно должно быть 1% {? Dist}, это значение должен увеличиваться каждый новый выпуск пакета и сбрасывается в 1, когда создается новая версия программного обеспечения .
Сводка Краткое однострочное описание пакета.
Лицензия Лицензия на упаковываемое программное обеспечение. Для пакетов которые предназначены для распространения сообществ, таких как Fedora, это должна быть лицензия с открытым исходным кодом в соответствии с Руководство по лицензированию конкретного дистрибутива.
URL Полный URL-адрес для получения дополнительной информации о программе (большинство часто это веб-сайт апстрим-проекта программного обеспечения в упаковке).
Источник 0 Путь или URL-адрес сжатого архива исходного источника код (без исправлений, исправления обрабатываются в другом месте). Это в идеале список исходных URL-адресов, а не просто локальная копия источника. При необходимости больше SourceX можно добавлять директивы, увеличивая число каждый раз например: Source1, Source2, Source3 и т. д.
Патч0 Имя первого патча, применяемого к исходному коду, если необходимо. При необходимости можно добавить больше директив PatchX, увеличивая число каждый раз, например: Patch2, Patch3, Patch4 и так далее.
BuildArch Если пакет не зависит от архитектуры, т.е. написан полностью на интерпретируемом языке программирования, это должно быть BuildArch: noarch в противном случае автоматически унаследовать архитектуру машины, на которой она построена.
Сборка Требуется Список необходимых пакетов, разделенных запятыми или пробелами. для строительства (составление) программы. Может быть несколько записей Build Требуется каждая в отдельной строке файла SPEC.
Требуется Запятая или пробел, разделенные пробелами
.

Как создавать пакеты rpm

Я использовал менеджеры пакетов на основе rpm для установки программного обеспечения в Red Hat и Fedora Linux с тех пор, как начал использовать Linux более 20 лет назад. Я использовал саму программу rpm , yum и DNF , которая является близким потомком yum, для установки и обновления пакетов на моих хостах Linux. Инструменты yum и DNF представляют собой оболочки вокруг утилиты rpm, которые предоставляют дополнительные функции, такие как возможность поиска и установки зависимостей пакетов.

За прошедшие годы я создал ряд сценариев Bash, некоторые из которых имеют отдельные файлы конфигурации, которые мне нравится устанавливать на большинстве моих новых компьютеров и виртуальных машин. Дошло до того, что для установки всех этих пакетов потребовалось много времени, поэтому я решил автоматизировать этот процесс, создав пакет rpm, который я мог скопировать на целевые хосты и установить все эти файлы в их надлежащие места. Хотя инструмент rpm ранее использовался для сборки пакетов rpm, эта функция была удалена и был создан новый инструмент rpmbuild, для сборки новых rpm.

Когда я начал этот проект, я нашел очень мало информации о создании пакетов rpm, но мне удалось найти книгу Maximum RPM , которая помогла мне разобраться. Эта книга сейчас несколько устарела, как и большая часть информации, которую я нашел. Его тоже больше не издают, а старые копии продаются за сотни долларов. Онлайн-версия Maximum RPM доступна бесплатно и постоянно обновляется. На веб-сайте RPM также есть ссылки на другие веб-сайты, на которых есть много документации по rpm.Какая другая информация обычно бывает краткой и, очевидно, предполагает, что вы уже хорошо знакомы с процессом.

Кроме того, каждый из найденных мной документов предполагает, что код должен быть скомпилирован из исходников, как в среде разработки. Я не разработчик. Я системный администратор, и у нас, системных администраторов, разные потребности, потому что мы не или не должны компилировать код для использования в административных задачах; мы должны использовать сценарии оболочки. Таким образом, у нас нет исходного кода в том смысле, что его нужно скомпилировать в двоичные исполняемые файлы.У нас есть источник, который одновременно является исполняемым файлом.

По большей части этот проект следует выполнять как ученик без полномочий root. Rpms никогда не должны создаваться пользователем root, а только непривилегированными пользователями. Я укажу, какие части следует выполнять как root, а какие - некорневому, непривилегированному пользователю.

Препарат

Сначала откройте один сеанс терминала и su для root. Обязательно используйте параметр , чтобы убедиться, что вся корневая среда включена.Я не верю, что системные администраторы должны использовать sudo для каких-либо административных задач. Узнайте, почему в моем личном блоге: Real SysAdmins не sudo .

 

[student @ testvm1 ~] $ su -
Пароль:
[root @ testvm1 ~] #

Создайте пользователя-ученика, которого можно использовать в этом проекте, и установите для него пароль.

 

[root @ testvm1 ~] # useradd -c "Пользователь-студент" student
[root @ testvm1 ~] # passwd student
Изменение пароля для пользователя student.
Новый пароль: <Введите пароль>
Введите новый пароль еще раз: <Введите пароль>
passwd: все токены аутентификации успешно обновлены.
[root @ testvm1 ~] #

Для сборки пакетов rpm требуется пакет rpm-build , который, скорее всего, еще не установлен. Установите его сейчас как root. Обратите внимание, что эта команда также установит несколько зависимостей. Число может варьироваться в зависимости от пакетов, уже установленных на вашем хосте; На мою тестовую виртуальную машину было установлено 17 пакетов, что довольно мало.

  dnf install -y rpm-build  

Остальная часть этого проекта должна выполняться как пользователь-студент, если явно не указано иное. Откройте другой сеанс терминала и используйте su , чтобы переключиться на этого пользователя для выполнения остальных действий. Загрузите подготовленный мною архив со структурой каталогов для разработки, utils.tar, с GitHub, используя следующую команду:

  wget https://github.com/opensourceway/how-to-rpm/raw/master/utils.деготь  

Этот архив включает в себя все файлы и сценарии Bash, которые будут установлены при последней загрузке. Существует также полный файл спецификации, который вы можете использовать для сборки rpm. Мы подробно рассмотрим каждый раздел файла спецификации.

Как пользователь-студент, используя ваш домашний каталог в качестве текущего рабочего каталога (pwd), распакуйте архив.

  [студент @ testvm1 ~] $ cd; tar -xvf utils.tar  

Используйте команду tree , чтобы убедиться, что структура каталогов ~ / development и содержащихся в нем файлов выглядит следующим образом:

 [студент @ testvm1 ~] $ tree development / 
разработка /
├── лицензия
│ ├── Авторское право.и.GPL.Notice.txt
│ └── GPL_LICENSE.txt
├── скрипты
│ ├── create_motd
│ ├── умереть
│ ├── mymotd
│ └── sysdata
└── spec
└── utils.spec

3 каталога, 7 файлов
[student @ testvm1 ~] $

Сценарий mymotd создает поток данных «Сообщение дня», который отправляется на стандартный вывод. Сценарий create_motd запускает сценарии mymotd и перенаправляет вывод в файл / etc / motd.Этот файл используется для отображения ежедневного сообщения пользователям, которые входят в систему удаленно с помощью SSH.

Сценарий die - это мой собственный сценарий, который включает команду kill в небольшой фрагмент кода, который может находить запущенные программы, соответствующие указанной строке, и уничтожать их. Он использует kill -9 , чтобы гарантировать, что они не могут игнорировать сообщение об уничтожении.

Сценарий sysdata может выдавать десятки тысяч строк данных об оборудовании вашего компьютера, установленной версии Linux, всех установленных пакетах и ​​метаданных ваших жестких дисков.Я использую его, чтобы задокументировать состояние хоста в определенный момент времени. Позже я могу использовать его для справки. Я делал это, чтобы вести учет хостов, которые я установил для клиентов.

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

  chown -R студент. Развитие студентов  

Большинство файлов и каталогов в этом дереве будут установлены в системах Fedora с помощью rpm, созданного вами во время этого проекта.

Создание структуры каталогов сборки

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

 

~ ─ rpmbuild
├── RPMS
│ └── noarch
├── ИСТОЧНИКИ
├── SPECS
└── SRPMS

Мы не будем создавать каталог rpmbuild / RPMS / X86_64, потому что это будет зависеть от архитектуры для 64-битных скомпилированных двоичных файлов.У нас есть сценарии оболочки, которые не зависят от архитектуры. В действительности мы также не будем использовать каталог SRPMS, который будет содержать исходные файлы для компилятора.

Изучение файла спецификации

Каждый файл спецификации имеет ряд разделов, некоторые из которых могут быть проигнорированы или опущены, в зависимости от конкретных обстоятельств сборки rpm. Этот конкретный файл спецификации не является примером минимального файла, необходимого для работы, но это хороший пример умеренно сложного файла спецификации, который упаковывает файлы, которые не нужно компилировать.Если бы компиляция была необходима, она была бы выполнена в разделе % build , который опущен в этом файле спецификации, потому что он не требуется.

Преамбула

Это единственный раздел спецификационного файла, у которого нет метки. Он состоит из большей части информации, которую вы видите при запуске команды rpm -qi [Package Name] . Каждая база данных представляет собой одну строку, которая состоит из тега, который его идентифицирует, и текстовых данных для значения тега.

 ############################################## ############################# 
# Файл спецификации для утилит
############# ############################################### #################
# Настроен для сборки пользователем student или другим пользователем без полномочий root
################ ############################################### #############
#
Описание: Служебные скрипты для тестирования создания RPM
Имя: utils
Версия: 1.0,0
Релиз: 1
Лицензия: GPL
URL: http://www.both.org
Группа: System
Упаковщик: Дэвид Оба
Требует: bash
Требуется: экран
Требуется: mc
Требует: dmidecode
BuildRoot: ~ / rpmbuild /

# Выполните сборку со следующим синтаксисом:
# rpmbuild --target noarch -bb utils.spec

Строки комментариев игнорируются программой rpmbuild . Я всегда люблю добавлять комментарий к этому разделу, который содержит точный синтаксис команды rpmbuild , необходимой для создания пакета.Тег Summary - это краткое описание пакета. Теги Name, Version и Release используются для создания имени файла rpm, как в utils-1.00-1.rpm. Увеличение номера выпуска и версии позволяет создавать rpms, которые можно использовать для обновления более старых.

Тег License определяет лицензию, под которой выпущен пакет. Я всегда использую вариант GPL. Указание лицензии важно для пояснения того факта, что программное обеспечение, содержащееся в пакете, имеет открытый исходный код.По этой же причине я включил лицензию и заявление GPL в файлы, которые будут установлены.

URL-адрес - это обычно веб-страница проекта или владельца проекта. В данном случае это моя личная веб-страница.

Тег Group интересен и обычно используется для приложений с графическим интерфейсом. Значение тега Group определяет, какая группа значков в меню приложений будет содержать значок исполняемого файла в этом пакете. Используемый вместе с тегом Icon (который мы здесь не используем), тег Group позволяет добавить значок и необходимую информацию для запуска программы в структуру меню приложений.

Тег Packager используется для указания лица или организации, ответственных за поддержку и создание пакета.

Операторы Requires определяют зависимости для этого rpm. Каждый - это имя пакета. Если один из указанных пакетов отсутствует, утилита установки DNF попытается найти его в одном из определенных репозиториев, определенных в /etc/yum.repos.d, и установить его, если он существует. Если DNF не может найти один или несколько необходимых пакетов, он выдаст ошибку, указывающую, какие пакеты отсутствуют, и завершится.

Строка BuildRoot указывает каталог верхнего уровня, в котором инструмент rpmbuild найдет файл спецификации и в котором он будет создавать временные каталоги во время сборки пакета. Готовый пакет будет сохранен в подкаталоге noarch, который мы указали ранее. Комментарий, показывающий синтаксис команды, используемый для сборки этого пакета, включает параметр –target noarch , который определяет целевую архитектуру. Поскольку это сценарии Bash, они не связаны с конкретной архитектурой ЦП.Если бы этот параметр был опущен, сборка была бы нацелена на архитектуру процессора, на котором выполняется сборка.

Программа rpmbuild может быть нацелена на множество различных архитектур, а использование опции --target позволяет нам строить зависящие от архитектуры пакеты на хосте с архитектурой, отличной от той, на которой выполняется сборка. Таким образом, я мог собрать пакет, предназначенный для использования в архитектуре i686 на хосте x86_64, и наоборот.

Измените имя упаковщика на свое и URL-адрес вашего собственного веб-сайта, если он у вас есть.

% описание

Раздел % description файла спецификации содержит описание пакета rpm. Он может быть очень коротким или содержать много строк информации. Наш раздел % description довольно лаконичен.

 

% description
Сборник служебных скриптов для тестирования создания RPM.

% подготовка

Раздел % prepare - это первый сценарий, который выполняется в процессе сборки.Этот сценарий не выполняется во время установки пакета.

Этот сценарий представляет собой просто сценарий оболочки Bash. Он подготавливает каталог сборки, создавая каталоги, используемые для сборки по мере необходимости, и копирует соответствующие файлы в соответствующие каталоги. Это будет включать в себя исходники, необходимые для полной компиляции как части сборки.

Каталог $ RPM_BUILD_ROOT представляет собой корневой каталог установленной системы. Каталоги, созданные в каталоге $ RPM_BUILD_ROOT, представляют собой полностью определенные пути, такие как / user / local / share / utils, / usr / local / bin и т. Д. В действующей файловой системе.

В случае с нашим пакетом у нас нет исходных кодов для предварительной компиляции, так как все наши программы являются сценариями Bash. Поэтому мы просто копируем эти сценарии и другие файлы в те каталоги, которые им принадлежат в установленной системе.

% преп. 
########################################### #################################
# Создайте дерево сборки и скопируйте файлы из каталогов разработки #
# в дерево сборки. #
############################################# ##############################
echo "BUILDROOT = $ RPM_BUILD_ROOT"
mkdir -p $ RPM_BUILD_ROOT / usr / local / bin /
mkdir -p $ RPM_BUILD_ROOT / usr / local / share / utils

cp / home / student / development / utils / scripts / * $ RPM_BUILD_ROOT / usr / local / bin
cp / home / student / development / utils / license / * $ RPM_BUILD_ROOT / usr / local / share / utils
cp / home / student / development / utils / spec / * $ RPM_BUILD_ROOT / usr / local / share / utils

exit

Обратите внимание, что оператор exit в конце этого раздела является обязательным.

% файлы

В этом разделе файла спецификации определяются устанавливаемые файлы и их расположение в дереве каталогов. Он также определяет атрибуты файла, а также владельца и владельца группы для каждого устанавливаемого файла. Разрешения и права собственности на файлы не являются обязательными, но я рекомендую указать их явно, чтобы исключить любую вероятность того, что эти атрибуты будут неправильными или неоднозначными при установке. Каталоги создаются по мере необходимости во время установки, если они еще не существуют.

 

% файлов
% attr (0744, root, root) / usr / local / bin / *
% attr (0644, root, root) / usr / local / share / utils / *

% до

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

% пост

Этот раздел файла спецификации - еще один сценарий Bash. Этот запускается после установки файлов.В этом разделе может быть все, что вам нужно или что вы хотите, включая создание файлов, выполнение системных команд и перезапуск служб для их повторной инициализации после внесения изменений в конфигурацию. Сценарий % post для нашего пакета rpm выполняет некоторые из этих задач.

 

% после
########################################## ##################################
# Настройка скриптов MOTD #
####### ############################################### ######################
cd / etc
# Сохраните старый MOTD, если он существует
if [-e motd]
then
cp motd motd.orig
fi
# Если еще нет, добавьте ссылку на create_motd в cron.daily
cd /etc/cron.daily
if [! -e create_motd]
, затем
ln -s / usr / local / bin / create_motd
fi
# первое создание MOTD
/ usr / local / bin / mymotd> / etc / motd

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

% постун

В этом разделе содержится сценарий, который запускается после удаления пакета rpm. Использование rpm или DNF для удаления пакета удаляет все файлы, перечисленные в разделе % files , но не удаляет файлы или ссылки, созданные в разделе % post , поэтому нам нужно обработать это в этом разделе.

Этот сценарий обычно состоит из задач очистки, которые невозможно выполнить простым стиранием файлов, ранее установленных rpm. В случае с нашим пакетом он включает в себя удаление ссылки, созданной сценарием % post , и восстановление сохраненного оригинала файла motd.

% postun 
# удалить установленные файлы и ссылки
rm /etc/cron.daily/create_motd

# Восстановить исходный MOTD, если он был скопирован
if [-e /etc/motd.orig]
then
mv -f / и т.д / мотд.ориг / и т. д. / motd
fi

% чистых

Этот сценарий Bash выполняет очистку после процесса сборки rpm. Две строки в разделе % clean ниже удаляют каталоги сборки, созданные командой rpm-build . Во многих случаях также может потребоваться дополнительная очистка.

 

% clean
rm -rf $ RPM_BUILD_ROOT / usr / local / bin
rm -rf $ RPM_BUILD_ROOT / usr / local / share / utils

% изменений

Этот дополнительный текстовый раздел содержит список изменений в rpm и содержащихся в нем файлов.Последние изменения записываются в верхней части этого раздела.

 

% changelog
* среда, 29 августа 2018 Ваше имя
- Исходный пакет включает несколько полезных скриптов. это
в первую очередь предназначено для иллюстрации процесса
построения RPM.

Замените данные в строке заголовка своим именем и адресом электронной почты.

Создание об / мин

Файл спецификации должен находиться в каталоге SPECS дерева rpmbuild.Я считаю, что проще всего создать ссылку на фактический файл спецификации в этом каталоге, чтобы его можно было редактировать в каталоге разработки, и нет необходимости копировать его в каталог SPECS. Сделайте каталог SPECS своим pwd, затем создайте ссылку.

 

cd ~ / rpmbuild / SPECS /
ln -s ~ / development / spec / utils.spec

Выполните следующую команду, чтобы построить rpm. Если ошибок нет, на создание числа оборотов в минуту потребуется лишь время.

  rpmbuild --target noarch -bb utils.спецификации  

Зайдите в каталог ~ / rpmbuild / RPMS / noarch, чтобы убедиться, что там существует новый rpm.

 

[student @ testvm1 ~] $ cd rpmbuild / RPMS / noarch /
[student @ testvm1 noarch] $ ll
всего 24
-rw-rw-r--. 1 студент студент 24364 30 августа 10:00 utils-1.0.0-1.noarch.rpm
[student @ testvm1 noarch] $

Проверка оборотов

От имени пользователя root установите rpm-пакет, чтобы убедиться, что он установлен правильно и что файлы установлены в правильные каталоги.Точное имя rpm будет зависеть от значений, которые вы использовали для тегов в разделе Preamble, но если вы использовали те, что в примере, имя rpm будет таким, как показано в примере команды ниже:

 

[root @ testvm1 ~] # cd / home / student / rpmbuild / RPMS / noarch /
[root @ testvm1 noarch] # ll
всего 24
-rw-rw-r--. 1 студент студент 24364 30 августа 10:00 utils-1.0.0-1.noarch.rpm
[root @ testvm1 noarch] # rpm -ivh utils-1.0.0-1.noarch.rpm
Подготовка ... ### ############################# [100%]
Обновление / установка...
1: utils-1.0.0-1 ################################ [100%]

Проверьте / usr / local / bin, чтобы убедиться в наличии новых файлов. Вы также должны убедиться, что ссылка create_motd в /etc/cron.daily была создана.

Используйте команду rpm -q --changelog utils для просмотра журнала изменений. Просмотрите файлы, установленные пакетом, с помощью команды rpm -ql utils (это строчная L в ql .)

 [root @ testvm1 noarch] # rpm -q --changelog utils 
* среда, 29 августа 2018 г. Ваше имя
- В исходный пакет входит несколько полезных скриптов. это
в первую очередь предназначен для иллюстрации процесса
построение RPM.

[root @ testvm1 noarch] # rpm -ql utils
/ usr / local / bin / create_motd
/ usr / local / bin / die
/ usr / local / bin / mymotd
/ usr / local / bin / sysdata
/ usr / local / share / utils / Copyright.and.GPL.Notice.txt
/usr/local/share/utils/GPL_LICENSE.txt
/usr/local/share/utils/utils.spec
[root @ testvm1 noarch] #

Удалите упаковку.

  об / мин -e утилит  

Экспериментируя

Теперь вы измените файл спецификации, чтобы он требовал несуществующего пакета. Это будет имитировать зависимость, которую невозможно удовлетворить. Добавьте следующую строку непосредственно под существующей строкой Requires:

  Требуется: badrequire  

Соберите пакет и попытайтесь установить его. Какое сообщение отображается?

Мы использовали команду rpm для установки и удаления пакета utils .Попробуйте установить пакет с помощью yum или DNF. Вы должны находиться в том же каталоге, что и пакет, или указать полный путь к пакету, чтобы это работало.

Заключение

Есть много тегов и пара разделов, которые мы не рассмотрели в этом обзоре основ создания пакета rpm. Перечисленные ниже ресурсы могут предоставить дополнительную информацию. Собрать пакеты rpm не сложно; вам просто нужна правильная информация. Надеюсь, это поможет вам - мне потребовались месяцы, чтобы разобраться во всем самостоятельно.

Мы не рассматривали сборку из исходного кода, но если вы разработчик, это должно быть простым шагом с этого момента.

Создание пакетов rpm - еще один хороший способ быть ленивым системным администратором и сэкономить время и силы. Он предоставляет простой способ распространения и установки скриптов и других файлов, которые нам, системным администраторам, необходимо установить на многих хостах.

ресурса

  • Эдвард С. Бейли, Максимальная частота вращения , Sams Publishing, 2000, ISBN 0-672-31105-4

  • Эдвард К.Baily, Максимальные обороты , обновленная онлайн-версия

  • RPM Documentation : На этой веб-странице перечислена большая часть доступной онлайн-документации по rpm. Он включает в себя множество ссылок на другие веб-сайты и информацию о rpm.

.

dockerfile - как установить локальный rpm-файл при создании экземпляра докера?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

    .

    Смотрите также