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

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

Установка программ в Linux

В операционных системах(ОС) UNIX и Linux под установкой программного обеспечения (ПО) следует понимать процедуру распространения пакетов. В данном случае пакет — это универсальный контейнер, содержащий не только само ПО, но также и соответствующие конфигурационные файлы, информацию о зависимостях распространяемого ПО, методах его распространения в системе и способы задания конфигураций. В отличие от неструктурированных архивных файлов (.tar.gz), пакеты обладают строго организованной структурой, взаимодействие с которой подчиняется определённым методам, изначально заложенным в Системы Управления Пакетами(СУП). Благодаря такой схеме, очень удобно распространять (устанавливать) не только ПО, но и административную информацию (конфигурацию), причём безболезненно, поскольку специализированные СУП «знают», как устроена структура системы и не переписывают конфигурацию, ранее заданную пользователем. В случае конфликтов предлагается просто сделать резервные копии существующих файлов конфигурации или конкретный вариант для их модификации по согласованию с пользователем или администратором системы. Очень важно, то, что СУП самостоятельно отслеживают и распознают зависимости пакетов, используя также для этого соответствующую информацию из самих приложений. В составе приложений также могут быть и целые служебные сценарии для их дополнительной обработки и настройки. Благодаря этому установка (или удаление) происходит как единая транзакция, полностью освобождая пользователей от выполнения рутины по поиску и установке зависимостей, распаковке файлов по требуемым каталогам и т. д.

Управление пакетами в Linux

Для операционной системы (ОС) Linux существует два основных типа пакетов: RPM (Red Hat Package Manager) и Debian. Первый, как можно видеть, изначально появился в дистрибутивах семейства Red Hat, но позже стал применяться и в других системах (SUSE, ROSA), второй был разработан для одноимённого дистрибутива и позже унаследован семейством ОС Ubuntu, созданных изначально на основе Debian. Средства упаковки пакетов RPM и Debian реализуются соответствующими СУП. Объединяет их то, что эти системы включают в себя два функциональных уровня — первый обеспечивает опрос требуемых пакетов, а также непосредственно их установку/обновление и удаление. На этом уровне используются команды rpm – для RPM-пакетов, и dpkg – для Debian (.deb). Второй уровень выполняет поиск программ в удалённых хранилищах, анализирует зависимости, обеспечивает корректное обновление и модернизацию самих программ и конфигурации, поскольку располагает информацией о структуре системы. Основными системами управления пакетами являются RPM и APT (Advanced Package Tool), которая изначально создавалась для управления приложениями Debian, но позже была доработана для работы в RPM-ориентированных ОС.

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

Для управления пакетами формата RPM в Linux используется соответствующая команда — rpm. Она производит установку, удаление, а также опрос состояния программ. Требуемый функционал этой команды определяется специальными опциями. Например, самыми распространёнными являются: -i – установка, -e – удаление, -U – обновление и -q – запрос. Если с первыми тремя опциями всё довольно просто, то последняя, т. е. -q очень часто используется совместно с другими опциями, т. е. она служит для включения опций конкретных запросов, например, команда:

выводит список всех программ, установленных в ОС. Для установки приложения нужно выполнить команду следующего вида:

В результате будет произведена установка веб-сервера «Апач», т. к. это в данном случае предписывает опция -i. Сам же файл программы должен быть предварительно загружен или иным способом помещён в файловую систему. Бывает и так, что при работе с приложениями возникают сложности — чаще всего с зависимостями, например:

Этот вывод означает, что при попытке обновить приложение openSSH будут затронуты другие, зависящие от него программы. Это помогает сориентироваться, в том, что ещё нужно сделать для выполнения успешного обновления приложения openSSH, т. е. удовлетворить зависимости. Следует обратить особое внимание на то, что опция —force, для принудительной установки/обновления здесь не помощник — запросто можно сломать приложение. Для того, чтобы заранее узнать, какие зависимости имеются у требуемого приложения, нужно выполнить команду следующего вида:

Читать еще:  Установка программ в manjaro

Как видно, опция включения запроса -q предписывает выполнить сам запрос с требованием —whatrequires для фразы «openssh», т. е. «определить зависимости приложения openssh», и далее следует логичный вывод. Используя информацию из этого вывода можно скачать файлы нужных зависимостей и установить или обновить их последовательно, используя соответствующие ключи. Для удобства достаточно эти зависимости указать списком:

Для проверки результата нужно воспользоваться опцией запроса:

Этот вывод означает, что в ОС корректно установлен (в результате предыдущих действий) openSSH. Нужно заметить, что для команды необязательно указывать точное название программы и версий — она правильно распознаёт их и при сокращённой записи их наименований.

Установка программ в Debian

Аналогом команды rpm для работы с Debian-пакетами является команда dpkg. Режимы её работы указываются аналогично команде rpm – с помощью соответствующих опций. Опция -l позволяет получить список установленных в ОС программ, -i – установить или обновить, -r – произвести удаление. Основным отличием команды dpkg от rpm является то, что она позволяет использовать утилиту grep для опрашивания/поиска программ, а также отображает в выводе список выполняемых действий. Например:

Как можно видеть, команда отобразила список установленных приложений (в данном случае в ОС всего один) текстового редактора nano. Для установки/обновления того же nano следует выполнить команду через терминал:

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

Системы управления пакетами (СУП)

Для облегчения поиска, загрузки программ, отслеживания зависимостей, а также для автоматизации обновлений приложений существуют соответствующие системы управления пакетами (СУП). Самыми распространёнными являются APT и yum. К слову сказать, yum – это ничто иное как та же самая APT, доработанная для работы с rpm-пакетами. Для хранения приложений существуют специальные хранилища — репозитории, в которых производится поиск и из которых загружаются для установки новые приложений. Репозитории организуют и поддерживают разработчики дистрибутивов, но при желании можно создать собственный, локальный по отношению к конкретной системе репозиторий. Поскольку система управления пакетами APT является универсальной, хорошо документированной (а ещё и бесплатной), то разумно рассмотреть работу подобных систем на примере APT. Эта СУП реализована в виде утилиты apt-get, с помощью которой удобно управлять всей системой. Важное значение для APT (как и для других подобных СУП) является файл с описанием источников хранилищ, т. е. репозиториев. Для APT это файл /etc/apt/sources.list. Если этот файл настроен и содержит верную информацию об источниках, то нужно перед каждыми обновлениями или установками приложений выполнять команду:

или в CentOS Red Hat

для обновления информации о пакетах. После чего можно проводить установку/обновление:

Эта команда автоматически найдет приложение (если он верно указан) в репозитории, проанализирует его зависимости, загрузит их и установит сам пакет и все требуемые, с учётом иерархии зависимости.

Например для установки редактора mc введите команду

или в RedHat CentOS

произведёт удаление программы из ОС, причём зависимости могут быть оставлены. Для очистки ОС от всех неиспользуемых зависимостей следует выполнять последовательность следующих команд:

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

Установка rpm и deb пакетов в неродные ОС?

Можно ли установить rpm пакет для Fedora в OpenSUSE и в PCLinuxOS? Можно ли установить deb пакет для Ubuntu в Debian? Не рухнет ли система и будет ли работать установленное таким способом ПО? PS Если нужно конкретно, что собираюсь ставить, то несвободную прогу DraftSight. Зачем мне это надо — переход с Ubuntu/Fedora на более стабильную ОСь.

Можно даже rpm в debian установить. Для этого есть пакет alien, если он ещё не заброшен. Сам никогда не пробовал, не было необходимости.

Читать еще:  Установка водяного охлаждения на компьютер

Пакеты из ubuntu в debian часто без проблем, если собирали не в canonical и не дописали лишних неразрешимых зависимостей.

Нельзя. Потому что МНОГО возни с зависимостями, проще пересобрать. Из коробки работать не будет.

В контейнер запихни с нужной осью.

Скорее всего на Debian и пересяду.

Не рухнет. Особенно когда речь идёт о стороннем ПО, которое никак не пересекается с ОС.

А вот саму возможность установки и работоспособность никто не гарантирует. Поэтому контейнеры рулят.

Обратись в службу поддержки купленной тобой «несвободной проги DraftSight».

установка пакета = запуск баш скрипта, которым является спек пакета, с правами пользователя root

Соответственно, все зависит от автора пакета и его криворукости. Авторы пакета nvidia-дров когда-то умудрились в спеке пакета вписать rm -rf, например.

Если же в спеке не выполняется ничего кроме выкладки файлов куда-нибудь в /opt — то проблем соответственно будет меньше.

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

deb пакет для Ubuntu в Debian

Обычно можно. Но могут понадобиться либы из убунтовских реп. Можно получить dependency hell.

Как уже говорили, обычно при установке дебиан-пакетов, собранных для других ОС, проблем нет или они незначительные, хотя лучше, конечно, по возможности использовать родные пакеты.

Однако если при установке такого пакета всё-таки появятся неудовлетворённые зависимости, то обычно это связано с разными названиями пакетов в Дебиан, Убунту и др деб-ориентированных дистрах. В этом случае надо посмотреть, как называются те же пакеты в родном дистре (может просто версии другие) и прописать их в файлах control и rules (подробнее см. https://www.debian.org/doc/manuals/maint-guide/ ). Хотя, конечно, иногда могут возникнуть и более серьёзные проблемы. А вот принудительно устанавливать пакет, игнорируя зависимости, лучше не надо — можно поломать систему.

С rpm-пакетами дела обстоят хуже. Там помимо обычных (внешних) зависимостей бывают ещё и внутренние. Внутренние зависимости — это разные фичи библиотеки rpmlib, кои разнятся от одного дистрибутива к другому и от одной версии одного и того же дистрибутива к другой. Поэтому бакпортировать или портировать из другого дистра rpm-пакет зачастую намного сложнее. Часто проще создать новый.

Что касается alien для преобразования rpm в deb. Сам я его не юзал, но читал, что штука эта довольно-таки бесполезная. Преобразовать он преобразует, а вот будет ли новый пакет рабочим, большой вопрос. Скорее всего его придётся серьёзно допиливать, что не удивительно: если даже разные rpm-менеджеры несовместимы между собой, то чего можно требовать от alien и dpkg? А сделали эту штуку просто для того, чтоб формально соответствовать стандарту, каковым официально объявлен формат rpm. Только на самом деле никакого стандарта нет, т. к. кроме расширения ничего общего между rpm’ами из разных дистров нет.

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

собираюсь ставить, то несвободную прогу DraftSight

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

Зачем мне это надо — переход с Ubuntu/Fedora на более стабильную ОСь.

Из того, что я видел, самое стабильное — это Debian. Только использовать надо исключительно ветку stable (сейчас это Jessie), а не testing и не experimental. И не увлекаться бакпортами без особой нужды.

Слушай, ну вот конкретно про DraftSight скажу, что там всё ставится в /opt . Там есть кривости в оригинальном пакете касательно mime-типов, значков и rpath у некоторых бинарей, а также дофига сломанных симлинков. Я пытаюсь это дело сколь-чего выправить у нас в репозитории, только вот пока руки не доходят опакетить новую версию 2017. Займусь в околоновогоднее время, а то сейчас приходится вкалывать по 12 — 16 часов в день.

Читать еще:  Установка программ на виртуальную машину

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

Здравствуйте ! На блоге О ТОМ И О СЁМ можно просто отдохнуть,почитать статьи о блогах и многое другое Перейти на Домашнююю страницу

суббота, 11 октября 2014 г.

Установка программ в Mageia Linux (линукс Магейа ) с помощью rpm -пакетов .Йёжа Йежов

Сегодня я продолжу рассказ про установку программ в в Mageia Linux (линукс Магейа ) .Я уже рассматривал два способа установки и удаления программ (через центр установки и через консоль) см чуть ниже

  • Первый -это через графический интерфейс из центра установки прог
  • В торой через консоль .(см Установка и удаление программ в Mageia Linux (линукс Магейа ) через консоль . )
  • Третий пакет rpm для дистрибутива Магейа
  • Четвёртый -это бинарный пакет

В этой же поговорим про установку при помощи пакетов rpm .
Увы, и ах , в дистрибутивах линукс не всё гладко с установкой из пакетов .
Почему ? Не знаю что и ответить .
Начнём с того , что не рекомендуется ставить проги не из родных репозиториев .Поэтому вначале подключите репозиториии (склады прог в инете )
См Репозитории дистрибутива Линукс Магейа (Mageia)

Если же найти не удалось , то вариантов больше нет , ставим rpm -пакет .

Rpm -пакеты используют следующие дистрибутивы :

Достоинство ,в отличие от установки через репозитории в том ,что можно установить программу без наличия интернета , предварительно её скачав .
То есть либо у нас нет интернета , либо этой программы нет в репозиториях .Тогда-то нам и придёт на помощь данная установка из rpm -пакета
По сути -это самораспаковывающийся пакет ,вроде EXE-шного файла в Винде .
Но в отличии от виндового файла установки , к сожалению , у каждого дистрибутива может быть свой rpm -пакет .И далеко не всегда пакет подойдёт от одного дистрибутива к другому .(Я уж не говорю о том , что есть ещё deb -пакеты у таких дистрибутивов , как Дебьян , Убанту , Минт)
В винде без разницы :взяли , нажали скачанный файл и пошла установка , в Линуксах же ещё надо найти пакет подходящий для данного дистрибутива . Иногда бывает , что попадаются универсальные установщики , но увы далеко не всегда .
Поэтому приходится попотеть в поисках .
Во-первых зайдите на официальные сайты программ . Вполне возможно там найдёте нужный rpm -пакет .
Для этого нужно знать дистрибутив (в данном случае у меня Магея4 (Mageia 4)) , а также разрядность -32 бит (86 ) либо 64 бит .Ищем нужный установщик в виде rpm -пакета . Если нет пакета для конкретного дистрибутива , пытаемся взять rpm пакет какой есть , но очнь велика вероятность , что он откажется устанавливаться !
Кроме официальных сайтов программ , рпм -пакеты можно поискать допустим здесь :
http://pkgs.org
или по дорогам инета .
Итак , мы всё же нашли искомое .
Скачиваем .Чаще по умолчанию качает в папку Загрузки
Теперь кликаем правой кнопкой по файлу rpm .

Выбираем открыть с помощью Установка программ , либо Инсталлятор программ .Выползет табличка с предложением Установить .Кликаем по ней левой кнопкой , будет предложено ввести пароль администратора (root-рут)

Дальше следуем указаниям .Если повезёт , программа установится . Искать её надо в Меню (пуск ), которое в левом нижнем углу, по умолчанию, либо последние установленные ,либо по разделам , допустим браузер нужно искать в разделе Интернет .

Удалить установленную прогу можно будет через центр установки , сняв галочку и нажав применить .
см.
Установка программ в Mageia Linux (линукс Магейа ) через центр установки программ
Худо -бедно , но рпм -пакет мы установили

Ссылка на основную публикацию
Adblock
detector