yum이 잘못된 Node.js 버전을 설치하려고 하는 이유는 무엇입니까?

yum이 잘못된 Node.js 버전을 설치하려고 하는 이유는 무엇입니까?

5.xCentOS 7 서버에서 버전을 설치하려고 하는데 Node.js어떤 이유로 계속 버전을 설치하려고 시도하고 yum다운로드 사이트에서 버전을 찾을 수 없으면 0.x오류가 반환됩니다 . 이 오류는 버전 파일 이름이 버전 URL과 연결되어 있음을 나타냅니다. 나는 이것이 CentOS 7 시스템의 구성에 문제가 있음을 나타내는 것이라고 생각합니다.0.x5.xyum0.x5.xyum버전 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"

노드 소스 위치를 설정하기 위한 터미널 출력은 다음과 같습니다.

[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  

이전에 다른 명령을 실행하여 문제가 발생한 것으로 의심됩니다.

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

근본적인 문제는 yum이 이러한 결과를 유지하는 방법이라고 생각합니다.curl --silent --location ... | bash - commands


제어 케이스:


다른 가상 머신에 CentOS 7을 새로 설치할 때 다음 세 가지 간단한 명령을 사용하면 Nodejs의 올바른 현재 버전 5.x가 성공적으로 설치되었습니다.

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

제어 사례에 대한 이러한 결과는 문제가 있는 컴퓨터에서 yum을 구성하는 방식에 문제가 있음을 나타냅니다. 그렇다면 올바른 다운로드 URL을 생성하도록 yum을 구성하려면 해당 컴퓨터에 어떤 구체적인 변경 사항을 적용해야 합니까? 모든 것을 다른 가상 머신으로 포팅하는 것은 불합리합니다. 물론 이는 이 문제를 해결하기 위해 변경할 수 있는 yum 구성의 한두 줄에 불과합니다.

답변1

이는 캐시 문제인 것 같지만 무엇이 잘못되었는지 명확하지 않습니다. 채팅에서 포스터와 몇 가지 대화를 나눈 후 실행하여 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 기반 배포판에 대한 지식이나 경험이 부족하여 여기서 무엇이 잘못되었는지 말할 수 없으므로 더 이상 언급하지 않겠습니다.

답변2

이게 내가 해야 할 일이야...

먼저 EPEL에서 설치된 nodejs 패키지를 제거합니다.

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

Node 저장소에 사용된 번호 매기기 체계가 Nodejs를 EPEL 저장소의 패키지 대체품으로 제공하지 않는 것 같지만 이는 단지 추측일 뿐입니다.

답변3

yum설치하려는 버전이 아닌 구성된 저장소에서 사용 가능한 버전을 얻으려고 시도합니다.

공식적으로 제공되는 버전을 무시하는 패키지를 설치하면 종종 미묘한 방식으로 시스템이 충돌하게 됩니다. nodejs 저장소가 이 작업을 수행하려는 것 같습니다. 사용 가능한 항목, 타사 리포지토리가 제공하는 항목, 침해 방지를 위해 어떤 보호 장치가 마련되어 있는지 자세히 살펴보세요.

아마도 더 합리적인 해결책은 아마도 소스에서 직접 계정에 대한 패키지를 설치하는 것일 것입니다.

관련 정보