2014-12-19 17 views
6

Na OS X Yosemite i najnowszej wersji meteor (1.0.1), bez względu na to, ile razy odinstalowuję i ponownie instaluję, nie mogę sprawić, że będzie działał bez sudo. Moje konto użytkownika jest kontem administratora. Ale meteor nie chce biec bez sudo. Błędy, które dostaję, to:Meteor nie będzie działać bez Sudo?

-bash: meteor: command not found 

Widziałem kilka postów tutaj z podobnymi problemami. Próbowałem naprawić uprawnienia dysku za pomocą narzędzia dyskowego. Próbowałem:

sudo chown -R $myUsername /usr/local/bin/meteor 

Nie jestem pewien, co jeszcze mogę zrobić, ponieważ wydaje się, że jest to problem uprawnień. Czy ktoś ma jakieś sugestie?

Dodatkowe informacje, które mogą pomóc:

$ 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 

Nawiasem mówiąc, ls -l /usr/local/bin/meteor działa tylko z sudo.

+0

chmod 777 meteor i dodać go do ochrony? Rodowiska zmienne – tinySandy

+0

@BallPython każdym razem robisz 'chmod 777', gdzieś na świecie umiera kotek – janos

+0

@janos - haha, prawda), ale zasugerowałem, żeby to zadziałało – tinySandy

Odpowiedz

10

Po wyjaśnić uprawnienia do meteor wykonywalnego i jego katalogu bazowego, problem stał się dość oczywiste:

  • Meteor binarny znajduje się w /usr/local/bin/meteor
  • Twój użytkownik nie ma uprawnień do katalog /usr/local/bin

kroki, aby rozwiązać:

  1. Dodaj zgodę na katalogu głównym: sudo chmod +rx /usr/local/bin
  2. W razie potrzeby dodać katalog bazowy do PATH: PATH=$PATH:/usr/local/bin

Na przyszłość:

  • Kiedy pojawi się ten rodzaj błędu: -bash: XYZ: command not found
    • Pierwszą rzeczą do sprawdzenia jest znalezienie bezwzględnej ścieżki XYZ, na przykład /path/to/XYZ
    • Spróbuj uruchomić bezwzględną ścieżkę /path/to/XYZ
  • Jeśli działa z /path/to/XYZ daje -bash: /path/to/XYZ: Permission denied oznacza, że ​​masz problem z uprawnieniami na pliku i/lub katalogi:
    • Trzeba czytać i pozwolenie Exec na samym pliku: sudo chmod +rx /path/to/XYZ
    • co potrzeba exec pozwolenie na wszystkich elementów ścieżki prowadzącej do pliku: sudo chmod +x /path /path/to
  • Po ustaleniu kwestii uprawnień, działa z /path/to/XYZ powinien działać
  • Po ustaleniu kwestii uprawnień, jeśli działa z XYZ (bez pełnej ścieżki) nadal nie działa, to znaczy, /path/to nie ma na PATH. Fix z PATH=$PATH:/path/to

Uwaga: Powyższe sudo chmod polecenia dać uprawnienia (odczyt i Exec) do wszystkich użytkowników: właściciel + grupa + inne. W przypadku PO (i w najczęstszych przypadkach) jest to całkowicie w porządku. W sytuacjach, w których konfiguracja uprawnień jest bardziej zaawansowana, konieczne może być uszczegółowienie i użycie g+rx zamiast +rx.

(dla przypomnienia)

Jeśli działa z sudo, bez sudo masz command not found, to znaczy, że meteor jest na PATH dla root ale nie dla użytkownika. Aby to działało dla twojego użytkownika, musisz znaleźć ścieżkę do meteor i dodać ją do użytkownika PATH.Na przykład:

  1. Zostań korzeń z sudo su -
  2. Znajdź ścieżkę meteor, uruchom polecenie: which meteor
  3. Wyloguj od nasady (Control-D), aby powrócić do swojej użytkownik
  4. Dodaj katalog bazowy do PATH, na przykład jeśli wcześniej which meteor dał ci /usr/local/bin/meteor, to zrobić: PATH=$PATH:/usr/local/bin

Po tym powinna działać z użytkownikiem. Aby było "trwałe", dodaj ostatni krok w swoim ~/.bashrc.

Jeśli to nadal nie działa, być może Twój użytkownik nie ma uprawnień do wykonania pliku. Naprawić z tym poleceniem:

sudo chmod +x /usr/local/bin/meteor 

z Twoich uwag wydaje się również Twój użytkownik nie posiada pozwolenia na samym katalogu /usr/local/bin. Naprawić z tym poleceniem:

sudo chmod +rx /usr/local/bin 
3

Nie wymaga konta administratora do jego uruchomienia, standardowe konto użytkownika działa poprawnie. Możesz zlokalizować plik meteor, wpisując which meteor. Pokaże ci, jakiego pliku używasz do wykonania.

Spróbuj usunąć folder .meteor w swoim katalogu domowym, coś rm -rf ~/.meteor i skrypt z folderu bin rm /usr/local/bin/meteor lub rm 'which meteor'(Marks mowy są te powyżej ~)

a następnie ponownie zainstalować meteor bez sudo za pomocą polecenia curl https://install.meteor.com/ | sh.

Powinien, mam nadzieję, zainstalować wszystkie odpowiednie uprawnienia ...

+0

Nigdy nie instalowałem go z sudo. To jedyna część, którą mogę zrobić. Właśnie zainstalowałem go ponownie i nie mogę nawet usunąć folderu za pomocą 'rm/usr/local/bin/meteor', mówi mi" Permission denied "... który meteor' wskazuje mnie na ten katalog. Muszę użyć sudo nawet, aby go usunąć. –

+0

następnie użyj sudo, aby najpierw usunąć pliki – Aaron

+0

Tak, zrobiłem to i zainstalowałem ponownie. To samo za każdym razem, gdy próbuję uruchomić meteoryt, tworzę aplikację itp., Mówi '-bash: meteor: command not found', chyba że uruchomię go z sudo. –