如何在終端機中以 root 身分安裝此腳本:./qt-opensource-linux-x64-5.3.2.run?

如何在終端機中以 root 身分安裝此腳本:./qt-opensource-linux-x64-5.3.2.run?

我需要在我的系統上安裝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配置以允許您運行圖形應用程式。我已經好幾年沒有遇到這個問題了,但其中一個應該可以工作:

  1. 關閉 X 的存取控制

    xhost +
    sudo ./qt-opensource-linux-x64-1.6.0-5-online.run
    

    然後,使用 再次啟動它xhost -

  2. 將您的環境匯出到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 成功時才會嘗試安裝

相關內容