
@terdon の回答に関して編集しました。
私のUbuntuコンピュータの場合:
経由でサーバーに接続するとssh -X my_server
、プログラムを起動できます。
その後、sudo -i
ルートになるのですが、同じプログラムを起動できません。
エラー:
認証が間違っているため、X11 接続が拒否されました。qt.qpa.xcb: ディスプレイ localhost:18.0 に接続できませんでした。qt.qpa.plugin: Qt プラットフォーム プラグイン "xcb" は見つかりましたが、"" にロードできませんでした。Qt プラットフォーム プラグインを初期化できなかったため、このアプリケーションは起動できませんでした。アプリケーションを再インストールすると、この問題は解決される可能性があります。
利用可能なプラットフォーム プラグインは、eglfs、linuxfb、minimal、minimalegl、offscreen、vnc、xcb です。
中止されました(コアダンプされました)
私はウィンドウズVMとモバエクスタームX サーバーが使用するアドレスが表示されます。
上記と同じことをすると、同じ問題が発生します。ただし、入力は可能でexport DISPLAY=172.30.4.66:0.0
、動作します。
echo $DISPLAY
入力したアドレスが表示されます。
Ubuntu コンピューターでこれらのアドレスを取得するにはどうすればいいですか?
と入力すると、 がecho $DISPLAY
表示されますが、動作しません。:0
export DISPLAY=<my ip>:0
「x11-xserver-utils」がインストールされていません(xhostなし)。
答え1
まず、 は必要ありませんsudo su
。1 つのプログラムで済むのに、なぜ 2 つのプログラムを使用するのでしょうか。 を実行するだけですsudo -i
。次に、なぜこれが必要なのでしょうか。プログラムを root として実行する場合は、 を実行するだけですsudo programName
。次に、これは IP を取得することではありません (ちなみに、IP を難読化しても意味がありません。172.30.4.66 はホーム ネットワーク上の内部アドレスであり、パブリック IP ではありません)。これはアクセスを許可するためのものです。
本当に root が X セッションでグラフィカル プログラムを起動できるようにしたい場合は、 を実行してxhost +
すべてのユーザーにアクセスを許可する必要があります。 を実行してxhost +
から起動してみてください。 それでもうまくいかない場合は、出力を質問に含めて更新してください。