Почему yum пытается установить неверную версию node.js?

На сервере CentOS 7 я пытаюсь установить версию 5.x из Node.js , но по какой-то причине yum продолжает пытаться установить версию 0.x и возвращать ошибку, когда она не может найти версию 0.x на 5.x скачать сайт. Ошибка указывает, что yum объединяет имя файла версии 0.x с URL-адресом версии 5.x Я предполагаю, что это указывает на что-то неправильное в конфигурации для yum на машине CentOS 7. Какие конкретные изменения необходимо сделать для установки версии 5.x?

Корневое сообщение об ошибке:

 Error downloading packages: nodejs-0.10.42-1nodesource.el7.centos.x86_64: [Errno 256] No more mirrors to try. 

Страница издателя, с которой мой код, приведенный ниже, можно просмотреть по следующей ссылке . Кроме того, некоторые осложнения могут быть результатом более ранней попытки следовать инструкциям на этой другой ссылке . И чтобы изучить возможные остатки предыдущей попытки, в настоящее время я выполняю следующую команду и grep -rnw '/path/to/somewhere/' -e "pattern" результатов: grep -rnw '/path/to/somewhere/' -e "pattern"

Вот вывод терминала для настройки расположения узлов:

 [root@localhost tmp]# curl --silent --location https://rpm.nodesource.com/setup_5.x | bash - ## Installing the NodeSource Node.js 5.x repo... ## Inspecting system... + rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release || rpm -q --whatprovides cloudlinux-release || rpm -q --whatprovides sl-release + uname -m ## Confirming "el7-x86_64" is supported... + curl -sLf -o /dev/null 'https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm' ## Downloading release setup RPM... + mktemp + curl -sL -o '/tmp/tmp.sH82u4Gpap' 'https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm' ## Installing release setup RPM... + rpm -i --nosignature --force '/tmp/tmp.sH82u4Gpap' ## Cleaning up... + rm -f '/tmp/tmp.sH82u4Gpap' ## Checking for existing installations... + rpm -qa 'node|npm' | grep -v nodesource ## Run `yum install -y nodejs` (as root) to install Node.js 5.x and npm. ## You may also need development tools to build native addons: ## `yum install -y gcc-c++ make` 

Ниже приведен список содержимого папки /tmp после указанной выше команды:

 [root@localhost tmp]# ls -al total 8 drwxrwxrwt. 13 root root 320 Feb 14 06:13 . dr-xr-xr-x. 19 root root 4096 Jan 29 20:54 .. drwx------. 2 user user 60 Feb 13 20:05 .esd-1000 drwxrwxrwt. 2 root root 40 Feb 13 20:04 .font-unix prw-------. 1 root root 0 Feb 13 20:05 hogsuspend drwxrwxrwt. 2 root root 80 Feb 13 20:05 .ICE-unix srwxrwxrwx. 1 mongod mongod 0 Feb 13 20:04 mongodb-27017.sock drwx------. 2 user user 40 Dec 31 1969 orbit-user drwx------. 2 user user 60 Feb 13 20:05 ssh-AmQyH8IIEC2m drwx------. 3 root root 60 Feb 13 20:05 systemd-private-74534ca9946043cc88dbe52a38b4344d-colord.service-hDR3Cd drwx------. 3 root root 60 Feb 13 20:04 systemd-private-74534ca9946043cc88dbe52a38b4344d-rtkit-daemon.service-ZAQmPk drwxrwxrwt. 2 root root 40 Feb 13 20:04 .Test-unix drwx------. 2 user user 40 Feb 13 20:08 tracker-extract-files.1000 -r--r--r--. 1 root root 11 Feb 13 20:05 .X0-lock drwxrwxrwt. 2 root root 60 Feb 13 20:05 .X11-unix drwxrwxrwt. 2 root root 40 Feb 13 20:04 .XIM-unix 

Ниже приведены результаты попыток установить nodejs с помощью yum :

 [root@localhost tmp]# yum install -y nodejs Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirror.lax.hugeserver.com * epel: mirror.sfo12.us.leaseweb.net * extras: mirror.keystealth.org * updates: mirror.supremebytes.com Resolving Dependencies --> Running transaction check ---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================================================ Package Arch Version Repository Size ================================================================================================================================================================================ Installing: nodejs x86_64 0.10.42-1nodesource.el7.centos nodesource 4.5 M Transaction Summary ================================================================================================================================================================================ Install 1 Package Total download size: 4.5 M Installed size: 16 M Downloading packages: No Presto metadata available for nodesource nodejs-0.10.42-1nodesource.el7 FAILED https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodejs-0.10.42-1nodesource.el7.centos.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found ] 0.0 B/s | 0 B --:--:-- ETA Trying other mirror. To address this issue please refer to the below knowledge base article https://access.redhat.com/articles/1320623 If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/ Error downloading packages: nodejs-0.10.42-1nodesource.el7.centos.x86_64: [Errno 256] No more mirrors to try. [root@localhost tmp]# 

Для записи gedit /etc/yum.repos.d/nodesource-el.repo показывает следующее:

 [nodesource] name=Node.js Packages for Enterprise Linux 7 - $basearch baseurl=https://rpm.nodesource.com/pub_5.x/el/7/$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL [nodesource-source] name=Node.js for Enterprise Linux 7 - $basearch - Source baseurl=https://rpm.nodesource.com/pub_5.x/el/7/SRPMS failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL gpgcheck=1 и [nodesource] name=Node.js Packages for Enterprise Linux 7 - $basearch baseurl=https://rpm.nodesource.com/pub_5.x/el/7/$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL [nodesource-source] name=Node.js for Enterprise Linux 7 - $basearch - Source baseurl=https://rpm.nodesource.com/pub_5.x/el/7/SRPMS failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL gpgcheck=1 и [nodesource] name=Node.js Packages for Enterprise Linux 7 - $basearch baseurl=https://rpm.nodesource.com/pub_5.x/el/7/$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL [nodesource-source] name=Node.js for Enterprise Linux 7 - $basearch - Source baseurl=https://rpm.nodesource.com/pub_5.x/el/7/SRPMS failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL gpgcheck=1 

Я подозреваю, что проблема может быть вызвана тем, что ранее выполнялась эта другая команда:

 curl --silent --location rpm.nodesource.com/setup | bash - 

Я предполагаю, что основная проблема заключается в том, как yum сохраняет результаты этих curl --silent --location ... | bash - commands curl --silent --location ... | bash - commands


СЛУЧАЙ КОНТРОЛЯ:


На другой, полностью новой установке CentOS 7 на другой виртуальной машине, следующие три простые команды успешно установили правильную текущую версию 5.x nodejs:

 # cd /tmp # curl --silent --location https://rpm.nodesource.com/setup_5.x | bash - # yum install -y nodejs # node --version v5.6.0 

Эти результаты из контрольного случая показывают, что проблема заключается в том, как yum настроен на машине, которая имеет проблему. Итак, какие конкретные изменения необходимо внести в машину с проблемой, так что yum настроен на создание правильного URL-адреса загрузки? Нецелесообразно переносить все на другую виртуальную машину. Разумеется, это просто строка или две в конфигурации yum, которые можно изменить для решения этой проблемы.

3 Solutions collect form web for “Почему yum пытается установить неверную версию node.js?”

Это, похоже, проблема с кешем, хотя неясно, что пошло не так. После некоторого разговора с плакатом в чате, запуская yum clean all исправили проблему.

Плакат отметил следующее:

 [root@localhost yum]# ls /var/cache/yum/x86_64/7/nodesource/packages nodejs-0.10.42-1nodesource.el7.centos.x86_64.rpm [root@localhost yum]# yum clean all [root@localhost yum]# ls /var/cache/yum/x86_64/7/nodesource/packages [root@localhost yum]# yum install -y nodejs .... much terminal output during successful install [root@localhost yum]# node --version v5.6.0 

Таким образом, yum clean all удалил устаревший пакет, который был сохранен в кеше.

У меня нет достаточных знаний или опыта дистрибутивов на основе Red Hat, чтобы сказать, что здесь не так, поэтому воздержитесь от комментариев дальше.

yum попытается получить версию, доступную в настроенных репозиториях, а не то, что вы хотите установить.

Установка пакетов, которые переопределяют официально предложенные версии, – это верный способ оборвать вашу систему, часто в тонких целях. Кажется, ваш репозиторий nodejs пытается это сделать. Присмотритесь к тому, что доступно, что предлагает сторонний репозиторий и какие гарантии существуют во избежание поломки.

Возможно, более разумным решением является установка пакета только для вашей учетной записи, возможно, непосредственно из источника?

Вот что я должен был сделать …

Сначала удалите пакет nodejs, установленный из EPEL:

 sudo yum remove nodejs 

Перечислите свои репозитории yum:

 yum repolist 

Вот как выглядела запись моего репозитория узла:

 nodesource/x86_64 Node.js Packages for Enterprise Linux 7 - x86_64 

Если вам интересно, перечислите пакеты в репозитории узлов:

 yum --disablerepo="*" --enablerepo="nodesource" list available 

Затем выполните установку yum, используя только репозиторий узлов:

 yum --disablerepo="*" --enablerepo="nodesource" install nodejs 

Мое подозрение в том, что есть что-то в схеме нумерации, используемой в репозитории узлов, которая не представляет nodejs в качестве замены пакета в репозитории EPEL, но это всего лишь предположение.

  • Не удается удалить дубликаты пакетов из-за зависимостей
  • RepoForge, используемый во многих документах StackOverflow, недоступен. Какая альтернатива?
  • С какой целью perl * будет исключен в yum.conf?
  • Локальный репозиторий DVD с CentOS
  • Запретить yum проверять наличие обновлений при установке нового пакета
  • CentOS: отключить недоступный репозиторий
  • Как заменить один пакет другим с помощью yum?
  • Как установить emacs с помощью YUM без библиотек X11?
  • Найти последний раз, когда было выполнено обновление yum
  • При использовании «доступных списка yum» почему некоторые элементы синего цвета?
  • Как заставить yum использовать уже импортированные ключи gpg?
  • Interesting Posts

    использовать she-bang in oneliner

    Таблицы маршрутизации и маршруты по умолчанию

    Проверка другого пароля wifi в точке доступа

    Измените значения $ READLINE_LINE и $ READLINE_POINT внутри сценария bash

    Точка доступа Not-Associated: команда Kali Linux и Airodump-Ng и стирание команды замораживания

    Сканируйте и установите пакеты на Ubuntu вместе с версией

    Операция перемещения файла над SAMBA сохраняет номер inode?

    Обновление Ruby не работает с использованием двух методов

    xrandr –listproviders не обнаруживает nvidia

    Как создать реальную копию дескриптора файла stdout и stderr без использования unbuffer / script / tee только с встроенными встроенными в bash?

    Как подключиться к гостевой виртуальной машине из хост-системы?

    Измените базовое DN каталога LDAP на организацию

    Неправильные разрешения для специальных файлов

    Где Postfix хранит электронную почту?

    Изменение порядка рабочих пространств в Gnome Shell

    Linux и Unix - лучшая ОС в мире.