Установка определенной версии пакета с помощью yum

18

У меня есть система Fedora с Postgres версии 8.3, и я хочу снизить ее до 8.2 из-за проблемы совместимости. Я использовал yum для всего, но я впервые с этим менеджером пакетов, и я не знаю, как понизить версию.

Итак, как мне сказать, чтобы дать мне конкретную версию пакета?

РЕДАКТИРОВАТЬ: мне удалось заставить это работать, следуя за, загружая определенные пакеты согласно предложению skymt, плюс устанавливая их ключ GPG. Все, что мне нужно было сделать, это

rpm --import RPM-GPG-KEY-PGDG
yum localinstall postgresql-8.2.10-1PGDG.f9.i386.rpm
yum localinstall .....

И так далее. Тем не менее, это было довольно неуклюже, и я все еще надеюсь, что есть более легкий путь. Если кто-нибудь знает, как заставить YUM ориентироваться на конкретную версию, не прибегая к этому, пожалуйста, дайте мне знать, чтобы я мог сделать это в следующий раз.

Эли Кортрайт
источник

Ответы:

4

В Centos я сделал следующие шаги:

На /etc/yum.repos.d/CentOS-Base.repo.

в разделах Base и Update добавьте следующие строки exclude = postgresql * (тогда вы не обновляете из обычного репозитория для postgres rpm).

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgresql*

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgresql*

Затем загрузите версию, которую вы хотите. Смотрите http://yum.pgrpms.org/howtoyum.php

wget http://yum.pgrpms.org/reporpms/8.3/pgdg-centos-8.3-6.noarch.rpm
rpm -ivh pgdg-centos-8.3-6.noarch.rpm

Теперь у вас есть еще один репозиторий в вашем /etc/yum.repos.d/pgdg-82-centos.repo.

ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Media.repo  pgdg-82-centos.repo

тогда, если вы установите postgres, centos возьмет с yum.pgsqlrpms.org/

yum install postgresql postgresql-server
Оскар Рейг Колон
источник
19

Из справочной страницы:

MISC

  Specifying package names

         A package can be referred to for install,update,list,remove  etc
         with any of the following:

          name
          name.arch
          name-ver
          name-ver-rel
          name-ver-rel.arch
          name-epoch:ver-rel.arch
          epoch:name-ver-rel.arch

          For example: yum remove kernel-2.4.1-10.i686

Возможно, вам придется вручную удалить более новую версию, а затем установить более старую.

EmmEff
источник
У моей man-страницы для yum нет этого раздела. Кроме того, моя версия yum не имеет команды «remove» и использует вместо нее «erase». Наконец, я попробовал это для postgresql-8.2.10.i386 и всех его вариантов, которые я мог придумать, и это не сработало.
Эли Кортрайт,
2

Используйте опцию обновления и укажите номер версии:

yum upgrade postgresql-8.2.10

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

Альваро Гонсалес
источник
1

Быстрый просмотр справочной страницы не выявил такой возможности. Кажется, они еще этого не добавили; Юм еще довольно молодой менеджер пакетов.

Вместо этого загрузите и вручную установите соответствующие RPM .


источник
0

Я слышал, что умный менеджер пакетов может сделать это. (еще не было возможности попробовать). Известно, что Yum не поддерживает понижение рейтинга.

Смарт доступен на Fedora.


источник