Ich muss qt5 auf meinem System installieren und kann es nur als normaler Benutzer ausführen. Wenn ich versuche, es als „Superuser“ auszuführen, erhalte ich diesen Fehler:
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
Ich habe getan:
root ~ # export DISPLAY=:0.0
root ~ # echo $DISPLAY
:0.0
Immer noch kein Glück.
Fragen:
Gibt es einen Grund, warum ich es nicht als Root installieren möchte? Wird es nicht angeblich „systemweit“ installiert, wenn man es als Root ausführt?
Wie führe ich es als Root aus?
BEARBEITEN #1
Falls das wichtig ist, ist meine Distribution Debian Wheezy.
Wenn ich es mit sudo ausführe:
~$ 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
Gleicher Fehler.
BEARBEITEN #2
Dieses Skript stammt vonHierund ist das Qt5-Installationsprogramm (Qt ist ein plattformübergreifendes Anwendungs- und UI-Entwicklungsframework. Mit Qt können Sie eine GUI-Anwendung problemlos auf mehrere Plattformen portieren, ohne den Anwendungscode von Grund auf neu schreiben zu müssen.)
BEARBEITEN #3
Soweit ich es aus den Anweisungen entnehmen kann,DasSite, das Installationsprogramm sollte als Root ausgeführt werden. Führen Sie es dort mit „sudo“ aus?
Auszug aus der Anleitung:
$ chmod +x qt-linux-opensource-5.2.0-x86-offline.run
$ sudo ./qt-linux-opensource-5.2.0-x86-offline.run
Antwort1
Dies funktioniert auf meinem System wie erwartet. Sie scheinen Ihr System nicht so sudo
konfiguriert zu haben, dass Sie grafische Anwendungen ausführen können. Ich habe dieses Problem seit einigen Jahren nicht mehr erlebt, aber eines davon sollte funktionieren:
Zugriffskontrolle für X ausschalten
xhost + sudo ./qt-opensource-linux-x64-1.6.0-5-online.run
Anschließend mit wieder aktivieren
xhost -
.Exportieren Sie Ihre Umgebung in die
sudo
Sitzung.sudo -E ./qt-opensource-linux-x64-1.6.0-5-online.run
Ich bin nicht sicher, wie relevant das ist, aber einen Versuch ist es wert.
Antwort2
Nein, es gibt normalerweise keinen Grund, die Installation nicht als Root durchzuführen, das ist ziemlich üblich. Nein, „Ausführen“ als Root ist nicht dasselbe wie die Installation als Root. Sie sollten dies nicht als Root ausführen, es kommt meiner Erfahrung nach sehr selten vor, dass ein X-Client als Root ausgeführt werden muss.
Installieren und Ausführen sind zwei verschiedene Dinge. Viele Elemente müssen als Root installiert werden, um in die während der Kompilierung konfigurierten Verzeichnisse zu gelangen, werden danach jedoch als „normale“ Benutzer ausgeführt.
Die Installation ist der letzte Teil des Kompilierungsprozesses. Die Kompilierung vieler Pakete kann als normaler Benutzer durchgeführt werden, z. B. in einem Unterverzeichnis Ihres Home-Verzeichnisses. Wenn es jedoch um die Installation geht, um die ausführbaren Binärdateien und Skripte nach /usr/local/bin
oder /usr/bin
und andere Dateien nach /usr/lib
usw., benötigen Sie die speziellen Rechte, die root hat, um dort schreiben zu können.¹
Das erhalten Sie normalerweise mit
tar xvf somepackage.tar
cd somepackage
./configure
make
sudo make install
Nur der letzte Befehl in dieser Kette muss "als Root" ausgeführt werden²
Nach der Installation kann jeder Benutzer diese ausführbaren Dateien verwenden, dies verhindert jedoch unter anderem, dass er das „globale“ Setup ändert.
¹ Es gibt noch weitere Gründe, dies als Root zu tun, z. B. wenn Sie einigeSetuid- oder Setgid-Bits
² Oft werden die letzten Befehle mit && verkettet, so dass install nur versucht wird, wenn make erfolgreich war.