2010-11-20 115 views
0

最近,爲了嘗試使用xmonad(顯然需要X11版本> = 1.4.6.1),我嘗試通過Macports升級Snow Leopard的原生X11。然而,升級之後,X11的表現很奇怪。例如,它不會自動啓動quartz-wm(儘管它可以通過xterm手動執行)。它在長時間不活動的情況下也會崩潰。檢查控制檯,我得到以下錯誤:[org.macports.startx:沒有指定協議]。此外,儘管在升級到X11 v1.9.2的,xmonad仍然不能正常工作,給我以下錯誤: 如何在故障的Macports升級後修復X11?


配置xmonad-0.9 ...
Setup.lhs:至少有以下依賴性缺失:
X11 > = 1.4.6.1(!)
在這一點上,我決定放棄xmonad並使用本地X11,但現在這給了我完全相同的錯誤。特別是,本機X告訴我它不能與在DISPLAY變量中設置的顯示(:0.0)通信(顯然這已經被macports的X11安裝所改變)。不用說,這是非常令人沮喪的,任何幫助將不勝感激。謝謝!

+0

投票發送給超級用戶,它應該是一個更好的選擇。 – dmckee 2010-11-20 22:56:17

回答

0

MacPorts不升級Snow Leopard的X11,它安裝了一個完全獨立版本的X11客戶端庫以及您要求的其他任何軟件包。這是MacPorts及其所有軟件包的故意設計決定。默認情況下,一般情況下,MacPorts將所有內容安裝在/opt/local之下。要不使用MacPorts版本,只要確保在shell環境變量中不包含任何/opt/local目錄 - 特別是/opt/local/bin - 特別是PATH - 或者任何可執行文件和庫的絕對路徑。如果你想完全刪除的MacPorts,下面將擺脫剛纔的一切:

$ sudo rm -rf /opt/local 
+0

雖然我很欣賞這個回覆,但我寧願不必將我的PATH中的/ opt/local關閉,因爲我非常廣泛地使用其他端口。此外,似乎X11端口以某種方式改變了原生X的行爲。例如,打開終端並在「/ usr/X11/bin/X」中輸入X就很好,除非它不觸發quartz-wm (所以它看起來不像「Mac-native」)。但是,通過轉到/Applications/Utilities/X11.app啓動X會觸發「找不到協議」錯誤,並阻止我啓動任何X應用程序(包括xterm)。希望這可以稍微澄清一下問題。 – Dan 2010-11-20 22:07:00

0

的X11到Xmonad錯誤消息指這是哈斯克爾http://hackage.haskell.org/package/X11/,這似乎並沒有要求任何X服務器的特定數字版本X11正確。換句話說,你在咆哮錯誤的樹。