回答:
別のユーザーとしてソフトウェアを実行すると、実際には、いくつかの「過剰な」変数(特に、ライブラリの挿入または特定の特権の設定を担当する変数)を引き継がない新しい最小かつ隔離された環境を開始します。sudo nautilus
呼び出しを次のものに置き換えます-現在のセッションからユーザー固有のxサーバー設定を引き継ぎます:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus
これは一度限りの低レベルのソリューションですが、構成が正しくないマシンでも機能します。恒久的に「修正」したい場合sudo
は、環境設定の問題を見つけて、他の回答で説明されているように修正する必要があります。
sudo nautilus
すると、ターミナルから正常に動作するはずです。通常、新規インストールで端末からこれを行うと、sudoで通常どおりに開きます。
pkexec
、sudo
manページも試してみてください。
Cannot open display
が構成ファイルから何かが欠落していることを意味する場合です。何かがそれを修正し、環境から削除する必要があるためです。それでは、どうすれば永久に環境に戻すことができるので、これに対処する必要はありませんか?
env
前にポリシーキットを実行するように明示的に指示していますがnautilus
、前者が変数の設定を処理します。確認できman env
ます。
env COMMAND ARG ...
簡単にするために、システムの新しい起動について詳しく説明しました。
ここでのすべての説明の後、私は結果に来ました-そして、ターミナルの「env」はすでにこれらのセッションに適していると言いました
環境変数を使用する次の2つの行:
私が選択したtmpの動作について:
mkdir -pv〜/ .cache / xdgr
環境変数を設定するには:
export XDG_RUNTIME_DIR = $ PATH:〜/ .cache / xdgr
ターミナルを閉じ、envをリコールするために新たに開いた後、次のように伝えます。
XDG_RUNTIME_DIR = / run / user / 1001
注:ubuntuの下のユーザーには問題ありません。rootにはさらに必要です(用語ごとの最新情報-0700のアクセス許可)
-X
sshセッションを開始するときにオプションを使用するのを忘れていました。