Yum не устанавливает конкретную версию RPM с пользовательским репо

2907
Sridhar

Мы используем RPMS для нашей упаковки и yum для обновления нашей среды.

На нашем производственном сервере установлена ​​программа rpm package-5.1.1-3, а в нашем репозитории yum есть две более новые версии, такие как package-5.1.3-3 и package-5.2-27.

Используя yum, мы попытались установить package-5.1.3-1, но yum установил package-5.2-27.

Это вызвало серьезные проблемы на производстве.

Если мы удалим пакет 5.2-27 из нашего пользовательского репозитория yum и попробуем установить 5.1.3-1, он будет установлен, как и ожидалось.

Я думаю, что yum должен разрешить установку конкретной версии RPMS, и я помню, как делал это несколько раз. Я пытался отладить, но безуспешно.

Пакет уже установлен:

root@snelloru]# rpm -qa|grep package pacakge-database-5.1.1-3 package-5.1.1-3 

Установка более высокой версии (5.1.3-1)

yum install package-5.1.3-1 Loaded plugins: rhnplugin, security Excluding Packages in global exclude list Finished Setting up Install Process Package matching package-5.1.3-1.x86_64 already installed. Checking for update. Resolving Dependencies --> Running transaction check --> Processing Dependency: package = 5.1.1-3 for package: package-database ---> Package package.x86_64 0:5.1.3-1 set to be updated --> Running transaction check ---> Package package-database.x86_64 0:5.2-23 set to be updated --> Processing Dependency: package = 5.2-23 for package: package-database --> Running transaction check ---> Package package.x86_64 0:5.1.3-1 set to be updated ---> Package package.x86_64 0:5.2-23 set to be updated --> Finished Dependency Resolution  Dependencies Resolved  =============================================================== Package Arch Version Repository Size =============================================================== package x86_64 5.2-23 repo 22 M package-database x86_64 5.2-23 

Выход из yum list --showduplicates package package-database

root@snelloru]# yum list --showduplicates package package-database Loaded plugins: allowdowngrade, security rightscale-epel | 951 B 00:00 Installed Packages package.x86_64 5.1.1-3 installed package-database.x86_64 5.1.1-3 installed Available Packages package.x86_64 5.1-126 repo package.x86_64 5.1.1-3 repo package.x86_64 5.1.2-3 repo package.x86_64 5.1.3-1 repo package.x86_64 5.2-25 repo package.x86_64 5.2-26 repo package.x86_64 5.2-27 repo package-database.x86_64 5.1-126 repo package-database.x86_64 5.1.1-3 repo package-database.x86_64 5.1.2-3 repo package-database.x86_64 5.1.3-1 repo package-database.x86_64 5.2-2 repo package-database.x86_64 5.2-3 repo package-database.x86_64 5.2-4 repo package-database.x86_64 5.2-24 repo package-database.x86_64 5.2-25 repo package-database.x86_64 5.2-26 repo package-database.x86_64 5.2-27 repo 

Мое наблюдение:

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

Например, если у нас установлен 5.2-10 на сервере и если мы пытаемся установить 5.2-20, он работает должным образом, хотя в репо присутствуют более высокие выпуски, такие как 5.2-25..5.2-28.

Его не работает, только когда у нас установлена ​​другая версия rpm

Есть идеи по этому поводу ??

0
Вы можете запросить конкретную версию пакета, но только если она все еще доступна в хранилище. Учитывая, что репозитории дистрибутивов агрессивно очищаются, старые версии не остаются долго (если вообще). Почему вы хотите перейти на старую версию в первую очередь? vonbrand 9 лет назад 0
Я не пытаюсь установить какой-либо пакет из дистрибутива. Это наш собственный программный пакет. Мы каждый день генерируем пакеты, храним их в репозитории RPM и устанавливаем с помощью YUM. В нашем репозитории хранятся все более старые версии, и я ожидаю, что yum установит более старую версию, когда она присутствует в репозитории RPM. Sridhar 9 лет назад 0
Вам нужно указать флаг `--allow-downgrade`, потому что он уже знает о более новой версии? Кроме того, `yum-versionlock` может понадобиться на этой машине навсегда. warren 9 лет назад 0

1 ответ на вопрос

0
Eran Ben-Natan

Пытаться: yum upgrade-to package-5.1.3

Спасибо Eran, он работает, как и ожидалось, но я не настолько доверен, чтобы использовать upgrade-to вместо install, так как Updage удалит устаревшие пакеты. Мы используем yum для установки наших пакетов в производственной среде. Это нормальное поведение или ням всегда выбирать последнюю версию, даже если вы указали номер версии ??? Sridhar 9 лет назад 0
yum install установит конкретную версию, которую вы запрашиваете. В приведенном выше примере package-5.1.3-1 уже установлен, поэтому yum попытался выполнить обновление. Обратите внимание, однако, что если у вас есть пакет foo, который зависит от bar, и у вас есть версии 1.0 и 2.0 для обоих, если вы запустите yum install foo-1.0, он установит bar-2.0 как зависимость, а не 1.0, потому что вы этого не сделали. укажите версию для бара, поэтому yum подберет последнюю версию. В этом случае используйте yum install bar-1.0 foo 1.0. Eran Ben-Natan 9 лет назад 0

Похожие вопросы