배포 Node.js 패키지 (또는 최신 릴리스의 경우 chris-lea ppa )를 사용하고 싶지만 내 홈 디렉토리에 NPM을 설치합니다.
이것은 까다로워 보일 수 있지만 다중 언어 / github를 사용하는 개발자가 Linux에서 언어 런타임 / 라이브러리 환경을 설정하는 매우 관용적 인 방법입니다. 런타임 용 배포 패키지, 사용자 별 환경의 타사 라이브러리 (virtualenv, RVM-RVM 참조) 원한다면 Ruby도 빌드 할 것입니다). 필요한 경우 로컬에서 노드를 구축 할 것이지만 노드가 많은 프로젝트에서 부수적 인 개발 요구 사항이되고 있으므로 PITA입니다.
답변
NPM은 이미 프로젝트에 로컬 패키지를 설치하지만 여전히 운영 체제 파일에서 시스템을 멀리하고 싶습니다. Nodejs 패키지를 구획화하는 방법은 다음과 같습니다.
chris-lea PPA를 통해 Nodejs 및 NPM을 설치합니다. 그런 다음 노드 “글로벌”패키지를 보유하기 위해 homedir에 패키지 루트를 설정합니다.
$ NPM_PACKAGES="$HOME/.npm-packages"
$ mkdir -p "$NPM_PACKAGES"
글로벌 패키지 설치에이 디렉토리를 사용하도록 NPM을 설정하십시오.
$ echo "prefix = $NPM_PACKAGES" >> ~/.npmrc
.zshrc / .bashrc에 다음을 추가하여 $ NPM_PACKAGES 접두사에서 명령을 볼 수 있도록 PATH 및 MANPATH를 구성합니다.
# NPM packages in homedir
NPM_PACKAGES="$HOME/.npm-packages"
# Tell our environment about user-installed node tools
PATH="$NPM_PACKAGES/bin:$PATH"
# Unset manpath so we can inherit from /etc/manpath via the `manpath` command
unset MANPATH # delete if you already modified MANPATH elsewhere in your configuration
MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
# Tell Node about these packages
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
이제이 작업을 수행 할 때 npm install -g
, NPM은에 라이브러리를 설치합니다 ~/.npm-packages/lib/node_modules
, 그리고으로 실행 도구를 연결 ~/.npm-packages/bin
하여에 인 PATH
.
npm install -g
평소처럼 사용하십시오 .
[justjake@marathon:~] $ npm install -g coffee-script
... (npm downloads stuff) ...
/home/justjake/.npm-packages/bin/coffee -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/coffee
/home/justjake/.npm-packages/bin/cake -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/cake
coffee-script@1.3.3 /home/justjake/.npm-packages/lib/node_modules/coffee-script
[justjake@marathon:~] $ which coffee
/home/justjake/.npm-packages/bin/coffee
답변
Jake의 답변은 2012 년에 게시되었으며 유용하지만 2015 년 3 월 이후 더 이상 업데이트되지 않는 Chris Lea의 Node.js PPA를 참조합니다.
내 홈 디렉토리에 Node.js 및 npm을 설치하는 데 사용하는 단계는 다음과 같습니다.
nvm을 사용 하여 Node.js를 설치합니다 ( sudo
필수 없음 ).
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
source ~/.bashrc
nvm install 7
npm install -g npm # update npm
이제 당신은 install -g
없이 할 수 sudo
있고 모든 것이 들어갑니다.~/.nvm/
또는 nvm없이 Node.js를 설치합니다 ( 공식 지침 ) :
Node.js 설치
-
Node.js v6 (2017 년 5 월 현재 LTS) :
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y nodejs
-
Node.js v7 :
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - sudo apt-get install -y nodejs
npm의 기본 디렉토리를 로컬 디렉토리로 변경합니다.
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH="$HOME/.npm-global/bin:$PATH" # ← put this line in .bashrc
source ~/.bashrc # if you only updated .bashrc
또는 .npm-global
선택한 디렉토리로 대체하십시오 .
npm을 업데이트하고 $HOME
디렉토리에 설치되어 있는지 확인하십시오 .
$ npm install npm -g
/home/<username>/.npm-global/bin/npm -> /home/<username>/.npm-global/lib/node_modules/npm/bin/npm-cli.js
/home/<username>/.npm-global/lib
└─┬ npm@3.10.6
├─┬ glob@7.0.5
│ └── minimatch@3.0.2
├── npm-user-validate@0.1.5
└── rimraf@2.5.3
이제 시스템 파일을 엉망으로 install -g
만들지 않고도 할 수 sudo
있습니다.
답변
Just Jake가 게시 한 솔루션은 훌륭합니다. 그러나 npm> 1.4.10의 버그로 인해 예상대로 작동하지 않을 수 있습니다. ( 이것 과 이것 참조 )
버그가 해결되는 동안 다음 단계에 따라 npm 1.4.10으로 다운 그레이드 할 수 있습니다.
- $ HOME / .npmrc의 접두사 줄을 주석으로 처리하십시오.
- 운영
sudo npm install -g npm@1.4.10
- 올바른 버전의 npm이 설치되었는지 확인 (
npm --version
) - $ HOME / .npmrc에서 접두사 줄의 주석 처리를 제거하십시오.
- 홈 폴더에 글로벌 패키지 설치를 계속하십시오!.
답변
파이썬은 이미 좋은 일을하기 때문에 virtualenv
, 내가 사용 nodeenv
. 와 비교 nvm
하여 동일한 노드 버전에 대해 여러 환경을 만들 수 있습니다 (예 : 노드에 대해 두 개의 환경 0.10
이지만 패키지 세트가 서로 다름).
ENVNAME=dev1
# create an environment
python -m virtualenv ${ENVNAME}
# switch to the newly created env
source ${ENVNAME}/bin/activate
# install nodeenv
pip install nodeenv
# install system's node into virtualenv
nodeenv --node=system --python-virtualenv
readme는 꽤 좋습니다 :
https://github.com/ekalinin/nodeenv
답변
얼마 동안 @ just-jake 솔루션 을 사용 했으며 nvm 이 설정하기가 더 쉽다는 것을 알았습니다 . 또한 다양한 버전의 .NET Framework를 설치하고 사용할 수있는 훨씬 강력한 솔루션입니다 nodejs
.
Ubuntu 14.04 또는 16.04 :
-
빌드를위한 필수 패키지 설치
nodejs
:sudo apt-get update sudo apt-get install build-essential libssl-dev
-
nvm 설치 :
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
최신 버전의 nvm을 사용할 수있는 경우 nvm 사이트 에서 실제 설치 명령을 찾을 수 있습니다.
-
nvm
설치 프로그램은에 부트 스트랩 스크립트를 추가~/.bashrc
하므로 실행하려면 터미널을 다시 열거 나 다음을 수행해야합니다.source ~/.bashrc
-
이제 원하는
nodejs
버전을 설치하고 버전간에 전환 할 수 있습니다.사용
nvm ls-remote
가능한nodejs
버전 을 나열하는 데 사용 합니다.예를 들어
nodejs
v4.2.4 를 설치하려면 다음을 수행하십시오.# install v4.2.4 nvm install v4.2.4 # use nodejs v4.2.4 in the current terminal session nvm use v4.2.4 # use v4.2.4 by default in new terminal session nvm alias default v4.2.4
답변
Just Jake와 user1533401이 제공 한 답변을 확장하려면 : 공유 호스팅을 사용하고 노드가 시스템 디렉토리에 설치되어 있으므로 다운 그레이드 할 수 없습니다. 이것이 내가 원한다면 npm이 전역 스크립트를 설치하는 디렉토리를 변경 한 이유이기도합니다. 같은 보트에있는 사람들을 위해 내가 찾은 또 다른 임시 수정 사항이 있습니다.
npm install -g --prefix=$(npm config get prefix) <package>
버그는 npm이 사용자 별 구성 파일을 읽지 않지만 전역 스크립트를 설치할 때마다 지정하면 문제가 해결된다는 것입니다. 여기 에서 찾았 습니다 .