OK、X11はMountainLionに含まれなくなりました。大丈夫です、大したことはありません。どこにでもいる誰もがX11用のXQuartzパッケージを入手するように言っています。
私は開発者ですが、MacPortsを介して大量のソフトウェアを管理しています。 XQuartzパッケージではなくxorg-serverパッケージをインストールして、すべてのパッケージ管理の利点(更新、構成管理、追加のソフトウェアがインストールされた1つの場所など)を取得したいと思います。
問題は、OS X 10.7以下では、起動されたエージェントがX11ディスプレイの要求をインターセプトし、OS XでX11を起動することでした。自動起動されたX11を置き換えるには、Apple X11plistとMacPortsX11 plistをロードします。これにより、$ DISPLAY変数を設定するユーザーと、起動されるX11デーモンが変更されます。
これは、X11がxorg-serverパッケージから起動される方法の場合のようです。理論的には、X11またはdbusに接続しようとすると、launchctlがMacPortsX11デーモンを起動します。
この部分は問題ありません。以下を参照してください。
echo $DISPLAY
/tmp/launch-K8CDIi/org.macports:0
ただし、X11を起動するAppleからの古い起動エージェントplistはもう存在しないようです。XQuartzをインストールするためのダイアログがポップアップし、そのダイアログがX11の起動をインターセプトしています。アプリ。起動デーモンによって制御されていないように見えるため、「XQuartzをインストールしますか」というおかしなメッセージを置き換える方法がわかりません。X11の正常なインストールが使用されるのを待っていますが、 Launchedでは発生しないDISPLAYのリクエストの傍受がありますが、Mountain Lionにそれが悪い子猫であり、すでにインストールしたものをインストールするように求めないようにするには、どうすればよいでしょうか。
私はあきらめて、パッケージのインストール後にXQuartzをインストールするという簡単な方法を取りました。ログアウトして再度ログインするだけで、MacPortsからインストールしたGimp2.8を起動できました。
私も開発者ですが、Gimpを実行するためにX11を使用しているだけなので、他のオプションをさらに調査する必要はありません。したがって、それを受け入れて、それ以上のクロックサイクルを無駄にしないことをお勧めします;-)
これはそれを修正する方法です:
Sudo mv /usr/X11 /usr/X11.xstub
Sudo ln -s /opt/X11 /usr/X11
(これは、デフォルトのmacportsの場所にxorg-serverがインストールされていることを前提としています)
それが起こる理由については、在庫のOSXインストールのすべてがxstubまたはlibxstubを指しているため、ダイアログボックスがポップアップします。
アプリケーションは/ usr/X11/lib内のライブラリに直接リンクする傾向があるため、次のようにポップアップがトリガーされます。
ldd /Applications/Games/Hotline\ Miami.app/Contents/MacOS/HotlineMiami.app/Contents/MacOS/HotlineMiami
...
/usr/X11/lib/libGL.1.dylib (compatibility version 1.2.0, current version 1.2.0)
...
Libxstubにリンクするもの:
ldd /usr/X11/lib/libGL.1.dylib
...
/usr/X11/lib/libxstub.dylib (compatibility version 1.0.0, current version 1.0.0)
...