如果没有Sudo,Meteor将无法运行?

时间:2014-12-19 02:01:44

标签: bash meteor permissions terminal sudo

在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

2 个答案:

答案 0 :(得分:11)

在我们澄清了meteor可执行文件及其基目录的权限之后, 问题变得非常清楚:

  • Meteor二进制文件位于/usr/local/bin/meteor
  • 您的用户无权访问目录/usr/local/bin

要解决的步骤:

  1. 添加基目录的权限:sudo chmod +rx /usr/local/bin
  2. 如有必要,请将基目录添加到PATHPATH=$PATH:/usr/local/bin
  3. 供将来参考:

    • 当您收到此类错误时:-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
      • 您需要对导致文件的所有路径元素执行exec权限: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。例如:

    1. 使用sudo su -
    2. 成为root用户
    3. 找到meteor的路径,运行命令:which meteor
    4. 从root(Control-D)退出以返回给您的用户
    5. 将基本目录添加到PATH,例如,如果之前which meteor给了您/usr/local/bin/meteor,请执行以下操作:PATH=$PATH:/usr/local/bin
    6. 在此之后,它应该与您的用户一起使用。要使其“永久”,请在~/.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/meteorrm 'which meteor' 的脚本(有语音标记)上面的那些〜)

然后使用curl https://install.meteor.com/ | sh命令重新安装meteor 而不使用 sudo。

应该希望安装所有正确的权限......