2014-12-19 47 views
6

在OSX優勝美地和流星(1.0.1)的最新版本中,無論我卸載並重新安裝多少次,我似乎都無法在沒有sudo的情況下運行它。我的用戶帳戶是一個管理員帳戶。但流星拒絕沒有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

搭配chmod 777流星,並添加它的每一個你'文件模式777'時間ENVIROMENTAL變量 – tinySandy 2014-12-19 02:07:53

+0

@BallPython,在世界某個地方小貓死 – janos 2014-12-19 04:15:52

+0

@janos - 哈哈,真正的),但我建議只是爲了確保它能正常工作 – tinySandy 2014-12-19 04:20:35

回答

10

我們澄清了meteor可執行文件及其基本目錄的權限後, 問題變得很清楚:

  • 流星二進制文件位於/usr/local/bin/meteor
  • 您的用戶沒有權限的目錄/usr/local/bin

的步驟來解決:

  1. 添加權限上的基本目錄:sudo chmod +rx /usr/local/bin
  2. 如果有必要,基本目錄添加到PATHPATH=$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,這意味着你有問題的文件權限和/或目錄:
    • 您需要讀取和文件本身的exec權限: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命令給權限(讀和exec),以所有用戶:所有者+組+其他。在OP(在大多數情況下)的情況下,這是非常好的。 在具有更復雜權限設置的情況下,您可能需要更具體,並使用g+rx而不是+rx

(備案)

如果它與sudo工作,沒有sudocommand not found,這意味着meteor是在PATHroot但不是你的用戶。要使其適用於您的用戶,您需要找到meteor的路徑並將其添加到您的用戶的PATH。例如:

  1. 成爲根與sudo su -
  2. 找到meteor路徑,運行命令:從根which meteor
  3. 退出(控制-d),返回到你的用戶
  4. 將基準目錄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 
3

不應該需要管理員帳戶來運行它,標準用戶帳戶正常工作。您可以通過輸入which meteor找到流星文件。它會告訴你正在使用哪個文件執行。

嘗試刪除你的home目錄中.meteor文件夾,像rm -rf ~/.meteor和bin文件夾rm /usr/local/bin/meteorrm 'which meteor'腳本(講話標誌着上面有〜的那些)

,然後重新安裝流星沒有 sudo使用curl https://install.meteor.com/ | sh命令。

應該希望安裝所有正確的權限...

+0

我從來沒有用sudo安裝它。這是我能做的唯一部分。我只是再次安裝它,我甚至無法使用'rm/usr/local/bin/meteor'刪除文件夾,它告訴我「Permission denied」......'哪個meteor指向了那個目錄。我需要使用sudo來移除它。 – 2014-12-19 02:19:43

+0

然後使用sudo先刪除文件 – Aaron 2014-12-19 02:20:23

+0

是的,我已經完成並重新安裝了它。每次我嘗試運行meteor,創建一個應用程序等,它都會說'-bash:meteor:command not found',除非我用sudo運行它。 – 2014-12-19 02:21:30