MacOS-Installation: Gem::FilePermissionError

Bei der Installation von Discourse (zur Entwicklung) auf meinem Mac erhalte ich folgenden Fehler:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

Wie kann ich das Problem beheben?
Danke.

Haben Sie hier das Installationsskript für Discourse durchlaufen?

Nutzen Sie macOS Catalina? Wenn ja, scheint es, als würde Discourse versuchen, die Systemversion von Ruby zu verwenden. Sie sollten etwas wie rbenv verwenden, um Ihre Ruby-Version festzulegen, um dies zu vermeiden.

Ich verwende MacOS Catalina. Ich habe das Skript zwar ausgeführt, aber es ist mitten im Prozess abgebrochen, weil es meiner Meinung nach bereits installiert war.

Kannst du die Ausgabe von which rbenv einfügen?

Und hast du eine benutzerdefinierte .bashrc oder .zshrc?

/usr/local/bin/rbenv

Nicht wirklich sicher. Ich glaube nicht, aber vielleicht.

Kannst du in dein Discourse-Verzeichnis wechseln (cd) und die Ausgabe von which ruby teilen?

Ups, das habe ich nicht bemerkt. Ich habe es gemacht und habe /usr/bin/ruby erhalten.

Okay, also du verwendest das System-Ruby für Discourse, weshalb dieses Problem auftritt.

Überprüfe die PATH-Variable, indem du echo $PATH eingibst. Du solltest /Users/<dein Benutzername>/.rbenv/bin und /Users/<dein Benutzername>/.rbenv/shims darin aufgelistet sehen.

Falls nicht, füge sie in der Konfigurationsdatei deiner Shell, .bashrc oder .zshrc, hinzu. Für ZSH kannst du es so hinzufügen: export PATH=/pfad/nummer/1:/pfad/nummer/2:$PATH

Wenn du sie siehst, überprüfe die Reihenfolge. Wenn sie weiter hinten in der Kette stehen, werden sie wahrscheinlich nicht vor dem System-Ruby geladen, was bedeutet, dass das System-Ruby für Discourse verwendet wird. Du kannst denselben Ansatz wie oben verwenden, um die Pfade weiter nach oben in der Kette zu verschieben.

Ich dachte, @david hätte eine Ruby-Version-Prüfung für unsere Dev-Umgebung hinzugefügt? :thinking:

Ich glaube, das war für die Theme-CLI.

Gibt es eine Möglichkeit, hier eine entsprechende Prüfung hinzuzufügen?

Ich denke, wir prüfen die Ruby-Version-Kompatibilität bereits in Discourse – das Problem hier ist, dass unser Discourse-Bundle keine Gems für die auf macOS gebündelte Ruby-Version auf Systemebene schreiben kann. Ich könnte mich in den Details irren, aber ich glaube, es hat mit einer Änderung zu tun, die Apple mit macOS Catalina vorgenommen hat. Ich bin selbst auf dieses Problem gestoßen, und es hat viel Fehlersuche gekostet, um es zu lösen.

  1. Ich bin auf denselben Fehler wie der OP gestoßen.

  2. Lesen Sie dies:

  1. Ich dachte, es sei kein Dateiberechtigungsfehler, sondern dass das Installationsprogramm an der falschen Stelle suchte.

  2. Ich wusste, dass ein Neustart des Terminals meine .zshrc-Datei neu laden würde, also schloss und öffnete ich das Terminal.

  3. Ich habe das Installationsskript erneut ausgeführt und diesen Fehler nicht mehr erhalten.

Könnte dieses Problem durch eine strategisch platzierte Terminalaktualisierung während des Installationsprozesses behoben werden? :thinking: