Установка репозитория EPEL на Centos 7 нарушает функциональность?
Поэтому я пытаюсь настроить бастионный сервер ssh, но у меня проблема с настройкой EPEL для установки Python3.6.
я использую CentOS Linux release 7.4.1708 (Core)
Поэтому я пытаюсь сначала установить EPEL, используя sudo yum -y install epel-release
(Я конечно sudo yum -y update
раньше и все работало нормально), но мне сказали Package 'epel-release' not found
Поэтому я попробовал другой подход, используя RedHat Package Manager:
sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Это установит пакет успешно, и я вижу оба epel.repo
а также epel-testing.repo
в etc/yum.repos.d
(Я копирую их содержимое в конце поста)
Однако теперь, когда я пытаюсь что-то сделать с yum, будь то обновление или установка какого-либо пакета, это выдает мне следующую ошибку (например, я использовал yum -y install Python3.6
или я также попытался установить tsclient или python-pip):
[root@scw-39016b yum.repos.d]# yum install -y Python3.6
Loaded plugins: fastestmirror
base | 3.6 kB 00:00
centos-kernel | 2.9 kB 00:00
epel/armhfp/metalink | 42 kB 00:00
Could not parse metalink https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=armhfp error was
No repomd file
One of the configured repositories failed (Unknown),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=<repoid> ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable <repoid>
or
subscription-manager repos --disable=<repoid>
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
File /var/cache/yum/armhfp/7/epel/metalink.xml does not exist
Я уже пробовал миллионы способов обойти это, и, кажется, ничто не помогает:(
Я переустанавливал это как 5 раз, я сделал sudo yum clean all
Постарался раскомментировать baseurl
и комментируя metalink
в репо-файлах и другим способом тоже и т.д..., но ничего не помогает:(
Может кто-нибудь сообщить мне, пожалуйста, в чем причина этой ошибки?
Я где-то читал, что это может быть связано с включением / отключением определенных репозиториев, но я не понимаю, как с этим справиться..
Большое спасибо!!!
epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
EPEL-testing.repo
[epel-testing]
name=Extra Packages for Enterprise Linux 7 - Testing - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/testing/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-epel7&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-testing-debuginfo]
name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Debug
baseurl=http://download.fedoraproject.org/pub/epel/testing/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel-testing-source]
name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Source
baseurl=http://download.fedoraproject.org/pub/epel/testing/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
8 ответов
Мы исправили это, обновив curl. Я полагаю, что yum использует libcurl под капотом, и кажется, что более старые версии curl не могут согласовывать соединение TLS с репозиторием epel.
yum update curl --disablerepo=epel
У меня была эта проблема на ВМ. Я просто изменил доступ через https для metalink и установил для него стандартное http, например: metalink =http: // mirrors.fedoraproject.org....
Ты используешь armhfp
как ваша арка и нет репо для нее в epel metalink, на которую вы смотрите.
Если вы загрузите ссылку ниже, вы получите файл с именем, metalink
, Вы увидите, что нет соответствующего репо repo=epel-7&arch=armhfp
, Это источник вашей проблемы.
https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=armhfp
Вам нужно использовать другое зеркало, которое обеспечивает поддержку CentOS-7 для armhfp
архипелаг
например, http://mirror.centos.org/altarch/7/os/armhfp/
Для того, чтобы использовать его, вам необходимо удалить epel-release
RPM и установите следующее:
rpm -ivh http://mirror.centos.org/altarch/7/os/armhfp/Packages/centos-userland-release-7-4.1708.el7.centos.0.1.armv7hl.rpm
Тогда сделай yum install
для вашего пакета.
Я сталкивался с вашим вопросом, когда пытался установить Python3 на мой Raspberry Pi 3 (на котором установлена CentOS 7). После некоторого google-fu я наткнулся на этот сайт, который помог мне установить EPEL на armhfp. Вот что он говорит:
Как я могу включить EPEL 7 на armhfp?
Ответ прост в том смысле, что не существует официального репозитория EPEL для armfhp. Но поскольку многие пользователи просили об этом, мы решили использовать сборщики centos armhfp для (пере) сборки пакетов с исходным кодом из EPEL 7 (и попытки их автоматически отслеживать), когда они простаивают. Обратите внимание, что это просто автоматическая перестройка без каких-либо тестов / тестов, и в результате pkgs также не подписаны. Чтобы использовать этот репозиторий, действуйте так:
cat > /etc/yum.repos.d/epel.repo << EOF
[epel]
name=Epel rebuild for armhfp
baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/
enabled=1
gpgcheck=0
EOF
После выполнения этих шагов я смог запустить sudo yum install epel-release
успешно, а затем установить Python3 на моем Raspberry Pi.
Однако, прежде чем сделать это, вам нужно заставить работать ням. Я не уверен, что я - лучшая помощь для этого, но я бы порекомендовал удалить (или, по крайней мере, отключить) текущие версии репозиториев epel, которые у вас есть.
yum remove epel
yum remove epel-release
yum remove epel-testing
Похоже, у вас включено стороннее репо, которое не работает. Это вызывает ваши проблемы с yum, и поэтому вам нужно удалить или отключить репозитории.
У нас очень похожая проблема, и я видел несколько просьб о помощи, и наиболее частым ответом было "не используйте https, но это подвергнет вас атакам MITM". Должен быть лучший ответ.
Мы только что установили новую версию CentOS Linux 7.7.1908 (Core) на сервере, и нам нравится OP всякий раз, когда мы пытаемся sudo yum install epel-release
, мы ломаем конфетку.
Вот установка:
-bash-4.2$ sudo yum install epel-release
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.sonic.net
* extras: mirror.fileplanet.com
* updates: mirror.fileplanet.com
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-11 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================================================================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================================================================================================================
Installing:
epel-release noarch 7-11 extras 15 k
Transaction Summary
===================================================================================================================================================================================================================================
Install 1 Package
Total download size: 15 k
Installed size: 24 k
Is this ok [y/d/N]: y
Downloading packages:
epel-release-7-11.noarch.rpm | 15 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : epel-release-7-11.noarch 1/1
Verifying : epel-release-7-11.noarch 1/1
Installed:
epel-release.noarch 0:7-11
Complete!
Теперь, если мы даже попробуем бежать yum list
это не удается:
-bash-4.2$ yum list
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
One of the configured repositories failed (Unknown),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=<repoid> ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable <repoid>
or
subscription-manager repos --disable=<repoid>
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again
А вот /etc/yum.repos.d/epel.repo:
-bash-4.2$ cat epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
Так проблема в репозитории, к которому мы пытаемся получить доступ, или в том, что мы пытаемся получить доступ по протоколу "https"? Если первое, как мне найти подходящий репозиторий? Если последнее, как мы можем диагностировать основную проблему? Это довольно свежая установка - все, что мы действительно сделали, установилиautos
и смонтировал домашний каталог, установил rvm
и создал несколько пользователей и групп.
FWIW, yum check-update
ничего не сообщает и yum update curl
(с или без "--disablerepo=epel") тоже ничего не сделал.
Я уже день бился об это головой и мне нужна профессиональная помощь.;-/
В этой головоломке есть еще один фрагмент, поэтому я подозреваю, что основная проблема связана с "https". Мы столкнулись с этой проблемой, почему пытались установить MongoDB, используя эти инструкции: https://docs.mongodb.com/v4.0/tutorial/install-mongodb-on-red-hat/
Мы создали /etc/yum.repos.d/mongodb-org-4.0.repo
с содержанием:
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
а затем попытался установить MongoDB и получил несколько иную ошибку:
-bash-4.2$ sudo vi /etc/yum.repos.d/mongodb-org-4.0.repo
-bash-4.2$ sudo yum install -y mongodb-org
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.keystealth.org
* extras: mirror.fileplanet.com
* updates: mirrors.sonic.net
https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/repodata/repomd.xml: [Errno 14] curl#60 - "Peer's Certificate issuer is not recognized."
Trying other mirror.
It was impossible to connect to the CentOS servers.
This could mean a connectivity issue in your environment, such as the requirement to configure a proxy,
or a transparent proxy that tampers with TLS security, or an incorrect system clock.
You can try to solve this issue by using the instructions on https://wiki.centos.org/yum-errors
If above article doesn't help to resolve this issue please use https://bugs.centos.org/.
One of the configured repositories failed (MongoDB Repository),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=mongodb-org-4.0 ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable mongodb-org-4.0
or
subscription-manager repos --disable=mongodb-org-4.0
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=mongodb-org-4.0.skip_if_unavailable=true
failure: repodata/repomd.xml from mongodb-org-4.0: [Errno 256] No more mirrors to try.
https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/repodata/repomd.xml: [Errno 14] curl#60 - "Peer's Certificate issuer is not recognized.”
Однако теперь, если я попробую это сделать, я получу ошибку "(Неизвестно)".
Это очень сбивает с толку.
У меня была такая же проблема, и чтобы ее исправить, я сделал следующее:
$ yum install epel-release
$ cd /etc/yum.repos.d
$ rm epel-testing.repo
$ yum clean all
$ yum update -
У меня это сработало!
Проблема в том, что даже если мы устанавливаем epel через rpm, путь baseurl, настроенный в файлах epel.repo и epel-testing.repo, недействителен, потому что https://download.fedoraproject.org/ существует.
Действительный путь: https://dl.fedoraproject.org/pub/
Поэтому измените базовый URL-адрес в /etc/yum.repos.d/epel.repo следующим образом:baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
к этому:
baseurl=http://dl.fedoraproject.org/pub/epel/7/$basearch
Вот что я сделал
судо нано /etc/yum.repos.d/epel.repo
Закомментируйте металинк и оставьте существующий baseurl закомментированным.
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
МОЖНО УДАЛИТЬ {
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
}
Добавить новый базовый URL
baseurl = https://armv7.dev.centos.org/repodir/epel-pass-1/
сохраните файл sudo yum update
Мне удалось обновить и загрузить репозитории epel, и, проверяя, установлен ли epel-release с помощью yum install epel-release, я получил сообщение об уже установленном пакете. ОБНОВЛЕНИЕ: измените gpgcheck=1 на 0 и все будет в порядке. Я также удалил строку gpgkey=.
Сообщите мне, если это поможет!
[продолжение] Когда я установил htop.armv7h1, мне пришлось выполнить --nogpgcheck с yum, и он установился нормально.