ターミナルでこのスクリプトをルートとしてインストールするにはどうすればよいですか: ./qt-opensource-linux-x64-5.3.2.run?

ターミナルでこのスクリプトをルートとしてインストールするにはどうすればよいですか: ./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として実行できますか?

編集#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、そこに書き込むための特別な権限を持つルートが必要です。¹

これは通常、

tar xvf somepackage.tar
cd somepackage
./configure
make
sudo make install

そのチェーンの最後のコマンドのみを「root として」実行する必要があります²

インストール後はすべてのユーザーがこれらの実行ファイルを使用できるようになりますが、特に「グローバル」設定を変更できなくなります。

¹ rootとしてこれを行う理由は他にもあります。例えば、setuid または setgid ビット
²最後のコマンドは && で連鎖されることが多いため、make が成功した場合にのみ install が試行されます。

関連情報