私のシステムに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
グラフィックアプリケーションを実行できるように設定していないようです。ここ数年、この問題は発生していませんが、次のいずれかが機能します。
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でこれを行う必要がある理由はいくつかあります(たとえば、いくつかの設定が必要な場合)。setuid または setgid ビット
²通常、最後のコマンドは&&で接続されているため、makeが成功した場合にのみインストールが試行されます。