노드 패키지 관리자가 어떤 식 으로든 손상되었으므로 설치할 수 없습니다


13

npm update -gnodejs 앱 디렉토리에서 사용하기로 결정했을 때 오늘 문제가 발생했습니다 . 이것은 npm 에서 흔하고 비참한 문제가 발생했기 때문에 잘못된 결정이었습니다 .

해결책은 nodejs와 npm을 다시 설치하는 것입니다. 불행히도 npm을 사용하여 설치 sudo apt-get install npm하면 작동하지 않습니다.

터미널의 전체 오류는 다음과 같습니다.

Some packages could not be installed. This may mean that you have requested
an impossible situation or if you are using the unstable distribution that 
some required packages have not yet been created or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
   Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
   Depends: node-ansi but it is not going to be installed
   Depends: node-archy but it is not going to be installed
   Depends: node-block-stream but it is not going to be installed
   Depends: node-fstream (>= 0.1.22) but it is not going to be installed
   Depends: node-fstream-ignore but it is not going to be installed
   Depends: node-github-url-from-git but it is not going to be installed
   Depends: node-glob (>= 3.1.21) but it is not going to be installed
   Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
   Depends: node-inherits but it is not going to be installed
   Depends: node-ini (>= 1.1.0) but it is not going to be installed
   Depends: node-lockfile but it is not going to be installed
   Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
   Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
   Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
   Depends: node-gyp (>= 0.10.9) but it is not going to be installed
   Depends: node-nopt (>= 2.1.1) but it is not going to be installed
   Depends: node-npmlog but it is not going to be installed
   Depends: node-once but it is not going to be installed
   Depends: node-osenv but it is not going to be installed
   Depends: node-read but it is not going to be installed
   Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
   Depends: node-request (>= 2.25.0) but it is not going to be installed
   Depends: node-retry but it is not going to be installed
   Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
   Depends: node-semver (>= 2.1.0) but it is not going to be installed
   Depends: node-sha but it is not going to be installed
   Depends: node-slide but it is not going to be installed
   Depends: node-tar (>= 0.1.18) but it is not going to be installed
   Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

npm을 올바르게 설치하고 다시 실행하려면 어떻게해야합니까?

감사.

답변:


29

최신 정보

이 답변 아래의 William Entriken의 의견과 관련하여 우분투에 기본적으로 Node.js를 스냅 패키지로 설치하는 더 좋은 방법이 있습니다.

Node.js는 현재 지원되는 모든 Ubuntu 버전에서 스냅 패키지로 제공됩니다. Node.js에 따라 개발자는 현재 지원되는 하나 이상의 릴리스 중에서 선택하고 NodeSource에서 직접 정기적 인 자동 업데이트를받을 수 있습니다. Node.js 버전 6, 8, 9, 10, 11, 12 및 13은 현재 사용 가능하며 Snap Store는 Node.js 릴리스 후 몇 시간 또는 몇 분 내에 업데이트됩니다.

단일 명령으로 노드를 설치할 수 있습니다 (예 :

sudo snap install node --classic --channel 9/stable 

node예를 들어 다음 과 같은 명령으로 노드 스냅에 액세스 할 수 있습니다 .

$ 노드 -v  
v9.9.0

최신 버전의 npm이 노드 스냅의 일부로 설치됩니다. npm은 일반 쉘에서 노드 repl 외부에서 실행해야합니다. 노드 스냅을 설치 한 후 다음 명령을 실행하여 npm 업데이트 확인을 활성화하십시오.

sudo chown -R $ USER : $ (id -gn $ USER) / home / your-username /.config

대체 your-username자신의 이름과 위의 명령에. 그런 다음 실행 npm -v하여 npm 버전이 최신인지 확인하십시오. 예를 들어, npm이 최신인지 확인한 npm list yarn후 , 명령으로 yarn이라는 이미 설치된 패키지의 버전을 확인한 다음 명령으로 기존 실 패키지를 최신 버전으로 업데이트했습니다.npm update yarn

사용자는 다음과 같이 nvm (Node Version Manager)과 같은 추가 도구를 사용하지 않고도 언제든지 Node.js 버전간에 전환 할 수 있습니다.

sudo snap refresh node --channel=8/stable

사용자는 다음으로 전환하여 현재 Node.js 버전 12를 추적하는 최신 에지 채널에서 설치할 수있는 최신 버전의 Node.js를 테스트 할 수 있습니다.

sudo snap switch node --edge

이 방법은 업스트림 테스트 및 버그보고에 기꺼이 참여하려는 사용자에게만 권장됩니다.


원래 답변

현재 지원되는 모든 Ubuntu 버전에 최신 LTS 버전의 Node.js (nodejs) 및 Node.js (npm) 용 패키지 관리자를 설치하려면 터미널을 열고 다음 명령을 실행하십시오.

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

이 세 가지 명령을 복사하는 경우 두 번째 명령 끝에 하이픈을 무시하지 마십시오.

nodejs패키지는 포함 nodejs뿐만 아니라 바이너리를 npm설치할 필요가 없습니다, npm별도. 그러나 일부 npm패키지 (예 : 소스에서 빌드해야하는 패키지)가 작동하려면 build-essential패키지 를 설치해야 합니다.

sudo apt-get install build-essential  

LTS 계획

Node.js의 새로운 semver-major 릴리스는 master6 개월마다 삭감됩니다 . 새로운 짝수 버전 (예 : v6, v8, v10 등)이 4 월에 줄어 듭니다. 새로운 홀수 번호 버전 (예 : v5, v7, v9)은 10 월에 잘립니다.

새로운 홀수 번호의 주 릴리스가 중단되면 이전 짝수 번호의 주 버전이 장기 지원 계획으로 전환됩니다.

LTS 플랜이 적용되는 모든 주요 버전은 LTS 적용 범위에 들어간 날짜로부터 18 개월 동안 적극적으로 유지됩니다. 18 개월 동안 적극적으로 지원하면 주 버전은 12 개월 동안 "유지 관리"모드로 전환됩니다.

비 LTS 설치

2017 년 3 월 현재 Node.js의 최신 비 LTS 버전 (게시 시점 v8)을 설치하는 명령은 다음과 같습니다.

sudo apt-get remove nodejs npm ## remove existing nodejs and npm packages
sudo apt-get install curl  
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs  

Node.js LTS 일정

릴리스 LTS 상태 코드 이름 LTS 시작 유지 보수 시작 유지 보수 종료
6.x Active Boron 2016-10-18 2018 년 4 월 4 월
7.x LTS 없음              
8.x 활성탄 2017-10-31 2019 년 4 월 2019 년 12 월
9.x LTS 없음              
10.x Active Dubnium 2018 년 10 월 2020 년 4 월 2021 년 4 월  
11.x LTS 없음 2019-04-01 2019-06-30
12.x 2019-10-22 2021-04-01 2022-04-01
13.x LTS 없음 2020-04-20 2020-06-01


"sudo apt-get install -y nodejs"를 사용하여 나를 위해 일했습니다
Davinder Kumar

이 방법을 사용하려면 많은 당사자를 신뢰 한 다음 컴퓨터에 대한 전체 액세스 권한을 deb.nodesource.com에 제공해야합니다. deb.nodesource.com은 보안을 위해 콘텐츠 해시를 포함하도록 각 버전의 웹 사이트를 업데이트하지 않아도됩니다. 고맙지 만 사양 할게!
윌리엄 Entriken

@WilliamEntriken Node.js는 이제 curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -명령을 실행할 필요가없는 우분투의 스냅 패키지입니다 . 대신 Node.js를 스냅 패키지로 설치할 수 있습니다. Node.js 스냅 패키지 설치 지침이 포함 된 새 업데이트 섹션을 답변에 추가했습니다 .
karel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.