在OSX Yosemite和最新版本的meteor(1.0.1)上,无论我卸载并重新安装它多少次,我似乎无法在没有sudo的情况下运行它。我的用户帐户是管理员帐户。但流星拒绝在没有sudo的情况下运行。我得到的错误都是:
-bash: meteor: command not found
我在这里看到过一些类似问题的帖子。我试过用磁盘工具修复磁盘权限。我试过了:
sudo chown -R $myUsername /usr/local/bin/meteor
我不确定我还能做什么,因为它似乎是一个权限问题。有没有人有任何建议?
可能有用的其他信息:
$ sudo which meteor
/usr/local/bin/meteor
$ sudo ls -l /usr/local/bin/meteor
-rwxrwxrwx 1 root wheel 3528 Dec 18 23:14 /usr/local/bin/meteor
$ ls -ld /usr/local/bin
drwx------ 6 502 wheel 204 Dec 18 23:14 /usr/local/bin
顺便说一下,ls -l /usr/local/bin/meteor
仅适用于sudo
。
答案 0 :(得分:11)
在我们澄清了meteor
可执行文件及其基目录的权限之后,
问题变得非常清楚:
/usr/local/bin/meteor
/usr/local/bin
要解决的步骤:
sudo chmod +rx /usr/local/bin
PATH
:PATH=$PATH:/usr/local/bin
供将来参考:
-bash: XYZ: command not found
XYZ
的绝对路径,例如/path/to/XYZ
/path/to/XYZ
/path/to/XYZ
运行,则-bash: /path/to/XYZ: Permission denied
表示您对文件和/或目录的权限有问题:
sudo chmod +rx /path/to/XYZ
sudo chmod +x /path /path/to
/path/to/XYZ
运行XYZ
(没有完整路径)运行仍然无效,则表示/path/to
上没有PATH
。修复PATH=$PATH:/path/to
注意:上述sudo chmod
命令为所有用户提供权限(读取和执行):owner + group + other。在OP的情况下(在大多数情况下),这是完全正常的。
在具有更复杂权限设置的情况下,您可能需要更具体,并使用g+rx
代替+rx
。
(记录)
如果它适用于sudo
,而没有sudo
则会获得command not found
,这意味着meteor
位于PATH
root
但不适合您的用户。要使其适合您的用户,您需要找到meteor
的路径并将其添加到用户的PATH
。例如:
sudo su -
meteor
的路径,运行命令:which meteor
PATH
,例如,如果之前which meteor
给了您/usr/local/bin/meteor
,请执行以下操作:PATH=$PATH:/usr/local/bin
在此之后,它应该与您的用户一起使用。要使其“永久”,请在~/.bashrc
添加最后一步。
如果仍然无效,那么您的用户可能对该文件没有执行权限。使用此命令修复此问题:
sudo chmod +x /usr/local/bin/meteor
根据您的评论,您的用户似乎也没有/usr/local/bin
目录本身的权限。使用此命令修复此问题:
sudo chmod +rx /usr/local/bin
答案 1 :(得分:3)
不需要管理员帐户来运行它,标准用户帐户工作正常。您可以通过键入which meteor
找到流星文件。它将告诉您正在使用的文件。
尝试删除主目录中的.meteor
文件夹,例如rm -rf ~/.meteor
和来自bin文件夹rm /usr/local/bin/meteor
或rm 'which meteor'
的脚本(有语音标记)上面的那些〜)
然后使用curl https://install.meteor.com/ | sh
命令重新安装meteor 而不使用 sudo。
应该希望安装所有正确的权限......