2014-12-19 13 views
6

Auf OSX Yosemite und die neueste Version von Meteor (1.0.1), egal wie oft ich es deinstalliere und neu installiere, kann ich nicht scheinen, es ohne Sudo laufen zu lassen. Mein Benutzerkonto ist ein Administratorkonto. Aber Meteor weigert sich, ohne Sudo zu laufen. Die Fehler, die ich bekomme, sind alle:Meteor wird nicht ohne Sudo laufen?

-bash: meteor: command not found 

Ich habe ein paar Beiträge hier mit ähnlichen Problemen gesehen. Ich habe versucht, Festplattenberechtigungen mit dem Festplatten-Dienstprogramm zu reparieren. Ich habe versucht:

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

Ich bin nicht sicher, was kann ich sonst noch tun, weil es ein Problem mit den Berechtigungen zu sein scheint. Hat jemand irgendwelche Vorschläge?

Zusätzliche Informationen, die helfen könnten:

$ 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 

By the way, ls -l /usr/local/bin/meteor funktioniert nur mit sudo.

+0

chmod 777 Meteor und fügen Sie Variablen Enviromental – tinySandy

+0

@BallPython jedes Mal, wenn Sie 'do 777' chmod, irgendwo auf der Welt ein Kätzchen stirbt – janos

+0

@janos - haha, true), aber ich schlug es vor, nur um sicherzustellen, dass es funktioniert – tinySandy

Antwort

10

Nachdem wir die Berechtigungen der meteor ausführbar ist und dessen Basis-Verzeichnis geklärt, das Problem wurde ganz klar:

  • Der Meteor binär in /usr/local/bin/meteor befindet
  • Ihre Benutzer nicht berechtigt, die hatte /usr/local/bin Verzeichnis

Die Schritte zu beheben:

  1. hinzufügen Berechtigung für das Basisverzeichnis: sudo chmod +rx /usr/local/bin
  2. Falls erforderlich, fügen Sie das Basisverzeichnis zu PATH: PATH=$PATH:/usr/local/bin

Für die Zukunft:

  • Wenn Sie diese Art von Fehler: -bash: XYZ: command not found
    • Das erste, was zu überprüfen ist, finden Sie den absoluten Pfad von XYZ, zum Beispiel /path/to/XYZ
    • Versuche mit dem absoluten Pfad /path/to/XYZ
  • laufen Wenn mit /path/to/XYZ läuft -bash: /path/to/XYZ: Permission denied gibt, das bedeutet, dass Sie ein Problem mit Berechtigungen für die Datei und/oder Verzeichnisse:
    • Sie benötigen lesen und exec-Berechtigung für die Datei selbst: sudo chmod +rx /path/to/XYZ
    • Sie benötigen exec Berechtigung für alle Pfadelemente in die Datei führen: sudo chmod +x /path /path/to
  • Nach Genehmigung Behebung von Problemen, mit /path/to/XYZ Laufe
  • Nach der Fixierung Berechtigungsproblemen arbeiten sollte, wenn mit XYZ (ohne vollständigen Pfad) immer noch nicht funktioniert, dass das Laufen bedeutet /path/to nicht auf Ihrem PATH ist. Fix mit PATH=$PATH:/path/to

Hinweis: Die oben sudo chmod Befehle geben Berechtigungen (Lese- und exec) für alle Benutzer: Eigentümer + Gruppe + andere. Im Falle des OP (und in den meisten Fällen) ist das völlig in Ordnung. In Situationen mit anspruchsvolleren Berechtigungseinstellungen müssen Sie möglicherweise genauer sein und g+rx anstelle von +rx verwenden.

(zur Erinnerung)

Wenn es mit sudo funktioniert und ohne sudo Sie erhalten command not found, das bedeutet, dass meteor auf dem PATH für root ist aber nicht für die Benutzer. Um es für Ihren Benutzer funktionieren zu lassen, müssen Sie den Pfad zu meteor finden und ihn zu Ihrem Benutzer PATH hinzufügen.Zum Beispiel:

  1. Werden Sie root mit sudo su -
  2. Finden Sie den Weg von meteor, laufen Befehl: which meteor
  3. Logout von der Wurzel (Control-D) zurückzukehren, um Ihren Benutzer
  4. Fügen Sie das Basisverzeichnis PATH, zum Beispiel, wenn früher which meteor Sie /usr/local/bin/meteor gab, dann tun: PATH=$PATH:/usr/local/bin

Danach sollte es mit Ihrem Benutzer arbeiten. Um es "permanent" zu machen, fügen Sie den letzten Schritt in Ihrem ~/.bashrc hinzu.

Wenn dies immer noch nicht funktioniert, dann hat Ihr Benutzer möglicherweise keine Ausführungsberechtigung für die Datei. Fix, dass mit diesem Befehl:

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

Von Ihren Kommentaren es scheint auch Ihre Benutzer keine Berechtigung für das /usr/local/bin Verzeichnis selbst. Fix, dass mit diesem Befehl:

sudo chmod +rx /usr/local/bin 
3

Sollte kein Administratorkonto für die Ausführung benötigt werden, funktioniert das Standardbenutzerkonto ordnungsgemäß. Sie können die Meteordatei finden, indem Sie which meteor eingeben. Es wird Ihnen sagen, welche Datei zur Ausführung verwendet wird.

Versuchen Sie, die .meteor Ordner in Ihrem Home-Verzeichnis, so etwas wie rm -rf ~/.meteor und das Skript aus dem Ordner ist rm /usr/local/bin/meteor oder rm 'which meteor'(Rede markiert es ist die, die oben ~)

zu entfernen und dann neu installieren Meteor ohne sudo mit dem Befehl curl https://install.meteor.com/ | sh.

Sollte hoffentlich mit den richtigen Berechtigungen installieren ...

+0

Ich habe es nie mit Sudo installiert. Das ist der einzige Teil, den ich machen kann. Ich habe es gerade neu installiert, und ich kann nicht einmal den Ordner mit 'rm/usr/local/bin/meteor' entfernen, es sagt mir" Permission denied "..." welcher Meteor "verweist mich jedoch auf dieses Verzeichnis. Ich muss Sudo sogar verwenden, um es zu entfernen. –

+0

Verwenden Sie dann Sudo, um die Dateien zuerst zu entfernen – Aaron

+0

Ja, ich habe das getan und neu installiert. Jedes Mal, wenn ich versuche, einen Meteor zu starten, eine App usw. zu erstellen, heißt es '-bash: meteor: command not found', es sei denn, ich lasse es mit sudo laufen. –

Verwandte Themen