Como instalo este script como root no terminal: ./qt-opensource-linux-x64-5.3.2.run?

2

Eu preciso instalar o qt5 no meu sistema e só posso executá-lo como usuário normal. Quando tento executá-lo como o "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.

Perguntas:

Existe uma razão pela qual eu não gostaria de instalá-lo como root? Não executá-lo como root supostamente instalá-lo "em todo o sistema"?

Como posso executá-lo como root?

EDIT # 1

Minha distribuição é do Debian Wheezy se isso for importante.

Se eu executar com o 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.

EDIT # 2

Este script é de aqui e é o instalador do qt5 (o Qt é um aplicativo de plataforma e estrutura de desenvolvimento de interface do usuário.Usando o Qt, você pode facilmente transportar um aplicativo de GUI para várias plataformas sem reescrever o código do aplicativo a partir do zero.)

EDIT # 3

Pelo que posso encontrar nas instruções do site , o instalador deve ser executado como raiz , eles correm com "sudo" lá dentro?

Trecho de instruções:

$ chmod +x qt-linux-opensource-5.2.0-x86-offline.run
$ sudo ./qt-linux-opensource-5.2.0-x86-offline.run 
    
por somethingSomething 13.10.2014 / 20:10

2 respostas

4

Isso funciona como esperado no meu sistema. Você não parece ter seu sudo configurado para permitir que você execute aplicativos gráficos. Eu não encontrei esse problema em alguns anos, mas um deles deve funcionar:

  1. Desativa 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 - .

  2. Exporte seu ambiente para a sessão sudo .

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

    Eu não tenho certeza de como isso é relevante, mas vale a pena tentar.

por 13.10.2014 / 20:38
1

Não, normalmente não há razão para não instalar como root, isso é bastante comum. Não "executando" como root não é o mesmo que instalar como root. Você não deve executar isso como root, é muito raro na minha experiência 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 eles serão executados posteriormente como usuários "normais".

A instalação é a parte final do processo de compilação. A compilação de muitos pacotes pode ser feita como um usuário normal, por ex. em algum subdiretório do seu diretório. 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 a raiz tem para escrever lá.¹

Isso é o que você costuma ter com

tar xvf somepackage.tar
cd somepackage
./configure
make
sudo make install

Somente o último comando dessa cadeia precisa ser feito "como root" ²

Após a instalação, cada usuário pode usar esses executáveis, mas, entre outras coisas, isso impede que eles alterem a configuração "global".

¹ Existem mais motivos para fazer isso como root, por exemplo quando você precisa definir alguns bits setuid ou setgid
² Geralmente, os últimos comandos são encadeados com & & então a instalação só é tentada quando o make tiver sucesso

    
por 13.10.2014 / 20:13