NPM 无法全局安装 browserify
NPM unable to install browserify globally
我无法全局安装 Browserify(或任何东西)。我可以毫无问题地进行非全局安装。
背景: 我是 运行 CentOS 6.6 在代理后面的公司网络上。我使用 "yum" 作为 root 安装了 Node.js。
$ sudo yum -y install nodejs
和 npm(由于某些原因未与 nodejs 一起安装):
$ sudo yum -y install nodejs npm
这将 Node.js 和 NPM 安装到目录:
$ which node
/usr/bin/node
$ which npm
/usr/bin/npm
并将"node_modules"放在/usr/lib/node_modules下。
就像我说的,我在代理后面,所以我将 "proxy" 和 "https-proxy" 配置属性设置为正确的值。
当我尝试安装 browserify 时(如 their site 中所述)
$ npm install -g browserify
我收到一个错误
...npm ERR! stack Error: EACCES, mkdir '/usr/lib/node_modules/browserify'...
所以我 "chowned" /usr/lib/node_modules 目录让我可以访问 node_modules:
中的 mkdirs
$ sudo chown -R $USER /usr/lib/node_modules
错误:
现在,当我尝试全局安装 browserify 时,出现了不同的错误:
npm ERR! Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js'
npm ERR! { [Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '../lib/node_modules/browserify/bin/cmd.js' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Linux 2.6.32-431.el6.x86_64
npm ERR! command "node" "/usr/bin/npm" "install" "-g" "browserify"
npm ERR! cwd /usr/lib/node_modules
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.3.6
npm ERR! path ../lib/node_modules/browserify/bin/cmd.js
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /usr/lib/node_modules/npm-debug.log
npm ERR! not ok code 0
是否需要更改任何特殊内容以允许 NPM 创建符号链接?
此外,我尝试了 运行 以 root 身份安装,但它一直停留在那里,直到最终超时:
...npm ERR! network tunneling socket could not be established, cause=read ECONNRESET...
我最近遇到了这个问题。全局模块应该作为 root (sudo) 安装。我的进程失败的地方(与你的类似)是 运行 将其作为 root 时的超时。这是因为 NPM 使用 "git" 协议。要安装软件包,我必须 运行 我的 git 配置中的以下内容。
git config --global url."https://".insteadOf git://
这解决了我的问题。
我终于可以使用 npm 全局安装模块了。
我做了什么:
我必须使用 sudo 并在几个地方设置 proxy/https 代理。我听从了这个博客的建议:http://wil.boayue.com/blog/2013/06/14/using-npm-behind-a-proxy/.
我在 ~/.bashrc 中设置了以下变量并导出了它们:
- http_proxy
- https_proxy
- npm_config_proxy
- npm_config_https_proxy
我还使用 visudo 将它们添加到 env_keep(因此它们可用于 sudo)。
然后我使用以下方法在 npm 上设置代理和 https-proxy 配置设置:
$ npm config set proxy http://<proxy>:<port>
$ npm config set proxy http://<proxy>:<port>
我不确定是否所有这些都是必要的,但它对我有用。另外,有一次我意识到我的代理不正确,不得不在几个地方更改它(所以一定要仔细检查)。
我无法全局安装 Browserify(或任何东西)。我可以毫无问题地进行非全局安装。
背景: 我是 运行 CentOS 6.6 在代理后面的公司网络上。我使用 "yum" 作为 root 安装了 Node.js。
$ sudo yum -y install nodejs
和 npm(由于某些原因未与 nodejs 一起安装):
$ sudo yum -y install nodejs npm
这将 Node.js 和 NPM 安装到目录:
$ which node
/usr/bin/node
$ which npm
/usr/bin/npm
并将"node_modules"放在/usr/lib/node_modules下。
就像我说的,我在代理后面,所以我将 "proxy" 和 "https-proxy" 配置属性设置为正确的值。
当我尝试安装 browserify 时(如 their site 中所述)
$ npm install -g browserify
我收到一个错误
...npm ERR! stack Error: EACCES, mkdir '/usr/lib/node_modules/browserify'...
所以我 "chowned" /usr/lib/node_modules 目录让我可以访问 node_modules:
中的 mkdirs$ sudo chown -R $USER /usr/lib/node_modules
错误: 现在,当我尝试全局安装 browserify 时,出现了不同的错误:
npm ERR! Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js'
npm ERR! { [Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '../lib/node_modules/browserify/bin/cmd.js' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Linux 2.6.32-431.el6.x86_64
npm ERR! command "node" "/usr/bin/npm" "install" "-g" "browserify"
npm ERR! cwd /usr/lib/node_modules
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.3.6
npm ERR! path ../lib/node_modules/browserify/bin/cmd.js
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /usr/lib/node_modules/npm-debug.log
npm ERR! not ok code 0
是否需要更改任何特殊内容以允许 NPM 创建符号链接?
此外,我尝试了 运行 以 root 身份安装,但它一直停留在那里,直到最终超时:
...npm ERR! network tunneling socket could not be established, cause=read ECONNRESET...
我最近遇到了这个问题。全局模块应该作为 root (sudo) 安装。我的进程失败的地方(与你的类似)是 运行 将其作为 root 时的超时。这是因为 NPM 使用 "git" 协议。要安装软件包,我必须 运行 我的 git 配置中的以下内容。
git config --global url."https://".insteadOf git://
这解决了我的问题。
我终于可以使用 npm 全局安装模块了。
我做了什么:
我必须使用 sudo 并在几个地方设置 proxy/https 代理。我听从了这个博客的建议:http://wil.boayue.com/blog/2013/06/14/using-npm-behind-a-proxy/.
我在 ~/.bashrc 中设置了以下变量并导出了它们:
- http_proxy
- https_proxy
- npm_config_proxy
- npm_config_https_proxy
我还使用 visudo 将它们添加到 env_keep(因此它们可用于 sudo)。
然后我使用以下方法在 npm 上设置代理和 https-proxy 配置设置:
$ npm config set proxy http://<proxy>:<port>
$ npm config set proxy http://<proxy>:<port>
我不确定是否所有这些都是必要的,但它对我有用。另外,有一次我意识到我的代理不正确,不得不在几个地方更改它(所以一定要仔细检查)。