web-dev-qa-db-ja.com

「エラー:XDG_RUNTIME_DIRが環境に設定されていません。」 rootとしてnautilusを実行しようとしたとき

Rootとしてnautilusを実行しようとしていますが、ターミナルから「Sudo nautilus」を実行すると、次のエラーが表示されます。

エラー:XDG_RUNTIME_DIRが環境に設定されていません。

(nautilus:9341):Gtk-警告**:ディスプレイを開けません:

Nautilusを非ルートとして実行しようとしても、問題は発生しません。私はubuntu 14.04を使用しています。誰も私がこれを修正する方法を知っていますか?

13

別のユーザーとしてソフトウェアを実行すると、実際には、いくつかの「過剰な」変数(特に、ライブラリの挿入または特定の特権の設定を担当する変数)を引き継がない新しい最小かつ隔離された環境を開始します。 Sudo nautilus呼び出しを次のように置き換えます-現在のセッションからユーザー固有のxサーバー設定を引き継ぎます:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nautilus

これは1回限りの低レベルのソリューションですが、構成が正しくないマシンでも機能します。永続的に「Sudoを修正」したい場合は、環境設定の問題を見つけて、他の回答で説明されているように修正する必要があります。

13
cprn

Ubuntu 14.04でも同じ問題が発生しました。を押してターミナルを開き、

Ctrl + AltT

次にSudo visudo

行を変更する

デフォルトenv_keep = "https_proxy"

デフォルトenv_keep + = "https_proxy"

それは魅力のように働いた。

1
Om Prakash

簡単にするために-システムの新しい起動について詳しく説明しました。

ここですべての説明をした後、私は結果に来ました-そして、ターミナルの「env」はすでにこれらのセッションに適していると言いました:

環境変数を使用する次の2行:

私が選択したtmpの動作について:

mkdir -pv〜/ .cache/xdgr

環境変数を設定するには:

export XDG_RUNTIME_DIR = $ PATH:〜/ .cache/xdgr

ターミナルを閉じ、envをリコールするために新たに開いた後、次のように伝えます。

XDG_RUNTIME_DIR =/run/user/1001

注:ubuntuの下のユーザーには問題ありません。rootにはさらに必要です(期間ごとの最新情報-0700のアクセス許可)

1
Andrew

Dockerでこのエラーが発生する場合;これが私がすることです

# Sudo xhost +
access control disabled, clients can connect from any Host
# export DISPLAY=:0.0
# docker run -it --env DISPLAY=unix$DISPLAY --privileged  --volume /tmp/.X11-unix:/tmp/.X11-unix .. rest of your Docker arugments
0
Alex Punnen