Wie installiere ich dieses Skript als Root im Terminal: ./qt-opensource-linux-x64-5.3.2.run?

Wie installiere ich dieses Skript als Root im Terminal: ./qt-opensource-linux-x64-5.3.2.run?

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 sudokonfiguriert 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:

  1. Zugriffskontrolle für X ausschalten

    xhost +
    sudo ./qt-opensource-linux-x64-1.6.0-5-online.run
    

    Anschließend mit wieder aktivieren xhost -.

  2. Exportieren Sie Ihre Umgebung in die sudoSitzung.

    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/binoder /usr/binund andere Dateien nach /usr/libusw., 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.

verwandte Informationen