Я построил два пакета RPM
proj1-1.0-1.x86_64.rpm
libtest1-1.0-1.x86_64.rpm
proj1
зависит от наличия файла libtest1.so
и правильно отражается в пакетах RPM, как показано здесь:
user@my-pc:~$ rpm -qp --requires proj1-1.0-1.x86_64.rpm
libtest1.so()(64bit)
user@my-pc:~$ rpm -qp --provides libtest1-1.0-1.x86_64.rpm
libtest1.so()(64bit)
Установка proj1
не выполняется из-за отсутствия зависимости.
user@my-pc:~$ rpm -ivh proj1-1.0-1.x86_64.rpm
error: Failed dependencies:
libtest1.so()(64bit) is needed by proj1-1.0-1.x86_64.rpm
Как я могу убедиться, что libtest1-1.0-1.x86_64.rpm
устанавливается автоматически во время установки proj1-1.0-1.x86_64.rpm
?
Я попробовал --aid
вариант с, rpm -i
как описано здесь, но он не работал для меня.
Есть ли другой путь?
Спасибо за любую помощь.
yum --nogpgcheck localinstall packagename.arch.rpm
.yum localinstall
это то же самое, что и ответ, уже опубликованный здесь , с уже обсужденными недостатками для ситуаций, когда зависимости не находятся в репозиториях yum (см. Этот метод не будет работать, если [...] не будет частью).sudo yum --disablerepo=* --enablerepo=local install packagename.arch.rpm
к интернету, чтобы убедиться, чтоyum
он не просматривает другие репозитории.Предоставленная ссылка @gertvdijk показывает быстрый способ достижения желаемых результатов без настройки локального репозитория:
Просто измените
packagename.arch.rpm
имя файла RPM, которое вы хотите установить.Редактировать Просто пояснение, это автоматически установит все зависимости, которые уже доступны через системные репозитории YUM.
Если у вас есть зависимости, удовлетворяемые другими RPM, которых нет в репозиториях системы, этот метод не будет работать, если каждый RPM также не указан вместе с
packagename.arch.rpm
командной строкой.источник
libtest1-1.0-1.x86_64.rpm
оно не находится в каком-либо хранилище, или оба пакета указаны в командной строке, как "rpm -i
". Я только что проверил это наyum
3.4.3 (Fedora 18). Здесь транскрипт показывает, что он идет вupdates
репозиторий для зависимостей, даже когда файлы находятся там же.rpm -i
», поэтому использование неyum
дает вам никаких дополнительных преимуществ.Для пользователей dnf просто использовать
dnf install *.rpm
,localinstall
больше не нужно.источник
mysql-workbench
сrpm -ivh
. в итоге закончилась этим постом. DNF сделал свое дело.Для меня работал только с
И автоматически запрашивает разрешение на загрузку зависимостей. Ниже примера я использую fedora 22
источник
Я нашел более простое решение. Если у вас есть все RPM в одном каталоге, все, что вам нужно сделать, это
rpm
кажется, выяснить правильный порядок их установки и установки RPM.источник
Ответ Мэтью вызвал много эмоций из-за того, что ему все еще не хватает мелких деталей. Общая команда будет:
package_file_name
Выше , может включать в себя локальный абсолютный или относительный путь, или быть URL (возможно , даже URI).Yum будет искать зависимости среди всех файлов пакетов, указанных в командной строке, и, если он не сможет найти зависимости, он также будет использовать любые настроенные и включенные репозитории yum.
Ни текущий рабочий каталог, ни пути к любому из них
package_file_name
не будут найдены, за исключением случаев, когда любой из этих каталогов был ранее настроен как включенныйyum
репозиторий.Так что в случае ОП
yum
команда:будет делать, как будет делать
rpm
:Разница между ними
yum
иrpm
вызовами будет видна только в том случае, если один из перечисленных пакетов будет иметь дополнительные зависимости от пакетов, НЕ перечисленных в командной строке.В таком случае
rpm
он просто откажется от продолжения, в то время какyum
использует любые настроенные и включенные репозитории yum для поиска зависимостей и, возможно, может преуспеть.Текущий рабочий каталог НЕ будет найден ни в каком случае, кроме случаев, когда он был ранее настроен как включенный
yum
репозиторий.источник
Я столкнулся с этим, и что работало для меня, чтобы бежать
yum localinstall enterPkgNameHere.rpm
из каталога, в котором находится файл .rpm.Примечание: замените на
enterPkgNameHere.rpm
имя вашего файла .rpm.источник
В случае openSUSE Leap 15 я получаю похожую ошибку:
Я запускаю эту команду, чтобы выяснить, каковы зависимости:
Затем я запускаю эту команду для установки зависимостей:
Затем я запускаю это, чтобы установить
rpm
файл:Я не уверен, что это лучшая практика, но это решило мою проблему.
источник
Шаг 1: скопируйте все RPM pkg в указанных местах
Шаг 2: если createrepo еще не установлен, так как он не будет установлен по умолчанию, установите его.
Шаг 3: создайте репозиторий метеданных и дайте ниже разрешение
Шаг 4: Создайте файл репозитория со следующим содержимым в /etc/yum.repos.d/mysql.repo
Шаг 5 Запустите эту команду для установки
источник
Просто запустите следующую команду.
Введите свой пароль, и все готово.
источник
Процесс создания RPM из исходного файла: 1) скачать исходный файл с расширением .gz. 2) установить rpm-build и rpmdevtools из yum install. (будет создана папка rpmbuild ... внутри папки rpmbuild должны быть созданы папки SPECS, SOURCES, RPMS ..). 3) скопируйте исходный код.gz в папку SOURCES. (Rpmbuild / SOURCES) 4) Разархивируйте tar-шар, используя следующую команду. перейдите в папку SOURCES: rpmbuild / SOURCES, где находится tar-файл. команда: например, tar -xvzf httpd-2.22.tar.gz Папка httpd-2.22 будет сгенерирована по тому же пути. Проверьте, есть ли apr и apr-util в папке httpd-2.22 / srclib. Если apr и apr-util не существует, загрузите последнюю версию с сайта apache, распакуйте ее и поместите в папку httpd-2.22 / srclib. Также убедитесь, что в вашей системе установлена программа pcre.
5) перейдите в извлеченную папку и введите следующую команду: ./configure --prefix = / usr / local / apache2 --with-enabled-apr --enable-proxy --enable-proxy-balancer --with-mpm = worker --enable-mods-static = all 6) выполнить команду ниже после успешного завершения настройки: make 7) после успешного выполнения выполнить команду make: checkinstall в той же папке. (если у вас нет программного обеспечения checkinstall, скачайте последнюю версию с сайта). Также в программном обеспечении checkinstall есть ошибка, которая может быть устранена следующим образом :::: найдите checkinstallrc и затем замените TRANSLATE = 1 на TRANSLATE = 0 с помощью команды vim. Также проверьте исключение пакета: EXCLUDE = "/ selinux" 8) checkinstall запросит параметр (введите R, если вы хотите, чтобы tp build rpm для исходного файла) 9) Готовый файл .rpm будет встроен в папку RPMS внутри файла rpmbuild / RPMS. .. Всего наилучшего ....
С уважением, Прерана
источник