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"
노드 소스 위치를 설정하기 위한 터미널 출력은 다음과 같습니다.
[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 저장소가 이 작업을 수행하려는 것 같습니다. 사용 가능한 항목, 타사 리포지토리가 제공하는 항목, 침해 방지를 위해 어떤 보호 장치가 마련되어 있는지 자세히 살펴보세요.
아마도 더 합리적인 해결책은 아마도 소스에서 직접 계정에 대한 패키지를 설치하는 것일 것입니다.