このスクリプトを端末に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でどのように実行しますか?

編集#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でこれを行う必要がある理由はいくつかあります(たとえば、いくつかの設定が必要な場合)。setuid または setgid ビット
²通常、最後のコマンドは&&で接続されているため、makeが成功した場合にのみインストールが試行されます。

関連情報