Necesito instalar qt5 en mi sistema y solo puedo ejecutarlo como usuario normal. Cuando intento ejecutarlo como "superusuario", aparece este error:
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
Hice:
root ~ # export DISPLAY=:0.0
root ~ # echo $DISPLAY
:0.0
Todavía no hubo suerte.
Preguntas:
¿Hay alguna razón por la que no quisiera instalarlo como root? ¿No se supone que ejecutarlo como root lo instala en "todo el sistema"?
¿Cómo lo ejecuto como root?
EDITAR #1
Mi distribución es Debian Wheezy si es que importa.
Si lo ejecuto con 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
Mismo error.
EDITAR #2
Este guión es deaquíy es el instalador de qt5 (Qt es una aplicación multiplataforma y un marco de desarrollo de UI. Con Qt, puede portar fácilmente una aplicación GUI a múltiples plataformas sin tener que reescribir el código de la aplicación desde cero).
EDITAR #3
Por lo que puedo deducir de las instruccionesestesitio, el instalador debe ejecutarse como root, ¿lo ejecutan con "sudo" allí?
Extracto de las direcciones:
$ chmod +x qt-linux-opensource-5.2.0-x86-offline.run
$ sudo ./qt-linux-opensource-5.2.0-x86-offline.run
Respuesta1
Esto funciona como se esperaba desde el primer momento en mi sistema. Parece que no lo tienes sudo
configurado para permitirte ejecutar aplicaciones gráficas. No he encontrado este problema en bastantes años, pero uno de estos debería funcionar:
Desactivar el control de acceso para X
xhost + sudo ./qt-opensource-linux-x64-1.6.0-5-online.run
Luego, actívalo nuevamente con
xhost -
.Exporte su entorno a la
sudo
sesión.sudo -E ./qt-opensource-linux-x64-1.6.0-5-online.run
No estoy seguro de cuán relevante es este, pero vale la pena intentarlo.
Respuesta2
No, normalmente no hay motivo para no instalar como root, esto es bastante común. No "ejecutar" como root no es lo mismo que instalar como root. No debe ejecutar esto como root; en mi experiencia, es muy raro que un cliente X deba ejecutarse como root.
Instalar y ejecutar son cosas diferentes. Muchos elementos deben instalarse como root para acceder a los directorios configurados durante la compilación, pero luego se ejecutarán como usuarios "normales".
La instalación es la parte final del proceso de compilación. La compilación de muchos paquetes se puede realizar como un usuario normal, por ejemplo, en algún subdirectorio de su directorio personal. Pero cuando se trata de instalar archivos binarios ejecutables y scripts para /usr/local/bin
o /usr/bin
y otros archivos, /usr/lib
etc., necesita los derechos especiales que tiene la raíz para escribir allí.¹
Esto es lo que normalmente obtienes con
tar xvf somepackage.tar
cd somepackage
./configure
make
sudo make install
Sólo el último comando de esa cadena debe realizarse "como root"²
Después de la instalación, todos los usuarios pueden utilizar esos ejecutables, pero, entre otras cosas, esto les impide alterar la configuración "global".
¹ Hay más razones para hacer esto como root, por ejemplo, cuando necesitas configurar algunasbits setuid o setgid
² A menudo, los últimos comandos están encadenados con &&, por lo que la instalación solo se intenta cuando la creación se realizó correctamente.