Ubuntu에서 노드 패키지 관리자를 사용하여 패키지를 설치할 수 없음
이름NodeJS 인터프리터 이름)node
의 )는 Ubuntu로 nodejs
이름이 다른 패키지와 충돌하기 때문입니다.제가 읽은 내용은 이렇습니다.데비안은 말합니다.
Node.js interpreter 명령의 업스트림 이름은 "node"입니다.데비안에서는 인터프리터 명령이 "nodejs"로 변경되었습니다.
이 작업은 네임스페이스 충돌을 방지하기 위해 수행되었습니다. 다른 명령은 "노드" 패키지의 ax25 노드와 같이 업스트림에서 동일한 이름을 사용합니다.
Node.js를 셸 명령으로 호출하는 스크립트는 "nodejs" 명령을 대신 사용하도록 변경해야 합니다.
nodejs를 사용하여 를 설치하는 합니다.npm
패키지 설치가 실패하고 다음 오류가 발생합니다.
sh: 1: node: not found npm WARN This failure might be due to the use of legacy binary "node" npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian
nodejs가 시스템에 이미 설치되어 있지만 인터프리터 이름이 다르다는 것을 npm이 이해하려면 어떻게 해야 합니까?
TL;DR:
sudo apt-get install nodejs-legacy
우선 상황을 조금 더 명확히 하겠습니다.2012년 여름에 Debian 유지 관리자들은 다른 패키지와 어떤 종류의 네임스페이스 충돌을 방지하기 위해 Node.js 실행 파일의 이름을 바꾸기로 결정했습니다.Debian Technical Committee는 하위 호환성을 깨뜨리기 때문에 매우 어려운 결정이었습니다.
다음은 데비안 메일링 리스트에 게재된 위원회 결의안 초안의 인용문입니다.
nodejs 패키지는 /usr/bin/node가 아닌 /usr/bin/nodejs를 제공하도록 변경되어야 합니다.패키지는 /usr/bin/node를 참조하는 Debian의 모든 패키지와 Breaks: 관계를 선언해야 합니다.
priority: /nodejs에로 /. /usr/bin/nodejs 파일 우선 순위: extra nodejs-legacy 패키지.에 대해서만 패키지에 할 수 . 패키지에 의존하거나 할 수 없습니다.
이 합니다.이 패키지는 노드 패키지와의 충돌: 관계도 선언합니다.<...>
2항은 OP의 이슈에 대한 실제 해결책입니다.OP는 symlink를 손으로 하는 대신 이 패키지를 설치하려고 시도해야 합니다.데비안 패키지 인덱스 웹사이트에 있는 이 패키지에 대한 링크입니다.
다음을 사용하여 설치할 수 있습니다.sudo apt-get install nodejs-legacy
.
개발자들이 를 채택하는 것에 , 는 나는 NPM 개이전채것는대에어만찾다못, 는생각니합나지했지정보도떤한발택들체자하를▁think▁iation나다▁the▁about는pm▁adopting▁by▁but니▁thing▁i▁any▁whole,ers생나합각pm▁n▁n.npm
패키지는 어느 시점에서 고정될 것이고,nodejs-legacy
진짜 유산이 됩니다.
노드를 nodejs에 연결해 보십시오.먼저 nodejs가 어디에 있는지 확인합니다.
whereis nodejs
그런 다음 노드를 nodejs로 소프트 링크합니다.
ln -s [the path of nodejs] /usr/bin/node
/usr/bin이 실행 경로에 있다고 가정합니다.그런 다음 명령행에 node 또는 npm을 입력하여 테스트할 수 있습니다. 이제 모든 것이 작동합니다.
NVM 또는 Nodejs 버전 관리자를 사용하여 Nodejs를 설치할 수도 있습니다. 버전 관리자를 사용하면 많은 이점이 있습니다.그들 중 하나는 당신이 이 문제에 대해 걱정할 필요가 없다는 것입니다.
지침:
sudo apt-get update
sudo apt-get install build-essential libssl-dev
필수 구성 요소 패키지가 설치되면 프로젝트의 GitHub 페이지에서 nvm 설치 스크립트를 풀다운할 수 있습니다.버전 번호는 다를 수 있지만 일반적으로 다음 구문을 사용하여 다운로드하여 설치할 수 있습니다.
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh
스크립트를 다운로드하여 실행합니다.는 소트어를홈디하의설다치니에 있는 홈 됩니다.~/.nvm
▁your에 할 것입니다.~/.profile
파일을 사용합니다.
nvm 기능에 액세스하려면 로그아웃했다가 다시 로그인해야 합니다. 또는 ~/.profile 파일의 소스를 사용하여 현재 세션에서 변경 사항을 인식할 수 있습니다.
source ~/.profile
이제 nvm을 설치했으므로 분리된 Node.js 버전을 설치할 수 있습니다.
설치에 사용할 수 있는 Node.js 버전을 확인하려면 다음을 입력합니다.
nvm ls-remote
. . .
v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.14
보시는 바와 같이, 이 문서 작성 시점의 최신 버전은 v0.11.14입니다.다음을 입력하여 설치할 수 있습니다.
nvm install 0.11.14
일반적으로 nvm은 가장 최근에 설치된 버전을 사용하도록 전환됩니다.다음을 입력하여 nvm에 방금 다운로드한 버전을 사용하도록 명시적으로 지시할 수 있습니다.
nvm use 0.11.14
nvm을 사용하여 Node.js를 설치하는 경우 실행 파일을 node라고 합니다.다음을 입력하여 셸에서 현재 사용 중인 버전을 볼 수 있습니다.
node -v
전체 튜토리얼은 여기에서 확인할 수 있습니다.
를 설치합니다.
nvm
처음 사용:curl https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash
실행 명령
source ~/.profile
이제 이것을 실행하면 설치된 패키지 또는 다른 버전의 패키지가 모두 표시됩니다.
nvm ls-remote
설치된 패키지는 녹색으로 표시됩니다.원하는 버전을 설치합니다.
nvm install 6.0.0
가 설치되지 않은 위치를 확인합니다.
which node
현재 버전 확인:
node -v n=$(which node); n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs-legacy
source ~/.profile
과 인된답결됨합과변승을 입니다.source ~/.profile
이전에 접힌 주석과 일부 정리 명령에서.대부분의 경우 다음과 같은 작업도 수행해야 합니다.sudo apt-get install npm
후에.
내 문제는 다음과 같이 해결되었습니다.
sudo apt-get remove node
sudo apt-get remove nodejs
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
alias node=nodejs
rm -r /usr/local/lib/python2.7/dist-packages/localstack/node_modules
npm install -g npm@latest || sudo npm install -g npm@latest
노드 버전 간에 쉽게 전환할 수 있도록 n을 좋아하기 때문에 사용하는 다른 접근 방식이 있습니다.
새 Ubuntu 시스템에 먼저 '시스템' 노드를 설치합니다.
curl -sL https://deb.nodesource.com/setup | sudo bash -
그런 다음 n개의 모듈을 전체적으로 설치합니다.
npm install -g n
시스템 노드가 먼저 설치되었기 때문에(위) 대체 시스템을 사용하여 n에서 제공하는 노드를 깨끗하게 가리킬 수 있습니다.먼저 대체 시스템에 노드에 대한 내용이 없는지 확인합니다.
update-alternatives --remove-all node
그런 다음 n에서 제공하는 노드를 추가합니다.
update-alternatives --install /usr/bin/node node /usr/local/bin/node 1
시스템에서 제공하는 다음 추가 노드(컬로 설치된 노드):
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 2
이제 대화형 메뉴를 사용하여 n이 제공하는 노드를 선택합니다(선택)./usr/local/bin/node
다음 명령으로 표시되는 메뉴에서 확인할 수:
update-alternatives --config node
지막으로마로으./usr/local/bin
PATH 우선순보높보다 PATH에서 가 더 높습니다./usr/bin
대체 시스템 노드를 사용하려면 다음 별칭을 만들어야 합니다(.svrc 또는 .zshrc에 입력). 그렇지 않으면 /usr/local/bin에 n이 설치된 노드가 항상 우선합니다.
alias node='/usr/bin/node'
이를 사용노버간전쉽을있수다습니전환게할제드여하▁versions로 노드 할 수 .n <desired node version number>
.
에서는 두 가지 모두 또는 Mint 17을 ).nodejs-legacy
패키지)가 성공하지 못했습니다.
결국 제게 효과가 있었던 것은 크리스 리아의 ppa를 사용한 것뿐입니다.
sudo apt-get purge node-*
sudo apt-get autoremove
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
이것은 노드 버전 10.37과 npm 1.4.28을 설치했습니다. 그 이후에 저는 전 세계적으로 패키지를 설치할 수 있었습니다.
다른 사람들이 이미 언급했듯이, 저는 노드나 어떤 개발 라이브러리를 설치할 때 "sudo apt-get"을 사용하지 않는 것을 제안할 것입니다.https://nodejs.org/dist/v6.9.2/ 에서 필요한 버전을 다운로드하고 사용자 환경을 설정할 수 있습니다.
노드 버전을 관리하기 위해 nvm 및 n과 같은 도구를 추천합니다.이러한 모듈을 전환하고 작업하는 것은 매우 편리합니다.https://github.com/creationix/nvm https://github.com/tj/n
또는 기본 bash를 작성하여 zip/tar를 다운로드하고 이동 폴더를 추출한 후 소프트 링크를 만듭니다.업데이트가 필요할 때마다 이전 소프트 링크에서 새 다운로드 버전을 가리키기만 하면 됩니다.제가 직접 만든 것처럼, https://github.com/deepakshrma/NodeJs-4.0-Reference-Guide/blob/master/nodejs-installer.sh 을 참조할 수 있습니다.
#Go to home
cd ~
#run command
#New Script
wget https://raw.githubusercontent.com/deepakshrma/NodeJs-4.0-Reference-Guide/master/nodejs-installer.sh
bash nodejs-installer.sh -v lts
#here -v or --version can be sepecific to 0.10.37 or it could be latest/lts
#Examples
bash nodejs-installer.sh -v lts
bash nodejs-installer.sh -v latest
bash nodejs-installer.sh -v 4.4.2
간단한 솔루션 제공
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash --
sudo apt-get install nodejs
setup_x.x 값을 setup_5.x와 같이 변경하여 버전을 지정할 수 있습니다.
시스템에서 경로 노드 js 바이너리를 탐지할 수 없습니다.
1.어느 노드
2. 그런 다음 노드를 nodejs에 연결합니다.
ln -s [the path of nodejs] /usr/bin/node
/usr/bin이 실행 경로에 있다고 가정합니다.그런 다음 명령행에 node 또는 npm을 입력하여 테스트할 수 있습니다. 이제 모든 것이 작동합니다.
사용 중인 노드 버전 제거
sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs
install nvm(노드 버전 관리자) https://github.com/creationix/nvm
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
이제 원하는 버전의 노드를 설치하고 버전 간에 전환할 수 있습니다.
/usr/sbin/node(ax25-node 패키지에 연결됨) 연결 해제를 수정한 다음 명령줄에서 이를 사용하여 nodejs에 대한 링크를 생성했습니다.
sudo ln -s /usr/bin/nodejs /usr/bin/node
karma와 같은 패키지는 nodejs 이름과 함께 작동하지 않기 때문에 karma 스크립트의 첫 줄을 nodejs에서 nodejs로 변경하지만 이 문제를 완전히 해결하는 것이 더 좋습니다.
저에게 수정 사항은 node* 패키지와 npm 패키지를 제거하는 것이었습니다.
그런 다음 다음 새로 설치합니다.
sudo apt-get install autoclean
sudo apt-get install nodejs-legacy
npm install
설치 프로그램에 문제가 없습니다.
nodejs를 node로 바꾸거나 경로를 /usr/bin/nodejs에서 /usr/bin/node로 변경합니다.
노드가 제대로 설치되지 않았습니다. 먼저 노드를 제거한 후 다시 설치해야 합니다.노드를 설치하는 것이 http://array151.com/blog/nodejs-tutorial-and-set-up/ 에 도움이 될 수 있습니다.
그런 다음 패키지를 쉽게 설치할 수 있습니다.패키지를 설치하는 데 도움이 될 수 있습니다.
http://array151.com/blog/npm-node-package-manager/
링크를 만들 수 있습니다.ln -s nodejs
에 매듭짓다./usr/bin
이것이 당신의 문제를 해결하기를 바랍니다.
node -v // first check it's install or not
npm -v
sudo apt install npm
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash –
sudo apt-get install nodejs
그럼 체크
node -v or node –version
npm -v or npm –version
또는 패키지를 제거할 수 있습니다.실행보다 json 파일 / node_message 잠금npm i
잘 되길 바랍니다.
단계: https://www.geeksforgeeks.org/installation-of-node-js-on-linux/
동일한 문제에 직면하여 아래 단계가 저에게 효과가 있었습니다.
시스템에 curl을 설치한 다음 NVM 설치 관리자 스크립트를 실행합니다.
sudo apt install curl
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
환경 로드
source ~/.profile
지원되는 버전의 Node.js를 설치합니다.
nvm install 16.15.1
설치 확인
node -v
언급URL : https://stackoverflow.com/questions/21168141/cannot-install-packages-using-node-package-manager-in-ubuntu
'itsource' 카테고리의 다른 글
src/**/*.graphql 포인터에 대한 GraphQL 유형 정의를 찾을 수 없습니다. (0) | 2023.06.21 |
---|---|
MongoDB 셸에서 쿼리 업데이트 (0) | 2023.06.21 |
팬더와 함께 기둥에 비닝하기 (0) | 2023.06.16 |
레일에서 루비 줄 바꿈 없이 콘솔에 "puts"를 사용하려면 어떻게 해야 합니까? (0) | 2023.06.16 |
Javascript를 사용한 터치 스크린 장치 (0) | 2023.06.16 |