Как исправить X11 после ошибочного обновления Macports?

Недавно, пытаясь попробовать xmonad (для которого, очевидно, требуется версия X11 >= 1.4.6.1), я попытался обновить собственный X11 Snow Leopard через Macports. Однако после обновления X11 стал вести себя странно. Например, он не запустит кварц-wm автоматически (хотя позволяет мне сделать это вручную через xterm). Он также вылетает после длительного бездействия. Проверяя консоль, получаю следующие ошибки: [org.macports.startx: Протокол не указан]. Далее, несмотря на обновление до X11 v1.9.2, xmonad по-прежнему не работает, выдавая следующую ошибку:


Configuring xmonad-0.9...
Setup.lhs: Отсутствуют как минимум следующие зависимости:< br> X11 >=1.4.6.1 (!)
В этот момент я решил просто отказаться от xmonad и использовать родной X11, но теперь это дает мне точно такие же ошибки. В частности, собственный X сообщает мне, что он не может взаимодействовать с дисплеем (: 0.0), установленным в переменной DISPLAY (которая, по-видимому, была изменена при установке Macports X11). Излишне говорить, что это очень расстраивает, и любая помощь будет принята с благодарностью. Спасибо!


person Dan    schedule 20.11.2010    source источник
comment
Голосование за отправку этого суперпользователю, где это должно быть лучше.   -  person dmckee --- ex-moderator kitten    schedule 21.11.2010


Ответы (2)


MacPorts не обновляет Snow Leopards X11, он устанавливает совершенно отдельную версию клиентских библиотек X11 и любые другие пакеты, которые вы попросите. Это продуманное дизайнерское решение для MacPorts и всех его пакетов. По умолчанию и вообще MacPorts устанавливает все под /opt/local. Чтобы не использовать версию MacPorts, просто убедитесь, что вы не включаете какие-либо каталоги /opt/local, особенно /opt/local/bin, в переменные среды вашей оболочки, в частности PATH, или в какие-либо абсолютные пути к исполняемым файлам и библиотекам. Если вы хотите полностью удалить MacPorts, следующее поможет избавиться практически от всего:

$ sudo rm -rf /opt/local
person Ned Deily    schedule 20.11.2010
comment
Хотя я ценю ответ, я бы предпочел не удалять /opt/local из моего PATH, так как я довольно широко использую другие порты. Кроме того, кажется, что порт X11 каким-то образом меняет поведение собственного X. Например, открытие терминала и ввод /usr/X11/bin/X запускает X очень хорошо, за исключением того, что он не запускает кварц-wm (так что он не выглядит родным для Mac, если можно так выразиться). Однако запуск X путем перехода в /Applications/Utilities/X11.app вызывает ошибку «Протокол не найден» и не позволяет запускать любые приложения X (включая xterm). Надеюсь, это немного проясняет проблему. - person Dan; 21.11.2010

X11, на который ссылается сообщение об ошибке Xmonad, — это пакет Haskell http://hackage.haskell.org/package/X11/, который, похоже, не требует какой-либо конкретной числовой версии собственно X11 или X-сервера. Другими словами, вы лаяли не на то дерево.

person SamB    schedule 25.06.2012