На MA C установите Xquartz и убедитесь, что он работает после вашей попытки запустить приложение X.
pgrep -fl Xquartz
покажет все процессы и их аргументы, соответствующие Xquartz
.
Если у вас нет pgrep, вместо этого запустите /bin/ps -o 'pid,command' -e | grep Xquartz
.
Найдите запись для самого исполняемого файла с набором отображения; что-то вроде этого:
1182 /opt/X11/bin/Xquartz :0 -nolisten tcp -iglx -auth ...
Первое число - это идентификатор процесса или PID. Если вы подождете 20-30 секунд и повторно запустите команду, убедитесь, что число совпадает.
Если PID изменился, у вас возникла проблема, с которой я столкнулся, когда Xquartz завершает работу с ошибкой и система перезапускает его снова, всякий раз, когда я пытался запустить xterm.
Чтобы проверить журналы на наличие ошибок, запустите консольное приложение, которое находится в / Applications / Utilities. В поле поиска введите Xquartz
и нажмите клавишу возврата, и вы должны увидеть только записи Xquartz.
Журнал ошибок, который я видел, был:
tput: No value for $TERM and no -T specified
-: line 0: exec: uid=501(...): not found
После некоторого исследования я решил, что все, что мне нужно было сделать, это установить TERM до запуска X-сервера, и это можно сделать только в файле .x11run
, созданном в вашем домашнем каталоге.
Создать ~ / .x11run со следующим содержимым :
#!/bin/bash
export TERM=xterm-256color
# include other vars the X11 server may need
/Applications/Utilities/XQuartz.app/Contents/MacOS/X11.bin "${@}"
Затем сделайте его исполняемым: chmod +x ~/.x11run
.
Далее выйдите из системы (значок Apple в левом верхнем углу, нажмите «Выйти»), а затем снова войдите в систему и попробуйте приложение, в моем случае, xterm, и через несколько секунд оно наконец появилось.