Mint 12:突觸包管理器錯誤
昨天我遇到了同樣的問題,我通過執行解決了
sudo synaptic
但是今天我不知道發生了什麼,如果我跑了,
gksu synaptic
或者gksudo synaptic
他們什麼都不做。如果我進入根目錄並執行這些命令或執行
sudo synaptic
,我會看到:sudo synaptic No protocol specified (synaptic:32377): Gtk-WARNING **: cannot open display: :0.0
編輯:@Nunoxic
我正在本地電腦上工作。當我做的時候,
sudo apt-get update
有些東西會更新,有些東西不會更新
E: Some index files failed to download. They have been ignored, or old ones used instead.
sudo apt-get update
我前兩天跑了。當我做echo $DISPLAY
的輸出是:0
@吉爾斯
的輸出
echo $XAUTHORITY
根本沒有:)的輸出
sudo env | sort
是COLORTERM=gnome-terminal DISPLAY=:0.0 HOME=/root LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_COLLATE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LOGNAME=root MAIL=/var/mail/root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin SHELL=/bin/bash SUDO_COMMAND=/usr/bin/env SUDO_GID=0 SUDO_UID=0 SUDO_USER=root TERM=xterm USERNAME=root USER=root
的輸出
sudo xterm
是No protocol specified Warning: This program is an suid-root program or is being run by the root user. The full text of the error or warning message cannot be safely formatted in this environment. You may get a more descriptive message by running the program as a non-root user or by removing the suid bit on the executable. xterm Xt error: Can't open display: %s
編輯
的輸出
XAUTHORITY=~/.Xauthority; sudo xterm
是No protocol specified Warning: This program is an suid-root program or is being run by the root user. The full text of the error or warning message cannot be safely formatted in this environment. You may get a more descriptive message by running the program as a non-root user or by removing the suid bit on the executable. xterm Xt error: Can't open display: %s
的輸出
sudo -s9999 strace xterm
是sudo: invalid option -- '9' usage: sudo -h | -K | -k | -L | -V usage: sudo -v [-AknS] [-g groupname|#gid] [-p prompt] [-u user name|#uid] usage: sudo -l[l] [-AknS] [-g groupname|#gid] [-p prompt] [-U user name] [-u user name|#uid] [-g groupname|#gid] [command] usage: sudo [-AbEHknPS] [-C fd] [-g groupname|#gid] [-p prompt] [-u user name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>] usage: sudo -e [-AknS] [-C fd] [-g groupname|#gid] [-p prompt] [-u user name|#uid] file ...
一種可能的解釋是,由於最近發生的一些變化,X cookie 文件的位置已從 更改
~/.Xauthority
為$XAUTHORITY
. X cookie 文件包含 X 應用程序在連接到 X 伺服器時必須提供的密碼。(有關更多背景資訊,請參閱此答案的第一部分。)確保
XAUTHORITY
變數沒有被sudo
. 執行visudo
以將此行添加到sudoers
文件中:Defaults env_keep += XAUTHORITY
一個相關的可能性是,如果您
XAUTHORITY
的環境中沒有,X cookie 儲存在~/.Xauthority
. 如果HOME
環境變數沒有被 保存sudo
,那麼在其下執行的 X 應用程序sudo
將查看~root/.Xauthority
哪個沒有正確的 cookie。有三種簡單的方法可以解決這個問題,從最方便到不太方便:
- 關閉
env_reset
選項sudoers
(當您可以作為目標使用者執行任意命令時,對 沒有真正的安全好處env_reset
),並且不要打開set_home
. 這樣,~/.Xauthority
undersudo
仍然是指呼叫使用者的主目錄。- 告訴
sudo
保留XAUTHORITY
上面的變數,並XAUTHORITY
在你的 X 會話啟動文件中設置,即使它是預設值。- 使用會話
XAUTHORITY
內呼叫使用者的主目錄進行設置,例如通過執行sudo
sudo env XAUTHORITY=${XAUTHORITY:-~/.Xauthority} xterm