Ubuntu 16.04에 노드 6.x를 설치하면 실제로 노드 4.2.6이 설치되는 이유는 무엇입니까?


78

다음은 Ubuntu 16.04에 노드를 설치하는 단계입니다.

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs 
sudo apt-get install -y npm

공식적인 지침은 다음과 같습니다.

https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

이렇게 한 후 running nodejs --version은을 반환합니다 v4.2.6.

내가 사용 setup_6.x하면서 시작 버전 6이 설치 되었다고 가정 했습니까?

아마 setup_6.x이어야 한다고 생각 setup_6.2.1했지만 그 페이지는 404를 반환합니다.

https://deb.nodesource.com/setup_6.x (페이지가 있습니다)

https://deb.nodesource.com/setup_6.2.1(404를 반환)

Ubuntu 16.04에 최신 안정 버전의 노드를 어떻게 설치합니까?

편집하다:

다음은 실행 후 결과입니다 sudo apt-get install -y nodejs.

sudo apt-get install -y nodejs 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gyp libboost-python1.58.0 libjs-inherits libjs-node-uuid libjs-underscore
  libssl-dev libssl-doc libuv1-dev linux-headers-4.4.0-18
  linux-headers-4.4.0-18-generic linux-headers-4.4.0-21
  linux-headers-4.4.0-21-generic linux-image-4.4.0-18-generic
  linux-image-4.4.0-21-generic linux-image-extra-4.4.0-18-generic
  linux-image-extra-4.4.0-21-generic linux-signed-image-4.4.0-18-generic
  linux-signed-image-4.4.0-21-generic python-configobj python-pycurl
  python-pyexiv2 python-pyexiv2-doc
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  nodejs
0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade.
Need to get 0 B/3,162 kB of archives.
After this operation, 13.2 MB of additional disk space will be used.
Selecting previously unselected package nodejs.
(Reading database ... 329473 files and directories currently installed.)
Preparing to unpack .../nodejs_4.2.6~dfsg-1ubuntu4_amd64.deb ...
Unpacking nodejs (4.2.6~dfsg-1ubuntu4) ...
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Registering documents with scrollkeeper...
Processing triggers for man-db (2.7.5-1) ...
Setting up nodejs (4.2.6~dfsg-1ubuntu4) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode

편집하다:

결과 apt-cache policy nodejs:

apt-cache policy nodejs
nodejs:
  Installed: 4.2.6~dfsg-1ubuntu4
  Candidate: 4.2.6~dfsg-1ubuntu4
  Version table:
 *** 4.2.6~dfsg-1ubuntu4 500
        500 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status

apt-cache policy nodejs질문 의 출력 결과를 편집본으로 포함 시키십시오.
토마스 워드

시스템이 NodeJS 4.x에서 가져온 사실은 잘못된 스크립트를 실행했거나 리포지토리가 시스템에 올바르게 추가되지 않았 음을 의미합니다. 링크하는 페이지에 설명 된 정확한 단계를 사용하여 최신 설치를 얻을 수있었습니다. 여러 가지 문제가있을 수 있습니다. apt-cache데이터 를 제공 하여 컴퓨터에 repos에있는 내용이 있는지 확인할 수 있으면 추가 도움을받을 수 있습니다.
토마스 워드

@ThomasW. -게시 할 데이터가 추가되었습니다.
user1063287 2016 년

1
업데이트 된 데이터에 감사드립니다. 어떤 이유로 든 스크립트가 수행하지 않은 것처럼 보입니다. 아래의 답변에서 이것이 사실이며 스크립트가 수행하는 작업을 수행하는 '수동'방법에 대해 자세히 설명합니다. 이를 사용하여 NodeJS에서 최신 버전을 얻을 수 있습니다. 스크립트만큼 훌륭하고 쉽지는 않지만 실제로 스크립트가 핵심에서 수행하는 작업입니다.
토마스 워드

1
@pipe 고맙게도 나처럼 파괴 가능한 VM에서 스크립트를 실행하는 사람들이있어서 우리가하는 일을 볼 수 있습니다. 이것이 제가 답변에서 지시 사항을 도출 한 방법이므로 '스크립트'가 수동으로 수행하는 작업을 수행 할 수 있습니다.
토마스 워드

답변:


136

핵심 이유는 설정 스크립트가 올바르게 실행되지 않았기 때문입니다. 따라서이를 지원하는 OP의 업데이트 된 데이터 덕분에 NodeSource 리포지토리의 데이터 apt는 스크립트에 의해 올바르게 구성되지 않았으므로 볼 수 없었 습니다.

따라서 스크립트가 배포를 찾지 못했거나 리포지토리를 구성 할 때 엉망이되거나 네트워크 중단이 발생했거나 중단되고 작업을 수행하지 않은 수천 가지 이유가있을 수 있습니다.

버전 4.x이 설치 되고 있다는 사실 은 스크립트가 제대로 작동하지 않았기 때문에 스크립트에 문제가있는 것은 아닙니다. 이것은 우리가 잠재적으로 더 어려운 방법으로해야한다는 것을 의미합니다.

지적해야합니다 : 스크립트는 실제로 설치를하지 않습니다-모든 데비안 / 우분투 버전을 결정하고 데이터를 가져 오기 위해 저장소를 구성하기 만하면됩니다. 설치 부분은 실제로 sudo apt-get install수동으로 실행 한 단계입니다.


스크립트를 사용하는 대신 스크립트를 사용하여 구식 방식으로 작업을 수행 할 수 있습니다. 직접 직접 저장소 구성을 설정하고 NodeJS를 설치하십시오.

이 작업을 수행하는 수동 방법은 다음과 같습니다. 기본적으로 스크립트가 수행하는 방식입니다 (4 단계 제외, 정확한 버전 데이터를 얻는 것).

  1. 새 파일을 작성하십시오. /etc/apt/sources.list.d/nodesource.list

    을 사용하여이 파일을 만들어야 sudo하지만 파일을 만들 때는 다음과 같이 입력하십시오.

    deb https://deb.nodesource.com/node_6.x xenial main
    deb-src https://deb.nodesource.com/node_6.x xenial main
    

    그런 다음 파일을 저장하십시오. (교체 node_6.xnode_7.x또는 node_8.x새로운 노드 버전 등)

  2. 저장소에 대한 Nodesource에서 GPG 서명 키를 다운로드하십시오 . 그렇지 않으면, 당신은 얻을 수 NO_PUBKEY와 오류 apt-get update(사용하는 wget경우이 명령을 curl설치하지 않은, 어느 쪽도 아니가 설치되어있는 경우, 그 중 하나를 설치) :

    curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
    
  3. 수동으로 실행하십시오sudo apt-get update .

    그러면 노드 소스 리포지토리의 데이터가 새로 고쳐져 apt최신 버전이 존재합니다.

    당신이 얻을 경우 NO_PUBKEYGPG 오류를, 다음 2 단계로 되돌아갑니다

  4. apt-cache policy nodejs출력을 확인하십시오 .

    이것은 스크립트에 의해 수행되지는 않지만, 출력에서 ​​이와 같은 내용을 나타내는 항목이 있는지 확인하려고합니다 (버전 문자열로 6.x를 사용하지 않는 경우 버전이 다를 수 있음). 노드 소스를 통해 제공되는 최신 버전 번호가 있다는 점에주의하십시오.

    Version table:
        6.2.1-1nodesource1~xenial1 500
           500 https://deb.nodesource.com/node_6.x xenial/main amd64 Packages
        4.2.6~dfsg-1ubuntu4 500
           500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
    

    이와 같은 항목이 표시되지 않고 4.2.6 만 표시되면 다시 시작하십시오. 그렇지 않으면 계속하십시오.

  5. nodejs바이너리를 설치하십시오 . 시스템에서 6.x를 사용할 수 있음을 확인 했으므로 설치할 수 있습니다.sudo apt-get install nodejs

  6. nodejs --version이제 v6.2.1출력에 표시 되거나 비슷 해야합니다 ( v6.버전 6 부터 시작하는 한 6 이상 버전이지만 4.2.6이 아닌 경우 버전 번호가 더 높을 수 있음) 가야한다).


4
이것을 T에 따르고 모든 점이 설명 된 행동과 일치합니다. 대단히 감사합니다.
user1063287

1
천만에요! 스크립트가 작동하지 않으면 다른 사람들에게 도움이되기를 바랍니다. 최신 NodeJS를 사용하십시오!
토마스 워드

아, 그래서 '나는 내가 생각했을 때 실제로 노드 6이없는 이유입니다 및 프로그램은 내가 버전 6. 감사를 필요로 불평!
고양이

고마워요, 훌륭하게 작동했습니다. 내 /etc/apt/sources.list.d/nodesource.list에서 비활성화 된 것에 대한 의견이 있음을 알았 습니다. 이전에 0.x 이전 버전이 있었고 노드 -v와 함께 4.x였습니다. 좋은 명확한 지침.
DaveStSomeWhere

1
컬은 기본적으로 설치되어 있지 않은 점을 감안, 대안은 wget 사용하는 것입니다wget -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
gerardw

38

이전 버전의 노드가있었습니다. 내가해야 할 일은 오래된 것을 제거하는 것입니다.

sudo apt-get purge nodejs npm

그런 다음 v=6각 버전에 필요한대로 6 을 7, 8, 9로 바꾸십시오 ( 공식 설치 지침 참조 ).

v=6
curl -sL https://deb.nodesource.com/setup_$v.x | sudo -E bash -

(컬이 설치되어 있는지 확인하십시오.)

그리고 마지막으로

sudo apt-get install -y nodejs

붐, 최신 버전의 노드.


4
또는 https://deb.nodesource.com/setup_7.x노드 v7의 경우.
Ryenus

2
광산은 여전히 ​​v4.2.6을 설치합니다
Freek Nortier

1
@FreekNortier Linux Mint 18에서도이 문제가 발생했습니다 sudo apt-get install python-software-properties. 제거 및 실행 후 버전 11을 설치할 수있었습니다 . tecadmincodebind 에서이 제안을 찾았 습니다 .

4

우분투 16.04.2 버전 사용자의 경우 (토마스 포스트에서 약간 변경되어 고마워합니다)

1. 소프트웨어 업데이터를 엽니 다

2. 설정

3. 다른 소프트웨어

4. 소스를 추가하되 나중에 모든 새로운 소스 옵션을 선택해야합니다.


deb https://deb.nodesource.com/node_6.x xenial main
deb-src https://deb.nodesource.com/node_6.x xenial main

5. 재 장전

6.sudo apt-get update

7. apt-cache policy nodejs소스가 완료 설정 인 경우 // 새 버전 표를 얻을 확인

8.sudo apt install nodejs

9.nodejs --version

지금은 모두 설정되었습니다 .......

경고 : 업데이터 패널에서 nvidia 카드의 Linux 기본 드라이버를 변경하지 마십시오 .... 시스템이 다운됩니다 ....


v4.2.6을 설치합니다.
Prashant Prabhakar Singh

좋은! 나를 위해 일했다
ejaenv

3

나는 같은 문제가 있었다. 그러나 필자의 경우 curl 명령을 업그레이드해야했습니다. -S 옵션으로 실행하면 문제를 확인할 수 있습니다.

curl -s -S https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -

어떤 문제를 보여

curl: (1) Protocol "https" not supported or disabled in libcurl
gpg: no valid OpenPGP data found.

그래서 다음을 실행 하여이 문제를 해결했습니다.

sudo apt-get install curl
sudo apt autoremove
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs

문제를 해결
SadeepDarshana

1

@Thomas Ward를 추가하면 https URL을 사용하여 nodejs 8.x를 설치하는 데 문제가 있거나 코드를 계속 설치하면 인증서 오류를 표시하여 v4.2.6을 설치합니다. 아래 줄에 nodesource.list를 추가하십시오.

deb http://deb.nodesource.com/node_8.x xenial main
deb-src http://deb.nodesource.com/node_8.x xenial main

다음 단계 : 실행

sudo curl -sL http://deb.nodesource.com/setup_8.x | sudo -E bash -

그때

sudo apt-get install -y nodejs

업데이트 된 nodejs 버전과 npm 버전을 설치하여 Ubuntu 16.04 LTS에 대한 내 문제를 해결함으로써 문제를 해결할 것입니다 ...


0

이 링크를 찾았으므로 Nodejs8____https : //www.ubuntuupdates.org/ppa/nodejs_7.x 설치에 도움이됩니다. 그 줄에서 Nojs8https에 가입해야했기 때문에 두 개 이상의 링크를 게시하려면 레벨 2가되어야했기 때문입니다. 나는 그것이 무작위이지만 아무것도 생각합니다.

설치하기 전에 다음 명령을 실행했습니다 : apt-get remove --purge version nodejs

설치된 버전이 없는지 확인하려면 apt-cached policy nodejs 및 / 또는 nodejs --version을 실행하십시오.

7을 8로 변경하여 Node js 8을 설치할 수 있었고 버전 8.1.3으로 끝났습니다. 이를 위해 위에서 게시 한 페이지에있는 명령을 실행했지만 어쨌든 다음과 같은 명령이 있습니다.

다음을 사용하여 저장소 키를 다운로드하십시오.

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

그런 다음 저장소를 설정하십시오.

sudo sh -c "echo deb https://deb.nodesource.com/node_7.x zesty main \ > /etc/apt/sources.list.d/nodesource.list"

sudo apt-get update

sudo apt-get install nodejs

노드 js 8을 원한다면 해당 명령 행에서 숫자 7을 8과 voila로 변경할 수 있습니다!


0

버전 8 에 대한 https://github.com/nodesource/distributions 의 지침을 따르려고 시도했지만 작동하지 않았습니다. 브라우저에서 직접 https://deb.nodesource.com/setup_8.x를 방문 하여 스크립트를 내 시스템 nodejs.sh 의 파일에 복사하여 붙여 넣었 습니다 . 그런 다음 다음 명령을 실행했습니다.

sudo -E bash nodejs.sh
apt-cache policy nodejs
sudo apt-get install nodejs

apt-cache 명령은 8을 선호하는 두 가지 버전으로 표시되었습니다. 나중에 설치 파일을 삭제할 수 있습니다. curl 명령이 스크립트를 올바르게 표시했기 때문에 파일을 로컬로 복사하는 것이 왜 도움이되었는지 확실하지 않습니다.


0

안녕하세요, Ubuntu 16이 있으면이 지침을 시도하십시오. 이 과정에서 요청이있을 때마다 계정 비밀번호를 제공하십시오.

  1. sudo su -c "echo 'deb https://deb.nodesource.com/node_8.x xenial main'>> /etc/apt/sources.list.d/nodesource.list"

  2. sudo su -c "echo 'deb-src https://deb.nodesource.com/node_8.x xenial main'>> /etc/apt/sources.list.d/nodesource.list"

  3. sudo apt-get 업데이트

  4. apt-cache policy nodejs 나열된 버전에 노드 8이 있는지 확인하십시오.

  5. sudo apt-get 설치 nodejs

  6. nodejs -v 설치된 노드 버전을 확인하십시오.

이것은 시스템에 nodejs 버전 8을 성공적으로 설치합니다. 다른 버전을 원하면 1 단계와 2 단계에서 버전을 변경하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.