2015-12-04 2 views
3

Я создал два RPM. Один для CentOS 6 и один для CentOS 7.Yum пытается установить выпуск .el7 на CentOS 6

my-package-0.0.1-1.el6.x86_64

my-package-0.0.1-1.el7.x86_64

Когда я делаю yum info my-package на 6 машине CentOS, это дает мне EL7 информацию. Когда я делаю yum install my-package, он делает то же самое, получает версию el7. Почему он это делает? Я пытаюсь избежать установки версии el7 на машине el6.

ответ

3

Похоже, что у вас есть их в одном хранилище yum. Вы не должны. Вы должны отправить его в репозиторий CentOS6, а другой - в репозиторий CentOS7. В противном случае yum сравнивает их и решает, что 7> 6 при сравнении тегов выпуска, поэтому это самый новый доступный пакет.

el6 (AKA «расстояние тег») является удобство для пользователя в качестве суффикса к выпуску, и не то, что RPM можно выбрать на непосредственно.

+0

Спасибо за ваш ответ. И после консультации с dev ops, они также сказали то же самое. Мы только разработали для el6, поэтому я убедился, что они должны знать, что им нужно указать полное имя Pkg при установке или развернуть репо для el7. – codeMonkey

3

Соглашаясь, что, по-видимому О.П. положил обе RPMs в том же хранилище, есть некоторые детали, не замеченные @aaron-d-marasco:

  • el6 тег не является «удобство для пользователя», а скорее обходного пути по упаковщикам.
  • если вы проверяете метаинформацию для пакетов, вы можете заметить, что .el6 (или .el7) в пакетах при условии, являются прилагается к релиза тега, например, для zip-3.0-10.el7.x86_64, вы можете увидеть что-то вроде этого :

    Name : zip
    Version : 3.0
    Release : 10.el7
    Architecture: x86_64

  • правило отбора RPM использует целых тегов для версии и выпуска для каждого имени указанного.

  • расстояние тег упоминается сортируется вместе с остальной частью релиз тег
  • обходной путь, потому что нет отдельной метаинформации для распространения в схеме, но упаковщики хотите следить за этим.
  • потому что релиза тег «принадлежат» упаковщику (и версии развития восходящего), то упаковщикам добираются, чтобы решить, как она используется для организации упаковок — предмета для встроенных правил RPM выбор по yum.

Дальнейшее чтение:

+0

Ничего себе, как Yum сравнивает rpms и версии, сумасшедшие. Спасибо за чтение. Я также думал, что размещение тега% {dist} в поле для выпуска было неудобным и, скорее всего, работало. Особенно, если в системе имеются макросы dist, например. {el}, {centos} – codeMonkey

+0

Спасибо за отзыв; Я включил свой ответ. Я имел в виду, что yum/rpm не может * напрямую * выбрать этот тег, потому что это не «реальный» тег в specfile. –