Як я можу доручити 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.