Jak zainstalować zapasowe repozytoria CentOS?

20

Mam sytuację, w której pliki repozytorium akcji, które powinny istnieć w /etc/yum.repos.d/(jak centos-base.repo) nie są obecne. Muszę je zainstalować. Jestem pewien, że jest to proste, ale po wielu godzinach poszukiwań wydaje się, że nie przeglądam go poprawnie.

Zasadniczo mam serwer z niestandardowymi repozytoriami, które są dla mnie bezużyteczne. Potrzebuję epel i epel potrzebuje centos-base.repo. Potrzebuję też repozytorium postgres.

Jim
źródło
1
lub możesz zainstalować system operacyjny na maszynie wirtualnej, a następnie skopiować domyślny plik znajdujący się w katalogu
yum.repos.d

Odpowiedzi:

16

Utwórz plik o nazwie Centos-Base.repo w następującym katalogu /etc/yum.repos.d

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

Umieść następujące informacje w pliku:

[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

Zapisz i biegnij.

yum clean all 

Następnie uruchomić.

yum repolist

Jeśli kopiujesz to do szpachlówki, viupewnij się, że dwukrotnie sprawdzasz przerwy w linii. Musiałem naprawić niektóre edycje, które miały miejsce podczas kopiowania i wklejenia.

stal północna
źródło
5
Zamiast wklejać do edytora takiego jak vi lub vim, po prostu użyj cat> filename i po wklejeniu naciśnij ctrl-d. Ponadto vim ma tryb przeznaczony do odbierania danych ze schowka, który wyłączy automatyczne formatowanie itp. Wystarczy użyć „: ustaw wklej” przed wejściem w tryb wstawiania. Ale nadal wolę metodę kota, jest prostsza.
Watcom,
2
Dlaczego zawiera pliki GPG dla CEntOS-5, np. Gpgkey = plik: /// etc / pki / rpm-gpg / RPM-GPG-KEY-CentOS-5?
Nathan Basanese
3
Nie działa na CentOS-7
Alex Jolig
Dla FYI potomnych, którzy teraz przechodzą na to pytanie: te adresy URL nie są już ważne dla CentOS 5. Możesz użyć tego: archive.kernel.org/centos-vault/5.7 (dostosowując oczywiście do twojej wersji). Znalazłem ten adres URL na dole tej strony: vault.centos.org/centos
Todd Walton
10

Możesz ręcznie ponownie zainstalować centos-release-rpm używając:

rpm -ivh --replacepkgs --replacefiles centos-release*.rpm
Nils
źródło
3
To działało, ale wymagało modyfikacji. Pierwszym krokiem jest sprawdzenie, czy pakiet centos-release jest zainstalowany, wpisując rpm -q centos-release. Jeśli nie jest zainstalowany, to część polecenia --replacepkgs --replacefiles powinna zostać pominięta. W moim przypadku wszystko zostało odinstalowane, więc użyłem: rpm -Uvh centos-release. *. Rpm
Jim
@Jim to musiało być brutalne usunięcie tej liczby obrotów na minutę - bez sprawdzania zależności. Sprawdziłem za pomocą yum remove centos-release- to normalnie powinno odinstalować cały system.
Nils
3

Dla mnie problem rozwiązany przez wyczyszczenie wszystkich repozytoriów i dodanie nowych stąd, biorąc pod uwagę moją wersję 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
Alex Jolig
źródło
Pierwszy adres URL jest już nieprawidłowy. Nie sprawdziłem pozostałych.
theMayer