Как установить стандартные репозитории CentOS?

20

У меня есть ситуация, когда файлы репо, которые должны существовать в /etc/yum.repos.d/(как centos-base.repo), отсутствуют. Мне нужно их установить. Я уверен, что это просто, но после нескольких часов поиска, кажется, я не гуглю это правильно.

По сути, у меня есть сервер с пользовательскими репозиториями, которые мне бесполезны. Мне нужен Epel, а Epel нуждается centos-base.repo. Мне также нужно Postgres Repo.

Джим
источник
1
или вы можете установить ОС на виртуальную машину, а затем скопировать файл по умолчанию, расположенный в каталоге yum.repos.d
OmiPenguin

Ответы:

16

Создайте файл с именем Centos-Base.repo в следующем каталоге /etc/yum.repos.d

vi /etc/yum.repos.d/Centos-Base.repo

Поместите следующую информацию в файл:

[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/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#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/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=
$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=
$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=
$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=2

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=
$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=2

Сохраните его и запустите.

yum clean all 

Тогда беги.

yum repolist

Если вы копируете это в putty через, viубедитесь, что вы дважды проверили разрывы строк. Мне пришлось исправить некоторые изменения, которые произошли во время копирования-вставки.

midnightsteel
источник
5
Вместо вставки в редактор, такой как vi или vim, просто используйте cat> filename и нажмите ctrl-d после вставки. Кроме того, в vim есть режим, предназначенный для получения данных из буфера обмена, который отключает автоматическое форматирование и т. Д. Просто используйте «: set paste» перед входом в режим вставки. Но я все же предпочитаю метод кошек, он проще.
Watcom
2
Почему в нем есть файлы GPG для CEntOS-5, например, gpgkey = file: /// etc / pki / rpm-gpg / RPM-GPG-KEY-CentOS-5?
Натан Басанезе
3
Это не работает на CentOS-7
Алекс Джолиг
Для будущих поколений, которые теперь приходят к этому вопросу: эти URL больше не действительны для CentOS 5. Вместо этого вы можете использовать это: archive.kernel.org/centos-vault/5.7 (с учетом вашей версии курса). Я нашел этот URL внизу этой страницы: vault.centos.org/centos
Тодд Уолтон
10

Вы можете вручную переустановить centos-release-rpm используя:

rpm -ivh --replacepkgs --replacefiles centos-release*.rpm
Nils
источник
3
Это сработало, но оно нуждалось в модификации. Первый шаг - проверить, установлен ли пакет centos-release, набрав rpm -q centos-release. Если он не установлен, то часть команды --replacepkgs --replacefiles должна быть пропущена. В моем случае все это было деинсталлировано, поэтому я использовал: rpm -Uvh centos-release. *. Rpm
Джим
@ Джим, должно быть, это было жестокое удаление этих оборотов - без проверки зависимостей. Я проверил с yum remove centos-release- это должно нормально удалить всю систему.
Нильс
3

Для меня проблема решена очистить все хранилища и добавления новых от сюда учитывая мой CentOS версии:

# yum clean all

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

# rpm -Uvh http://dl.atrpms.net/all/atrpms-repo-7-7.el7.x86_64.rpm

# rpm -Uvh http://repo.webtatic.com/yum/el7/webtatic-release.rpm
Алекс Джолиг
источник
Первый URL больше не действителен. Не проверял других.
TheMayer