Ubuntu上安装了Grunt但无法运行

3

我已经通过在终端中执行以下命令安装了Grunt:

sudo apt-get install nodejs

sudo apt-get install npm

npm install -g grunt-cli

执行npm install -g grunt-cli后,以下是终端的输出结果:
npm http GET https://registry.npmjs.org/grunt-cli
npm http 304 https://registry.npmjs.org/grunt-cli
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/resolve
npm http 304 https://registry.npmjs.org/resolve
npm http 304 https://registry.npmjs.org/nopt
npm http 304 https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/lodash
npm http 304 https://registry.npmjs.org/glob
npm http 304 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/inherits
npm http GET https://registry.npmjs.org/minimatch
npm http 304 https://registry.npmjs.org/inherits
npm http 304 https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/sigmund
npm http 304 https://registry.npmjs.org/sigmund
npm http 304 https://registry.npmjs.org/lru-cache
/usr/local/bin/grunt -> /usr/local/lib/node_modules/grunt-cli/bin/grunt
grunt-cli@0.1.13 /usr/local/lib/node_modules/grunt-cli
├── resolve@0.3.1
├── nopt@1.0.10 (abbrev@1.0.7)
└── findup-sync@0.1.3 (lodash@2.4.2, glob@3.2.11)

安装Grunt需要全局安装,但是当我在终端上尝试输入grunt --version时,显示结果如下:

/usr/bin/env: node: No such file or directory

我已经尝试将/usr/local/lib/node_modules/grunt-cli/bin添加到~/.bashrc中,但没有帮助。

即使我尝试通过进入/usr/local/lib/node_modules/grunt-cli/bin执行grunt命令,也没有希望。

请帮助我。

编辑: 这是sudo apt-get install nodejs的输出。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gyp javascript-common libc-ares-dev libjs-node-uuid libssl-dev libssl-doc
  libv8-3.14-dev rlwrap zlib1g-dev
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  nodejs
0 upgraded, 1 newly installed, 0 to remove and 261 not upgraded.
Need to get 0 B/684 kB of archives.
After this operation, 3,116 kB of additional disk space will be used.
Selecting previously unselected package nodejs.
(Reading database ... 172429 files and directories currently installed.)
Preparing to unpack .../nodejs_0.10.25~dfsg2-2ubuntu1_amd64.deb ...
Unpacking nodejs (0.10.25~dfsg2-2ubuntu1) ...
Processing triggers for doc-base (0.10.5) ...
Processing 1 added doc-base file...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up nodejs (0.10.25~dfsg2-2ubuntu1) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode

这是从 /usr/local/bin 运行 ls -ln 的输出结果:

lrwxrwxrwx 1 0 0 39 Jul  2 00:07 grunt -> ../lib/node_modules/grunt-cli/bin/grunt
lrwxrwxrwx 1 0 0 21 Jul  1 23:50 node -> /usr/local/bin/nodejs
2个回答

10

/usr/bin/env: node: No such file or directory告诉你一切。当你执行apt-get install nodejs安装后,我相信它会把nodejs而不是node放入你的/usr/local/bin。所以只需像这样建立符号链接:

sudo ln -s /usr/local/bin/nodejs /usr/local/bin/node

它应该能够工作。

编辑:它将是

sudo ln -s /usr/bin/nodejs /usr/bin/node

针对您的情况。


2
当你安装nodejs时,我相信它会将nodejs而不是node放入你的/usr/local/bin目录中。这取决于你的安装方式。我相信Debian/Ubuntu软件包是这样做的。从官方源安装则称其为“node”。 - Quentin
@Patosai,我应该尝试使用chris-lead的launchpad而不是Trusty吗?http://www.saltycrane.com/blog/2014/11/how-install-grunt-ubuntu-1404/ - Nitesh Virani
或者说,你的安装日志显示它已经安装在/usr/bin/nodejs,所以只需从那里创建符号链接即可。 - Patosai
你可以使用 which nodejs 命令来查找确切的路径。 - Leland B
我已经按照您提到的方式卸载了Node.js并安装了nodejs.org上的版本,然后安装了grunt-cli,它可以运行,谢谢@Patosai。 - Nitesh Virani
显示剩余2条评论

0
你需要将 Grunt 安装到项目文件夹中。grunt-cli 包只是一个存放在项目的 node_modules 文件夹里的 grunt 包的桥接程序。 npm install grunt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接