Як я можу доручити yum встановити певну версію пакета X?


226

Якщо у сховищі YUM доступні дві (або більше) версії заданого RPM, як я можу доручити yumвстановити потрібну версію?

Переглядаючи сервіс побудови Koji, я помічаю, що існує кілька версій.

    ss №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.

$ 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
Дозвольте спробувати ще раз реальний приклад з мого журналу yum. 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/…
slm

Ні, це не працює навіть під час оновлення до певного пакету. Я експериментував з цим свіжою установкою лише кілька днів тому. Ви можете лише оновити до останнього пакета, а не будь-яку бажану версію.
Переповнення запитань

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.