У меня проблемы с XQuartz на Mavericks. После того, как я обратился в службу поддержки Apple genius, чтобы заменить батарею (в которой гениальный парень отключил питание, когда у меня было открыто соединение X11), у меня возникает следующий сбой при попытке открыть XQuartz:

*** The application X11 could not be opened. ***
An error occurred while starting the X11 server: "Cannot establish any listening sockets - Make sure an X server isn't already running"
Click Quit to quit X11. Click Report to see more details or send a report to Apple.

Я попытался сделать чистую установку XQuartz, выполнив:

launchctl unload /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
sudo launchctl unload /Library/LaunchDaemons/org.macosforge.xquartz.privileged_startx.plist
sudo rm -rf /opt/X11* /Library/Launch*/org.macosforge.xquartz.* /Applications/Utilities/XQuartz.app /etc/*paths.d/*XQuartz
sudo pkgutil —forget org.macosforge.xquartz.pkg

А затем установил последнюю версию XQuartz (на сегодняшний день именно эта). Выход, вход в систему, безуспешно.

Я также попытался удалить /private/tmp/.X* файлы, /private/tmp/launch-* папки, содержащие дисплеи xquartz, а также .Xauthority каталоге $HOME .

Так как это не сработало, я изо всех сил пытался использовать port xorg-server X11, используя sudo port install xorg-server после удаления XQuartz. Я также должен был сделать это активным, используя launchctl load -w /Library/LaunchAgents/org.macports.startx.plist (найденный здесь), и также использовал sudo port -f deactivate xinit && sudo port activate xinit (найденный здесь).

К сожалению, это не сработало (я получил сообщение об ошибке на сервере, в котором говорилось, что у него нет прав на открытие $ DISPLAY на моей локальной машине).

Другие шаги в суперпользователе говорят о подобной проблеме:

  1. Вопрос о Маверикс, нет ответа на эту тему.
  2. Проблема с Snowleopard: мне нужно повторить launchctl load -w снова обращая внимание на совет sudo котором я не знал.

Я перепробовал все возможные комбинации и искал возможности в Интернете. Я мёртв в воде, ребята, есть идеи?

2 ответа2

2

Как указано в билете 589, это может произойти из-за ошибок в сценариях инициализации вашей оболочки.

Как указано в билете 685, это может произойти, если вы замените /usr /bin /mktemp несовместимой версией (например, GNU mktemp).

0

Сегодня у меня было время снова разобраться в этом, и что забавно, мне даже не нужно было иметь исходный mktemp в пути /usr/bin/mktemp (вы не должны этого делать, это только для иллюстрации что предыдущее обсуждение бинарного mktemp не имело никакого отношения к проблеме):

`--> ls /usr/bin/mktemp
ls: cannot access /usr/bin/mktemp: No such file or directory

моя проблема была, вероятно, установка port xquartz вместе с оригинальным xquartz. Я сделал полное удаление на обоих клиентах:

sudo port uninstall xinit xorg-server

И для "оригинального" xquartz (информация здесь, ищите "Удалить (Snow Leopard или Позже)"):

launchctl unload /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
sudo launchctl unload /Library/LaunchDaemons/org.macosforge.xquartz.privileged_startx.plist
sudo rm -rf /opt/X11* /Library/Launch*/org.macosforge.xquartz.* /Applications/Utilities/XQuartz.app /etc/*paths.d/*XQuartz
sudo pkgutil --forget org.macosforge.xquartz.pkg

Некоторые из них могут потерпеть неудачу, так как удаление порта может деактивировать их, вы можете игнорировать эти ошибки.

Это важно. В моих предыдущих попытках я потерпел неудачу, вероятно, потому что я не перезагружал свою учетную запись, что, по-видимому, необходимо для того, чтобы launchctl мог действовать (я могу ошибаться здесь, но в любом случае важно, чтобы вы вышли из системы и войдите в свою учетную запись, чтобы изменения вступили в силу).

С чистой средой, теперь установите XQuartz, выйдите из системы, войдите в систему, и она должна работать. Если нет, посмотрите в следующих инструкциях отладки из XQuartz, найдите "ssh X forwarding debugging":

[1] local $ echo $DISPLAY
/tmp/launch-Bh0fLm/:0
[2] local $ grep DISPLAY ~/.*rc ~/.login ~/.*profile ~/.MacOSX/environment.plist 2>/dev/null
[3] local $ grep -r DISPLAY /opt/local/etc /sw/etc /etc 2>/dev/null
[4] local $ ssh -Y remote
Warning: No xauth data; using fake authentication data for X11 forwarding.
[5] remote $ echo $DISPLAY
localhost:10.0
[6] remote $ grep X11 /etc/ssh/sshd_config ~/.ssh/*
X11Forwarding yes
X11DisplayOffset 10

Моя проблема началась с первой строки, где переменная DISPLAY была пустой. Я запускал команды 2 и 3, и это ничего не меняло , поэтому я понял , что проблема в чем-то связана с launchtcl , и не имеет ничего общего с шагами 4 и после. Но ваш случай может отличаться, поэтому следуйте этим инструкциям по отладке, чтобы проверить, в чем ваша проблема.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .