我需要在我的系統上安裝qt5,並且只能以普通用戶身份運行它。當我嘗試以“超級用戶”身份運行它時,出現以下錯誤:
root ~ # ./qt-opensource-linux-x64-5.3.2.run
No protocol specified
qt-opensource-linux-x64-5.3.2.run: cannot connect to X server :0.0
我已經搞定了:
root ~ # export DISPLAY=:0.0
root ~ # echo $DISPLAY
:0.0
還是沒有運氣。
問題:
我有什麼理由不想以 root 身分安裝它嗎?難道以 root 身份運行它不會在“系統範圍內”安裝它嗎?
我如何以 root 身份運行它?
編輯#1
如果重要的話,我的發行版是 Debian Wheezy。
如果我用 sudo 運行它:
~$ sudo ./qt-opensource-linux-x64-5.3.2.run
No protocol specified
qt-opensource-linux-x64-5.3.2.run: cannot connect to X server :0.0
同樣的錯誤。
編輯#2
這個腳本來自這裡並且是qt5安裝程式(Qt是一個跨平台應用程式和UI開發框架。使用Qt,您可以輕鬆地將GUI應用程式移植到多個平台,而無需從頭開始重寫應用程式程式碼。)
編輯#3
根據我從指示中收集到的信息這站點,安裝程式應該以 root 身份運行,他們在那裡使用“sudo”運行它?
指導摘錄:
$ chmod +x qt-linux-opensource-5.2.0-x86-offline.run
$ sudo ./qt-linux-opensource-5.2.0-x86-offline.run
答案1
這在我的系統上按預期工作。您似乎沒有進行sudo
配置以允許您運行圖形應用程式。我已經好幾年沒有遇到這個問題了,但其中一個應該可以工作:
關閉 X 的存取控制
xhost + sudo ./qt-opensource-linux-x64-1.6.0-5-online.run
然後,使用 再次啟動它
xhost -
。將您的環境匯出到
sudo
會話。sudo -E ./qt-opensource-linux-x64-1.6.0-5-online.run
我不確定這個有多大相關性,但值得一試。
答案2
不,通常沒有理由不以 root 身分安裝,這種情況很常見。不以 root 身分「運行」與以 root 身分安裝不同。您不應該以 root 身分運行它,根據我的經驗,X 用戶端很少需要以 root 身分運行。
安裝和運行是不同的事情。許多專案需要以 root 身分安裝才能進入編譯期間配置的目錄,但隨後它們將作為「普通」使用者執行。
安裝是編譯過程的最後部分。許多套件的編譯可以作為普通使用者完成,例如在主目錄的某個子目錄中。但是,在安裝可執行二進位檔案和腳本到/usr/local/bin
或/usr/bin
以及其他檔案/usr/lib
等時,您需要 root 必須在那裡寫入的特殊權限。
這就是你通常會遇到的情況
tar xvf somepackage.tar
cd somepackage
./configure
make
sudo make install
只有該鏈中的最後一個指令需要「以 root 身分」執行²
安裝後,每個使用者都可以使用這些可執行文件,但是,除其他外,這會阻止他們更改「全域」設定。
¹有更多理由以 root 身分執行此操作,例如,當您需要設定一些setuid 或 setgid 位
²通常最後的命令與 && 連結在一起,因此只有在 make 成功時才會嘗試安裝