Linux rpm не работает

Обновлено: 03.07.2024

Репутация: нет
Всего: нет

Debian 2.30.2
Был такой вопрос в 2010 году, но ответа в нём не нашёл.

Инсталлирую библиотеку SDL-1.2.15-1.i386.rpm.
Пробую
… rpm –i SDL-1.2.15-1.i386.rpm
rpm: нет такой команды
Пробую
… sudo rpm –i SDL-1.2.15-1.i386.rpm
rpm: нет такой команды

На каком диске найти rpm, и как установить?

Репутация: 1
Всего: 12

Я бы рекомендовал сконвертировать *rpm в *deb с помощью alien.

Добавлено через 11 минут и 45 секунд

не заметил сразу возможно там это не сработает.

Репутация: 1
Всего: 12

Репутация: нет
Всего: нет

Спасибо, скачал, попробую.

Это потому, что apt-get не понимает формат .rpm?

Репутация: 13
Всего: 109

OlegIT, у меня вот какой вопрос.

Будем считать, что есть две ветки linux: debian-подобные дистры (*.deb пакеты) и redhat-подобные системы (*.rpm пакеты).

Обязательно ли для debian использовать не родные пакеты?
Неужели в репах нет нужных тебе пакетов?
Может быть тогда из сырцов собрать?

Мне это кажется похожим на то, как одевают корове седло.

user posted image

Программистами не рождаются, - это родовая травма.

Репутация: нет
Всего: нет

Опыта в Linux у меня мало. Я считал, что любые версии Linux поддерживают любые пакеты созданные для этой ОС. Тем более, что rpm у меня, похоже, стоит (только почему не работает?), установка rpm по рекомендации kapbepucm дала такой результат

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

Репутация: 113
Всего: 317

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

debian система имеет очень обширный диапазон софта, но самое главное, что все они "играют в одну игру, вместе".
Ты можешь добавлять и удалять пакеты, не волнуясь, что apt запутается. Потому что граф зависимостей четко строится.

Когда тебе в ней возможно понадобится устанавливать "инородные" пакеты:
1) если у тебя есть конкретная причина использовать ту специфическую версию, из-за совместимости версий с другими компонентами.
2) если бинарный пакет существует только в формате RPM, а собрать свой .DEB нет возможности (напр. по причине копирайтов и т.д.)

у установки стороннего софта есть огромный минус:
тебе придется его поддерживать отдельно от системы. фактически этот пакет - "замороженный" пакет.

Когда система цельная, то и ее поддержка элементарна: apt-get update && apt-get upgrade и всё.
Когда ты начинаешь "играться" и замораживать пакеты, то тебе нужно заморозить и их зависимости.
Напр. какой-то пакет зависит от libc время от времени в Дебиан его тоже обновляют. и тытынц, и не работает твой замороженный пакет.

  • 1. стандартные репозитории
  • 2. репозитории подтянутых версий (backports)
  • 3. сторонние репозитории
  • 4. собственные пакеты (т.е. собирается свой .deb) в своих репозиториях
  • 5. собственные пакеты без репозитория
  • 6. сторонние не .deb пакеты

какой пакет ты установил из .rpm ?

Добавлено через 3 минуты и 59 секунд

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

Кстати, сегодня решение: идти с системой основанной на Debian или нa RedHat обычно решается проверкой оборудования.
есть некоторые типы оборудования, которые поддерживают только RHEL-совместимые системы. т.е. Дебиан идет лесом.
обычно это устаревшее оборудование, потому что сегодня большинство оборудования не требует RHEL совместимости.

Репутация: нет
Всего: нет

Репутация: нет
Всего: нет

Сохранил исходники SDL на компьютере, запустил ./configure; make; make install. Получил два файла библиотеки libSDL.a и libSDLmain.a. Но там отсутствуют функции работы с потоками, линковщик не видит все эти функции. Что не так делаю?

По последнему замечанию bilbobagginz

Не понял почему? У меня он работает на не очень свежем ноуте нормально. Это у меня опыта мало, поэтому не всё сразу получается. Или мне с оборудованием повезло?

Репутация: нет
Всего: нет

Спасибо всем, всё собралось, работает.
Но вопросы остались.

Репутация: 113
Всего: 317

  • SDL 1.2.15 is a minor bug fix release.
  • SDL 1.2.14 is a significant bug fix release and a recommended update.

Репутация: нет
Всего: нет

Не похоже что бы у меня была по умолчанию установлена SDL. Собираю библиотеку ffmpeg, и когда я запускал конфигурацию этой библиотеки, генерация исполняемого файла, использующего SDL, была закрыта, а насильное её открытие вело к ошибкам линковщика, отсутствие соответствующих функций. Когда я собрал SDL из исходников и проинсталлировал её, конфигуратор открыл генерацию того самого исполняемого файла и всё собралось. Мне конечно сейчас не важно, какое там последнее число в версии SDL, не думаю, что отличие глобальные. На каком диске находится библиотека SDL?
Но я поторопился, программа то собралась, а работать не желает, при попытке запустить пишет: «Could not initialize SDL - Unable to open a console terminal». Поиск в инете особо ни чего не прояснил. Как избавится от этой ошибка?

Репутация: 1
Всего: 12

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

Репутация: 1
Всего: 12

Репутация: нет
Всего: нет

После запуска ./test.c получаю:

No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 6.0.2 (squeeze)
Release: 6.0.2
Codename: squeeze

Цитата

Если всётаки хочется ставить *rpm рекомендую

Да я уже научился из исходников ставить. Но рекомендацию сохраню, когда-нибудь пригодится.

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.

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

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).

В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.

[ Время генерации скрипта: 0.1460 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Установка программного обеспечения - очень важный момент в работе с операционной системой. Сейчас есть две самые распространенные системы установки программного обеспечения. Это используемая в Debian и всех ее производных, в том числе и в Ubuntu - deb, а также разработанная в RedHat и используемая в Red Hat и всех основанных на ней дистрибутивов - rpm.

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

Основы

С точки зрения пользователя, эти два варианта установки пакетов не имеют очень больших различий. Оба файла и Deb и Rpm - это всего лишь архивы, созданные с помощью утилиты ar. Эти архивы включают в себя файлы программ, исполняемые файлы, библиотеки, или файлы конфигурации. Кроме этого, в каждый пакет входят метаданные системы управления пакетами, именно этим и отличаются rpm и deb. Собственно файлы пакетов отличаются в основном только этим, но еще есть система управления пакетами. А там уже различий в базе данных намного больше.

Давайте рассмотрим каждую систему управления пакетами подробнее, а затем сравним что же в них особенного, и что лучше rpm или deb.

RPM (Red Hat Package Manager)

Как мы уже говорили, RPM - это менеджер пакетов, используемый в операционных системах, основанных на Red Hat, это вся ветка дистрибутивов: Fedora, OpenSUSE, Red Hat, CentOS и т д. Изначально этот пакетный менеджер был разработан в компании Red Hat еще в 1997 году и только для их дистрибутива, но затем он распространился и в другие операционные системы. Вместо обычного сжатия здесь используется сжатие gzip по алгоритму cpio и особый формат файла архива, его мы рассмотрим ниже. Здесь в сравнении rpm или deb, первый кажется лучше, но не все так просто, если в системе нет нужных утилит, то вы не сможете распаковать такой пакет. Кроме cpio могут использоваться и другие алгоритмы сжатия, например, lzma или xz. В последнее время все программное обеспечение подписывается ключами для удостоверения подлинности, вот и RPM поддерживает подпись с помощью GPG и MD5. Технология PatchRPMs или DeltaRPMs позволяет грамотно обновлять RPM пакеты без больших затрат трафика.

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

Для работы с RPM могут использоваться несколько различных пакетных менеджеров, это универсальная утилита rpm, пакетный менеджер zypper в OpenSUSE, dnf в Fedora, urpmi в Mageia, yum - во многих дистрибутивах, основанных на Fedora.

Рассмотрим основные особенности RPM:

  • Автоматическое разрешение зависимостей в большинстве случаев корректно
  • Файл архива имеет специальный формат
  • Не поддерживается реализация зависимостей с выбором завистимости от пакет1 или пакет2.
  • Не поддерживаются рекомендованные пакеты
  • Позволяет настроить зависимость от файла, а не пакета
  • Все данные об установленных пакетах хранятся в базе данных поэтому при надобности можно проверить контрольные суммы
  • Поддерживаются сценарии как до, так и после установки программ
  • Поддерживается формат SRPM, который содержит в себе исходники программы все патчи с инструкции по сборке, позволяющие собрать программу из исходников на локальной машине.
  • Отличная поддержка Multilib пакетов

Deb (Debian Package Manager)

Файлы deb - это архивы, созданные с помощью утилиты ar. Они могут быть сжаты с помощью GZIP, Bzip2, lzma, или XZ. Чаще всего для управления пакетами deb в терминале используется утилита dpkg, Но могут и другие, например, gdebi, apt, aptitude и т д. Deb пакеты используются для установки программного обеспечения во многих операционных системах, основанных на Debian, это ветка Ubuntu со многими основанными на ней дистрибутивами и так далее. Поскольку Ubuntu в последнее время набирает популярность среди новичков, то пакетов для нее становится больше.

Из особенностей системы управления пакетами DEB можно назвать использование приоритетов для классификации пакетов по важности, а также поддержку рекомендованных пакетов. Это пакеты, которые не находятся в зависимостях программы, но желательны для установки вместе с ней. Рекомендованные утилиты устанавливаются автоматически в таком инструменте, как apt. Чтобы сравнить rpm vs deb рассмотрим особенности deb:

  • Файл пакета - обычный архив
  • Поддержка приоритетов для пакетов различной важности
  • Поддержка рекомендованных пакетов
  • Не поддерживаются файловые зависимости
  • Не поддерживается технология Delta для экономии трафика

Аналоги команд

Давайте рассмотрим аналоги команд для выполнения одних и тех же действий в этих системах управления пакетами с помощью утилит rpm и dpkg:

Репутация: нет
Всего: -1

Репутация: 14
Всего: 39

Что за дистрибутив? Подозреваю, что не rpm-based, или ставить пытаетесь не от рута (root, суперпользователь).

Репутация: нет
Всего: -1

Спасибо за ответ! Ставлю из под рута, машину настраивал не я так что незнаю. Не подскажете, как я могу глянуть "rpm-based" или нет?

Репутация: 14
Всего: 39

Название дистрибутива можно попробовать узнать так:

Репутация: 10
Всего: 49

Во-первых - какой все-таки дистрибутив? Напишите название. Если не знаете - напишите вывод консольной команды cat /etc/issue.

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

Репутация: 14
Всего: 39

"rpm-based" - в смысле, основан на пакетном менеджере rpm. Еще есть deb-ы, ebuild-ы и другие.

Репутация: нет
Всего: -1

cat /etc/*release* - Gentoo Base System release 1.12.11.1

Репутация: 14
Всего: 39

chiffa, поздравляю новоиспеченного гентушника. Если уверены, что поставить нужно непременно эту rpm-ку и никак иначе, то:

Также обычный софт можно найти командами:

В первом случае - по названию программы, во втором - по описанию.

Репутация: нет
Всего: -1

Репутация: 10
Всего: 49


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

Репутация: 14
Всего: 39

Фантом, это была ирония:). Да, дистрибутив лучше сменить конечно, но как я понял, линукс достался в наследство, и не факт, что его можно трогать. Гента там кстати старая.

Репутация: нет
Всего: -1

именно в наследство и менять низя, была бы моя воля я бы поставил Ред Хат, как то он по дружелюбнее.

Репутация: 3
Всего: 16

Репутация: 1
Всего: 4


А по моему наоборот, заставит разобраться
Поймет основы, хотя это будет не совсем просто

Репутация: 14
Всего: 39

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

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.

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

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).

В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.

[ Время генерации скрипта: 0.1528 ] [ Использовано запросов: 21 ] [ GZIP включён ]


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

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

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

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

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

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

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

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

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»).

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

Примечание:[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 снова. Затем перейдите к следующему шагу.

Читайте также: