Preciso instalar o qt5 no meu sistema e só posso executá-lo como usuário normal. Quando tento executá-lo como "superusuário", recebo este erro:
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
Eu fiz:
root ~ # export DISPLAY=:0.0
root ~ # echo $DISPLAY
:0.0
Ainda sem sorte.
Questões:
Existe uma razão pela qual eu não gostaria de instalá-lo como root? Executá-lo como root não o instala em "todo o sistema"?
Como faço para executá-lo como root?
EDITAR #1
Minha distribuição é Debian Wheezy, se for importante.
Se eu executar com 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
Mesmo erro.
EDITAR #2
Este roteiro é deaquie é o instalador qt5 (Qt é um aplicativo de plataforma cruzada e uma estrutura de desenvolvimento de UI. Usando o Qt, você pode facilmente portar um aplicativo GUI para várias plataformas sem reescrever o código do aplicativo do zero.)
EDITAR #3
Pelo que pude perceber nas instruçõesessesite, o instalador deve ser executado como root, eles executam com "sudo" lá?
Trecho das instruções:
$ chmod +x qt-linux-opensource-5.2.0-x86-offline.run
$ sudo ./qt-linux-opensource-5.2.0-x86-offline.run
Responder1
Isso funciona conforme o esperado no meu sistema. Parece que você não está sudo
configurado para permitir a execução de aplicativos gráficos. Não encontro esse problema há alguns anos, mas um destes deve funcionar:
Desligue o controle de acesso para X
xhost + sudo ./qt-opensource-linux-x64-1.6.0-5-online.run
Em seguida, ative-o novamente com
xhost -
.Exporte seu ambiente para a
sudo
sessão.sudo -E ./qt-opensource-linux-x64-1.6.0-5-online.run
Não tenho certeza de quão relevante este é, mas vale a pena tentar.
Responder2
Não, normalmente não há razão para não instalar como root, isso é bastante comum. Não "executar" como root não é o mesmo que instalar como root. Você não deve executar isso como root, na minha experiência é muito raro que um cliente X precise ser executado como root.
Instalar e executar são coisas diferentes. Muitos itens precisam ser instalados como root para entrar nos diretórios configurados durante a compilação, mas serão executados posteriormente como usuários "normais".
A instalação é a parte final do processo de compilação. A compilação para muitos pacotes pode ser feita por um usuário normal, por exemplo, em algum subdiretório do seu diretório inicial. Mas quando se trata de instalar os binários executáveis e scripts para /usr/local/bin
ou /usr/bin
e outros arquivos para /usr/lib
etc., você precisa dos direitos especiais que o root tem para escrever lá.¹
Isso é o que você normalmente consegue
tar xvf somepackage.tar
cd somepackage
./configure
make
sudo make install
Apenas o último comando dessa cadeia precisa ser executado "como root"²
Após a instalação, todos os usuários podem usar esses executáveis, mas, entre outras coisas, isso os impede de alterar a configuração "global".
¹ Existem mais razões para fazer isso como root, por exemplo, quando você precisa definir algumbits setuid ou setgid
² Freqüentemente, os últimos comandos são encadeados com &&, então a instalação só é tentada quando o make é bem-sucedido