Я новичок в Linux и хочу понять причину использования некоторых команд. Я пытаюсь установить PostgreSQL на CentOs, следуя инструкциям Вот.
Сначала делаем rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
который устанавливает в систему пакет rpm. Но почему он просит нас сделать yum install postgresql91-server
(который, я полагаю, устанавливает postgresql) снова, если мы использовали rpm -ivh
установить пакет?
Кроме того, в чем причина добавления строк exclude=postgresql*
в /etc/yum.repos.d/CentOS-Base.repo
под [base]
и [updates]
. Почему мы исключаем yum из доступа к этим пакетам, а затем используем yum для установки postgresql91-server
?
yum
взаимодействует с онлайн-репозиторием, относящимся к вашей версии CentOS.
rpm
- это менеджер пакетов и формат упаковки для приложений, разработанных для платформы Red Hat / CentOS. Ваш rpm
Команда устанавливает пакет, который был загружен и не является частью репозитория yum.
В мире Windows это похоже на разницу между Центром обновления Windows (yum) и загрузкой части программного обеспечения и двойным щелчком установщика (rpm).
Также создается впечатление, что вы используете более новую версию postgresql, чем та, которая доступна через обычные каналы CentOS («База» и «Обновления»). Пакет, устанавливаемый указанной вами командой yum, поступает из другого репозиторий стороннего программного обеспечения.
Похоже, вы используете пакеты баз данных postgres, предоставленные непосредственно PostgreSQL, а не те, которые поступают через CentOS. В инструкции и рассуждения подробно описаны здесь.
В результате вас попросили предотвратить установку версии, распространяемой с CentOS, с помощью exclude=
заявления, которые вы перечислили. Это мера предосторожности, чтобы избежать конфликта между старой версией postgresql из CentOS и новой, которую вы устанавливаете.