我试图将nodeJs安装到我的Ubuntu 14.04中以便使用GruntJs。
我已经阅读了Ubuntu different way这样做(issues?),所以这就是我为安装它而做的事情:
sudo apt-get install npm
sudo npm install -g grunt-cli
之后输入grunt我收到了错误:
/usr/bin/env: node: No such file or directory
所以,我试过了:
curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs
sudo apt-get update
再试一次,仍然得到错误,我已经尝试过了:
sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/
sudo apt-get install -y nodejs
我收到了这条消息:
nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.
我确实尝试过清理以防万一:
sudo apt-get autoremove
但是没有,错误仍然存在:当我输入咕噜声时,我仍然得到/usr/bin/env: node: No such file or directory
我该怎么办?
答案 0 :(得分:782)
找到答案。为了防止有人帮助,我会在这里发布:
执行符号链接可解决此问题:ln -s /usr/bin/nodejs /usr/bin/node
(我的感谢和+1投票给bodokaiser)。
注意:我认为这篇文章并不完全重复,因为该帖子有点像浏览器问题。
答案 1 :(得分:113)
问题不在于节点版本。相反,它是默认情况下在Ubuntu中安装NodeJS的方式。在Ubuntu中运行Node应用程序时,您必须运行nodejs somethign.js
而不是node something.js
因此终端中调用的应用程序名称为nodejs
而不是node
。这就是为什么需要一个符号链接,只需将收到的所有命令node
转发给nodejs
。
ln -s /usr/bin/nodejs /usr/bin/node
答案 2 :(得分:49)
我认为你应该升级最新的节点版本
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
答案 3 :(得分:29)
if you are able to access node on ubuntu terminal using nodejs command,then this problem can be simply solved using -creating a symbolic link of nodejs and node using
Option Explicit
Dim app ' As SASEGuide.Application
Call dowork
'shut down the app
If not (app Is Nothing) Then
app.Quit
Set app = Nothing
End If
Sub dowork()
On Error Resume Next
'----
' Start up Enterprise Guide using the project name
'----
Dim prjName ' As String
Dim prjObject ' As SASEGuide.Project
Dim containerName ' As String
Dim containerObject ' As SASEGuide.Container
Dim containerColl ' As SASEGuide.ContainerCollection
dim orderedListObject ' as SASEguide.Container
prjName = "\\pathtoproject\test project.egp" ' Project Name
containerName = "My Ordered List" ' Name of the Ordered List
Set app = CreateObject("SASEGObjectModel.Application.7.1")
If Checkerror("CreateObject") = True Then
Exit Sub
End If
Set prjObject = app.Open(prjName,"")
If Checkerror("App.Open") = True Then
Exit Sub
End If
'-----
'Get The Container Collection and Object
'-----
Set containerColl = prjObject.ContainerCollection
If Checkerror("Project.ContainerCollection") = True Then
Exit Sub
End If
Dim i ' As Long
Dim j ' As Long
Dim count ' As Long
Dim count_OL ' as Long
count = containerColl.count
For i = 0 To count - 1
Set containerObject = containerColl.Item(i)
If Checkerror("ContainerCollection.Item") = True Then
Exit Sub
End If
If (containerObject.Name = "Ordered Lists") Then
count_OL = containerObject.items.count
For j = 0 to count_OL - 1
If Checkerror("ContainerCollection.Item") = True Then
Exit Sub
End If
Set orderedListObject = containerObject.items.item(j)
If (orderedListObject.name = containerName) then
exit for
Else
Set orderedListObject = Nothing
end if
Next
Exit For
Else
Set containerObject = Nothing
Set orderedListObject = Nothing
End If
Next
If not (orderedListObject is nothing) Then
'----
' Run the Container
'----
orderedListObject.Run
If Checkerror("Container.Run") = True Then
Exit Sub
End If
Else
wscript.echo "Not Found"
End If
'-----
' Save the new project
'-----
prjObject.Save
If Checkerror("Project.Save") = True Then
Exit Sub
End If
'-----
' Close the project
'-----
prjObject.Close
If Checkerror("Project.Close") = True Then
Exit Sub
End If
End Sub
Function Checkerror(fnName)
Checkerror = False
Dim strmsg ' As String
Dim errNum ' As Long
If Err.Number <> 0 Then
strmsg = "Error #" & Hex(Err.Number) & vbCrLf & "In Function " & fnName & vbCrLf & Err.Description
MsgBox strmsg 'Uncomment this line if you want to be notified via MessageBox of Errors in the script.
Checkerror = True
End If
End Function
and this may solve the problem
答案 4 :(得分:24)
就我而言,installing nodejs-legacy解决了这个问题。
sudo apt-get install nodejs-legacy
答案 5 :(得分:12)
如果您正在使用nvm
节点版本管理器,请使用以下命令创建符号链接:
sudo ln -s "$(which node)" /usr/bin/node
sudo ln -s "$(which npm)" /usr/bin/npm
node
创建一个符号链接npm
创建符号链接答案 6 :(得分:10)
只做
$ sudo apt-get install nodejs-legacy
它将开始工作。
答案 7 :(得分:9)
我发现这通常是一个错误的错误,如果你从包管理器安装你的bin可能被称为nodejs所以你只需要像这样对它进行符号链接
ln -s /usr/bin/nodejs /usr/bin/node
答案 8 :(得分:7)
如果您已经安装了nodejs(请查看which nodejs
)并且不想安装其他软件包,您可以以root身份进行:
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
答案 9 :(得分:6)
当我使用gulp时,我收到了这个错误。
~$ gulp
/ usr / bin / env:'node':没有这样的文件或目录
通过执行以下命令将其删除,您必须记住/ usr / bin目录具有所有权限。
~$ ln -s /usr/bin/nodejs /usr/bin/node
这对我有用..
答案 10 :(得分:4)
虽然ln -s
是最明显最容易解决的问题,但有一点解释:
由于与另一个包冲突,可执行文件来自 Ubuntu存储库称为nodejs而不是node。保持这个 介意你正在运行软件。
安装sudo apt-get install nodejs
时会出现此建议。
所以其他一些已知的工具(我不知道它的作用。虽然ubuntu存储库已知,但默认情况下在16.04中没有安装)占用该命名空间。
本来不错的,如果Ubuntu提供了如何解决这个'干净利落'的建议,如果不是通过手工做什么,否则包装会做。 (碰撞仍然是碰撞......如果+发生碰撞时)
答案 11 :(得分:4)
有两种解决方法:
a)将PATH变量设置为包含“ / usr / local / bin”
export PATH="$PATH:/usr/local/bin"
b)创建指向您路径中已经存在的“ / usr / bin”的符号链接
ln -s /usr/bin/nodejs /usr/bin/node
希望对您有帮助。
答案 12 :(得分:2)
sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
答案 13 :(得分:2)
根据您安装节点的方式,大部分时间它可能不在/ usr / bin /中,在我自己的情况下,我使用nvm进行安装,所以我的节点位于./nvm/versions.
使用此命令which node
我找到了路径,但为了使工作更轻松,您可以运行此命令。
nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node
以上命令将获取节点的位置并为您创建链接。
答案 14 :(得分:2)
按照以下命令解决问题,
步骤1.打开终端并输入,
sudo npm cache clean -f
此命令将清除整个NPM缓存
然后输入密码
第2步。
sudo npm install -g n
第3步。
sudo n stable
使用此命令,您可以安装节点的最新稳定版本。
现在将安装最新版本的节点。您可以通过以下方式验证版本:
node -v
答案 15 :(得分:1)
对于我的案例链接已 不 工作,如下所示
ln -s / usr / bin / nodejs / usr / bin / node
但是你可以以root身份打开/ usr / local / bin / lessc,并将第一行从node更改为nodejs。
- #!/ usr / bin / env node
+#!/ usr / bin / env nodejs
答案 16 :(得分:0)
只需通过此命令重命名命令或文件名ln -s /usr/bin/nodejs /usr/bin/node
答案 17 :(得分:0)
对我来说,已接受的答案尚未奏效。我按照这里的建议开始了:
ln -s /usr/bin/nodejs /usr/bin/node
完成此操作后,出现以下错误:
/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 let notifier = require('update-notifier')({pkg}) ^^^
SyntaxError:范围限定的声明(let,const,函数,类) 严格模式外尚不支持 在exports.runInThisContext(vm.js:53:16) 在Module._compile(module.js:374:25) 在Object.Module._extensions..js(module.js:417:10) 在Module.load(module.js:344:32) 在Function.Module._load(module.js:301:12) 在Function.Module.runMain(module.js:442:10) 在启动时(node.js:136:18) 在node.js:966:3
解决方案是从https://nodejs.org/en/download/下载最新版本的node。
然后我做了:
sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1
现在更新终于成功了:npm -v
从3.2.1更改为6.4.1