Локальная установка .rpms с использованием YUM

50

Я осторожно задаю этот вопрос, потому что не хочу ошибиться.

У меня есть файл program_name.rpm, сохраненный локально на моем сервере (CentOS 6.5).

Я установил его ранее, просто перейдя к нему и используя yum install program_name.rpm, который работал нормально, но не дал мне никакой возможности указать, где он установлен.

Можно ли установить этот rpm в / opt / some_directory вместо его места установки по умолчанию?

TheLovelySausage
источник

Ответы:

34

Используйте об / мин

rpm -ivh package.rpm

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

rpm -ivh -r /new/path package.rpm

но знайте, что под новым рутом будет воссоздана структура каталогов из пакета

Ромео Нинов
источник
2
это сработало отлично, я не думаю, что есть эквивалент YUM?
TheLovelySausage
4
Чтобы уточнить: ням это обертка вокруг оборотов. rpm - основная программа для управления пакетами в RHEL, SuSE, CentOS и других дистрибутивах
Ромео Нинов
4
О, я всегда думал, что yum основан на rpm, никогда не понимал, что это оболочка, спасибо за вашу помощь
TheLovelySausage
Вы должны быть пользователем root для запуска этой команды?
Алексей Магура,
Правильно, вы должны быть пользователем root, чтобы запустить команду
Ромео Нинов
97

Жаль, что вы приняли тот ответ оборотов. Это приведет к предупреждениям от последующих казней yum, таких как Warning: RPMDB altered outside of yum

Вместо этого вы должны использовать yum localinstall, в разделе 13 на странице Yum и RPM Tricks на wiki CentOS => https://wiki.centos.org/TipsAndTricks/YumAndRPM#head-3c061f4a180e5bc90b7f599c4e0aebdb2d5fc7f6

Вы можете использовать эту --installrootопцию, чтобы указать другой установочный корень.

Джефф
источник
3
Мне нравится делать вещи в соответствии с лучшими практиками, и этот ответ включает в себя тот эквивалент, на который я надеялся. К сожалению, я уже установил целую кучу пакетов, используя метод rpm -ivh. Хотелось бы, чтобы можно было принять два правильных ответа, потому что я считаю, что принятый ответ правильный, но люди, приходящие посмотреть на этот вопрос,
получили
Лучше использовать yum вместо rpm, но для решения «предупреждения: RPMDB изменен вне yum» можно использовать «синхронизацию истории yum»
elbarna
1
Это работает. Когда я попробовал просто запустить rpm, он не получил зависимости. Это просто ошибка с "Неудачные зависимости".
Кристиан Шей
"yum --nogpgcheck localinstall packagename.arch.rpm"
hmz