5.x
CentOS 7 서버에서 버전 을 설치하려고 하는데 Node.js
어떤 이유로 계속 yum
버전을 설치하려고 시도하고 다운로드 사이트 에서 0.x
버전을 찾을 수 없으면 오류가 반환됩니다 . 오류는 버전 파일 이름을 버전 URL과 연결하고 있음을 나타냅니다. 나는 이것이 CentOS 7 시스템 의 구성에 잘못된 점이 있다고 가정합니다 .0.x
5.x
yum
0.x
5.x
yum
버전 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"
nodesource 위치를 설정하기 위한 터미널 출력은 다음과 같습니다.
[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을 구성하는 방식에 문제가 있음을 나타냅니다. 그렇다면 yum이 올바른 다운로드 URL을 생성하도록 구성하려면 문제가 있는 시스템에 어떤 구체적인 변경이 필요합니까? 모든 것을 다른 VM으로 포팅하는 것은 합리적이지 않습니다. 확실히 이것은 이 문제를 해결하기 위해 변경할 수 있는 어딘가에 있는 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
내 의심은 nodejs를 EPEL 저장소의 패키지 대체품으로 표시하지 않는 노드 저장소에 사용된 번호 매기기 체계에 뭔가가 있다는 것입니다. 그러나 그것은 단지 추측일 뿐입니다.
답변3
yum
설치하려는 버전이 아닌 구성된 리포지토리에서 사용 가능한 버전을 얻으려고 시도합니다.
공식적으로 제공되는 버전을 무시하는 패키지를 설치하는 것은 종종 미묘한 방식으로 시스템을 지치게 하는 확실한 방법입니다. 귀하의 nodejs 저장소가 바로 그 일을 하려고 하는 것 같습니다. 사용 가능한 것이 무엇인지, 타사 저장소가 제공하는 것이 무엇인지, 손상을 방지하기 위해 어떤 보호 장치가 마련되어 있는지 좀 더 주의 깊게 살펴보세요.
아마도 더 건전한 해결책은 소스에서 직접 귀하의 계정에 대한 패키지를 설치하는 것입니까?