Xquartz auf Mavericks 10.9 schlägt fehl

Es gibt ein Problem mit der Ausführung von xquartz auf meinem System. Ich habe es über den Link von der Apple-Website installiert. Wenn ich jedoch xquartz vom Terminal aus starte, bekomme ich:

:~$ xquartz
/Applications/Utilities/XQuartz.app/Contents/MacOS/X11: line 10: /usr/local/bin/bash: No such file or directory
/Applications/Utilities/XQuartz.app/Contents/MacOS/X11: line 10: exec: /usr/local/bin/bash: cannot execute: No such file or directory

Dies hindert mich daran, xquartz/x11-Anwendungen zu starten, die ich über Macports heruntergeladen habe. Wie kann ich das lösen, damit xquartz richtig läuft?

Ist /usr/local/bin/basheine ausführbare/binäre Datei oder ein Symlink zu einer?
Ich hatte keinen Hinweis auf bash im Ordner. Ich habe einen Symlink dafür erstellt und meine Fehler behoben.

Antworten (1)

/Applications/Utilities/XQuartz.app/Contents/MacOS/X11ist nur ein Shell-Skript, das ausführt, was $SHELLin Ihrer Umgebung definiert ist:

case $(basename "${SHELL}") in
    bash)          exec -l "${SHELL}" --login -c 'exec "${@}"' - "${@}" ;;

(usw).

In Ihrem Fall sieht es so aus, als ob $SHELLauf eingestellt ist /usr/local/bin/bash, was nicht existiert. Interessant ist jedoch, dass Sie, da Sie eine Eingabeaufforderung haben, an der Sie getippt haben xquartz, eindeutig eine Shell mit einer Beschreibung ausführen. Es entspricht jedoch nicht dem Wert von $SHELL.

Zwei Vorschläge, wie das passieren könnte:

  1. $SHELLwird normalerweise die Login-Shell für Ihren Benutzer widerspiegeln. Sie können dies in den Systemeinstellungen -> Benutzer & Gruppen -> rechtsklicken Sie auf Ihren Benutzernamen und wählen Sie „Erweiterte Optionen“. Wenn Sie dies auf einen ungültigen Wert setzen, können Sie normalerweise kein Terminal öffnen ... es sei denn, Sie gehen in die Terminal.app-Einstellungen und setzen die Option "Shells öffnen mit:" auf etwas, das existiert. Sie erhalten dann ein funktionierendes Terminal mit einer nicht vorhandenen $SHELL.
  2. Alternativ könnte es etwas in Ihren Shell-Startskripten ( .bashrc, .profile, usw.) sein, das einen irreführenden Wert von $SHELLin die Umgebung exportiert. Wenn Sie eines davon angepasst haben, werfen Sie einen Blick darauf und stellen Sie sicher, dass Sie die Dinge nicht falsch einrichten.
Ich danke Ihnen für Ihre Hilfe; Es hat mir geholfen, das Problem zu verstehen und eine Lösung zu implementieren. Sie haben Recht, ich hatte bereits eine Shell geöffnet und which bashgab mir den richtigen Pfad. Ich habe dann einen Symlink zu dieser Bash erstellt und in /usr/local/bin/bash. Ich kann jetzt xquartz verwenden, getestet mit xclock, gimp usw.