Вопрос или проблема
Я пытаюсь установить centos-release-SCL
на CentOS 6.7. Хочу это сделать, чтобы получить python2.7. Я попробовал:
sudo yum --disablerepo=\* --enablerepo=extras install centos-release-SCL
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
* extras: anorien.csc.warwick.ac.uk
No package centos-release-SCL available.
Error: Nothing to do
Затем я попробовал:
sudo yum --disablerepo=\* --enablerepo=extras list available
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* extras: anorien.csc.warwick.ac.uk
Available Packages
bakefile.i686 0.2.8-3.el6.centos extras
centos-release-cr.i686 10:6-0.el6.centos extras
centos-release-virt-common.noarch 1-1.el6.centos extras
cloud-init.i686 0.7.5-10.el6.centos.2 extras
epel-release.noarch 6-8 extras
jfsutils.i686 1.1.13-9.el6 extras
ldns.i686 1.6.16-7.el6.1 extras
ldns-devel.i686 1.6.16-7.el6.1 extras
ldns-doc.noarch 1.6.16-7.el6.1 extras
ldns-python.i686 1.6.16-7.el6.1 extras
opennx.i686 0.16-724.el6.centos.1 extras
pytest.noarch 2.3.5-3.el6.centos extras
python-backports.i686 1.0-3.el6.centos extras
python-backports-ssl_match_hostname.noarch 3.4.0.2-4.el6.centos extras
python-boto.noarch 2.32.1-1.el6.centos extras
python-chardet.noarch 2.0.1-1.el6.centos extras
python-empy.noarch 3.3-5.el6.centos extras
python-jsonpatch.noarch 1.2-2.el6.centos extras
python-jsonpointer.noarch 1.0-3.el6.centos extras
python-oauth.noarch 1.0.1-1.el6.centos extras
python-ordereddict.noarch 1.1-2.el6.centos extras
python-prettytable.noarch 0.7.2-1.el6.centos extras
python-py.noarch 1.4.18-1.el6.centos extras
python-requests.noarch 1.1.0-4.el6.centos extras
python-six.noarch 1.7.3-1.el6.centos extras
python-sphinx10.noarch 1.0.8-1.el6.centos extras
python-sphinx10-doc.noarch 1.0.8-1.el6.centos extras
python-tornado.noarch 2.2.1-1.el6.centos extras
python-tornado-doc.noarch 2.2.1-1.el6.centos extras
python-urllib3.noarch 1.5-7.el6.centos extras
unbound.i686 1.4.20-23.el6.1 extras
unbound-devel.i686 1.4.20-23.el6.1 extras
unbound-libs.i686 1.4.20-23.el6.1 extras
unbound-python.i686 1.4.20-23.el6.1 extras
wxBase.i686 2.8.12-1.el6.centos extras
wxGTK.i686 2.8.12-1.el6.centos extras
wxGTK-devel.i686 2.8.12-1.el6.centos extras
wxGTK-gl.i686 2.8.12-1.el6.centos extras
wxGTK-media.i686 2.8.12-1.el6.centos extras
Почему centos-release-SCL
не доступен?
Я только что установил его на CentOS 6.7 (также для установки python2.7, что тоже сработало). Поэтому у меня нет ответа, кроме как показать вывод (ниже). Однако это не «стоковый» выпуск CentOS 6.7; это виртуальная машина Hortonworks Sandbox. Вы можете попробовать её тоже, посмотреть, работает ли у вас, и увидеть, что отличается между двумя конфигурациями.
$ lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.7 (Final)
Release: 6.7
Codename: Final
$ sudo yum install -y centos-release-SCL
Loaded plugins: fastestmirror, priorities
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirror.spro.net
* epel: mirror.sfo12.us.leaseweb.net
* extras: mirror.keystealth.org
* updates: mirror.pac-12.org
Resolving Dependencies
--> Running transaction check
---> Package centos-release-scl-rh.noarch 0:2-3.el6.centos will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================
Package Arch Version Repository Size
========================================================================================================================
Installing:
centos-release-scl-rh noarch 2-3.el6.centos extras 12 k
Transaction Summary
========================================================================================================================
Install 1 Package(s)
Total download size: 12 k
Installed size: 19 k
Downloading Packages:
centos-release-scl-rh-2-3.el6.centos.noarch.rpm | 12 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : centos-release-scl-rh-2-3.el6.centos.noarch 1/1
Verifying : centos-release-scl-rh-2-3.el6.centos.noarch 1/1
Installed:
centos-release-scl-rh.noarch 0:2-3.el6.centos
Complete!
Ответ или решение
Для решения проблемы с установкой пакета centos-release-SCL
на CentOS 6.7, необходимо учитывать несколько ключевых моментов и особенностей работы с системами, основанными на RPM, такими как CentOS.
Теория
Прежде всего, важно понять, что репозитории CentOS предлагают доступ к различным пакетам, не все из которых доступны по умолчанию. centos-release-SCL
— это мета-пакет, который разрешает доступ к Software Collections (SCL). SCL предоставляет возможность устанавливать альтернативные версии программного обеспечения, такие как Python 2.7, без воздействия на системные пакеты. Эти коллекции необходимы в случаях, когда требуется более современное или альтернативное программное обеспечение, без обновления основной системы, что особенно актуально для CentOS 6.7, где стандартной версией Python является 2.6.
Пример
У вас уже был опыт установки, но пакет centos-release-SCL
не был найден в репозитории extras
. Это не редкость, так как конфигурации репозиториев могут отличаться в зависимости от источника, откуда вы установили CentOS, или от внесенных ранее изменений в файлы конфигурации YUM.
Ваш вывод команды yum
показывают, что centos-release-SCL
отсутствует в репозитории extras
, хотя для некоторых пользователей (например, в Hortonworks Sandbox VM) пакет доступен. Это говорит о том, что репозиторий настроен иначе.
Применение
Для решения проблемы рекомендую выполнить следующие шаги:
-
Проверка всех доступных репозиториев:
Чтобы удостовериться, что ваши репозитории настроены правильно, выполните:sudo yum repolist all
Это покажет вам список всех репозиториев, и, что важно, вы должны искать
extras
иscl
репозитории. -
Активация SCL репозитория:
Убедитесь, что репозиторий Software Collections действительно активирован. Найдите файлCentOS-SCL.repo
в/etc/yum.repos.d/
и проверьте, что репозиторий не закомментирован и отмечен какenabled=1
. -
Установка через сторонние репозитории:
Если репозиторий отсутствует, можно добавить его вручную:sudo yum install centos-release-scl
Если по-прежнему он недоступен, переходим к альтернативным методам.
-
Ручная установка RPM:
Если пакет всё ещё не доступен через YUM, попробуйте установитьcentos-release-scl
вручную, загрузив RPM-пакет:sudo rpm -Uvh http://mirror.centos.org/centos/6/sclo/x86_64/rh/Packages/c/centos-release-scl-rh-2-3.el6.1.centos.noarch.rpm
Это позволит вам пользоваться преимуществами Software Collections офлайн установками, подобно официальному репозиторию.
-
Проверка успешности:
После установки, обновите пакетный кеш и проверьте, доступны ли теперь пакеты из SCL:sudo yum clean all sudo yum list available | grep python27
Вы должны увидеть пакеты, такие как
python27
. -
Установка Python 2.7:
Далее, установите Python 2.7:sudo yum install python27
Для активации установленной коллекции:
scl enable python27 bash
Заключение
Посредством вышеприведенных шагов можно определить и устранить проблему с отсутствием centos-release-SCL
. Работая с репозиториями и коллекциями, внимательно следите за тем, какая конфигурация используется в вашу системе. Это предотвратит многие вызовы, которые возникают из-за расхождений в репозиториях. Для более уже состоявшегося пользователя или администратора, автоматизация этого процесса через скрипты shell также может быть рассмотрена как метод улучшения эффективности частично вручную выполненных шагов.