Как я могу поручить yum установить определенную версию пакета X?


226

Если в репозитории YUM доступны две (или более) версии данного RPM, как я могу дать указание yumустановить нужную версию?

Просматривая сервис сборки Koji, я замечаю, что существует несколько версий.

    сс # 1

Ответы:


310

Чтобы увидеть, какие конкретные версии доступны для вас через yumвы можете использовать --showduplicatesпереключатель. Это дает вам список типа «имя пакета. Версия архитектуры»:

$ yum --showduplicates list httpd | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
 * fedora: mirror.steadfast.net

Available Packages
httpd.x86_64                        2.4.6-6.fc20                         fedora 
httpd.x86_64                        2.4.10-1.fc20                        updates

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

$ sudo yum install <package name>-<version info>

Например, в этом случае, если бы я хотел установить более старую версию 2.4.6-6, я бы сделал следующее:

$ sudo yum install httpd-2.4.6-6

Вы также можете включить информацию о выпуске при указании пакета. В этом случае, поскольку я имею дело с Fedora 20 (F20), информация о выпуске будет "fc20", а также информация об архитектуре.

$ sudo yum install httpd-2.4.6-6.fc20
$ sudo yum install httpd-2.4.6-6.fc20.x86_64

repoquery

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

$ sudo yum install yum-utils  # (to get `repoquery`)
$ repoquery --show-duplicates httpd-2.4*
httpd-0:2.4.6-6.fc20.x86_64
httpd-0:2.4.10-1.fc20.x86_64

загрузка и установка

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

$ yum --downloadonly <package>
-or-
$ yumdownloader <package>

А затем установить его так:

$ sudo yum localinstall <path to rpm>

Что если я захочу загрузить все, что требуется для пакета X?

$ yumdownloader --resolve <package>

пример

$ yumdownloader --resolve vim-X11
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
--> Running transaction check
---> Package vim-X11.x86_64 2:7.3.315-1.fc14 set to be reinstalled
--> Finished Dependency Resolution
vim-X11-7.3.315-1.fc14.x86_64.rpm                              | 1.1 MB     00:01

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

Рекомендации


1
Я не думаю, что это работает для пакетов между последней установленной версией @updatesи начальной версией операционной системы @fedora. Например, если вы попытаетесь установить httpd-2.4.8-1, yumбудет сказано , что пакет недоступен.
Вопрос переполнен

@QuestionOverflow - не следующий. Эта версия не отображается как доступная в репо.
SLM

1
Позвольте мне попробовать еще раз с реальным примером из моего журнала. python-libs-2.7.5-12.fc20.x86_64был когда-то установлен на моем компьютере, но с тех пор был заменен. Если предположить, что сейчас я хочу установить этот конкретный пакет, yumdownloader python-libs-2.7.5-12*скажу No Match for argument python-libs-2.7.5-12* Nothing to download. Я пытаюсь сказать, что как только новый пакет прибудет, старый больше не будет доступен из yum. Вы можете установить только последний пакет или исходную версию, но не промежуточные версии.
Вопрос переполнен

2
@QuestionOverflow - В этом сценарии я думаю, что вам нужно использовать, yum downgrade ...если пакет уже установлен, и вы пытаетесь вернуться к нему позже. В своем QI я пытался показать, как можно вручную выбрать конкретную версию пакета, который еще не был установлен. docs.fedoraproject.org/en-US/Fedora/14/html/...
ОДС

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

6

Другой вариант, вы можете скачать rpmфайл, а затем поручить yumсделать localinstall:

yum localinstall /path/to/package.rpm

Хорошее место для получения нужных вам пакетов - rpmfind.com и поиск по названию пакета.


Есть ли URL, который содержит большинство, если не все версии файлов rpm?
Вопрос переполнен

@QuestionOverflow: rpmfind.net
cuonglm

4
Там также yum --downloadonly <package>, а затем yum localinstall <path to package>тоже. Вы также можете использовать утилиту yumdownloader <package>.
SLM

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.