システムに 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
。この問題はここ数年発生していませんが、次のいずれかが機能するはずです。
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
、そこに書き込むための特別な権限を持つルートが必要です。¹
これは通常、
tar xvf somepackage.tar
cd somepackage
./configure
make
sudo make install
そのチェーンの最後のコマンドのみを「root として」実行する必要があります²
インストール後はすべてのユーザーがこれらの実行ファイルを使用できるようになりますが、特に「グローバル」設定を変更できなくなります。
¹ rootとしてこれを行う理由は他にもあります。例えば、setuid または setgid ビット
²最後のコマンドは && で連鎖されることが多いため、make が成功した場合にのみ install が試行されます。