安装NPM进入主目录分发包的NodeJS(Ubuntu的)(Install NPM into hom

2019-06-23 11:36发布

我想用Node.js的分发包(或克里斯- LEA PPA的更新的版本),但安装NPM到我的主目录。

这似乎是挑剔的,但它是多语种/ github上,使用开发人员在Linux下安装语言运行时/库的环境中一个非常地道的方式:发行包运行时,每用户环境中的第三方库(见的virtualenv,RVM - RVM还将建设红宝石你,如果你想)。 如果有必要,我将建立节点在本地,它是由于节点皮塔正在成为很多项目的偶然发展的需要。

  • 有关安装节点+ NPM到主目录

Answer 1:

NPM将安装本地包到自己的项目了,但我还是喜欢保持系统从我的操作系统中的文件了。 以下是我建议compartmentalizing包的NodeJS:

通过克里斯 - LEA PPA安装和的NodeJS NPM。 然后,我设置了一个包根在我的主目录来保存节点“全球”套餐:

 $ NPM_PACKAGES="$HOME/.npm-packages"
 $ mkdir -p "$NPM_PACKAGES"

设置NPM其全球软件包安装到使用此目录:

 $ echo "prefix = $NPM_PACKAGES" >> ~/.npmrc

配置PATH和MANPATH加入看到你的$ NPM_PACKAGES前缀的命令下,以你的.zshrc / .bashrc中:

# 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


Answer 2:

杰克的答案被张贴在2012年,虽然有用它引用克里斯Lea的Node.js的购电协议自2015年3月谁是不再更新。

下面是我用来安装的Node.js和NPM在我的主目录的步骤:

与安装Node.js的NVM (没有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(当前LTS为2017年五月):

     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 

改变故宫的默认目录到本地一个:

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并没有与您的系统文件搞乱。



Answer 3:

发表只是杰克的解决方案是巨大的。 然而,由于与NPM> 1.4.10中的错误,它可能无法正常工作。 (见本和本 )

虽然错误得到解决,您可以通过以下步骤这个降级到1.4.10 NPM:

  1. 注释前缀线在$ HOME / .npmrc
  2. 运行sudo npm install -g npm@1.4.10
  3. 确保安装NPM的正确版本( npm --version
  4. 取消对前缀线在$ HOME / .npmrc
  5. 继续在你的主文件夹安装全局的包!


Answer 4:

因为Python已经做了伟大的工作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

自述是相当不错的: https://github.com/ekalinin/nodeenv



Answer 5:

我用@刚刚杰克解了一段时间,发现NVM更容易安装。 此外,它更强大的解决方案,使安装和使用不同版本nodejs

在Ubuntu 14.04或16.04:

  1. 建筑安装必备软件包nodejs

     sudo apt-get update sudo apt-get install build-essential libssl-dev 
  2. 安装NVM :

     curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash 

    如果新的NVM将可用的版本,你可以找到实际的安装命令NVM网站。

  3. nvm安装程序会添加启动脚本到~/.bashrc ,所以你需要或者重新打开终端运行它,还是要做到:

     source ~/.bashrc 
  4. 现在你可以安装任何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 


Answer 6:

为了扩大对刚刚杰克和user1533401提供了答案:我无法降级,因为我使用共享主机和节点安装在系统目录中。 这也是为什么我有改变,如果我想要它做的是在那里NPM全球安装脚本的目录。 对于那些在同一条船上,这里是一个又一个临时的解决办法,我发现作品:

npm install -g --prefix=$(npm config get prefix) <package>

该缺陷是,NPM不读您的每个用户配置文件,但每次安装全局脚本修复时间指定它。 找到这里 。



Answer 7:

如前所述已经在这里和这里

npm config set prefix ~
echo export PATH=\$PATH:\~/bin >> ~/.bashrc
. ~/.bashrc


文章来源: Install NPM into home directory with distribution nodejs package (Ubuntu)
标签: node.js npm