Iniciar o Eclipse a partir do iniciador Unity não funciona corretamente

1

Quando inicio Eclipse no iniciador do Unity, recebo esta mensagem:

Could not find the folder 'tools' inside SDK '/home/engine/android-sdks/'

Mas quando eu digito no terminal

sudo eclipse

funciona corretamente e depois de executar

sudo chown -R $USER:$USER ~

Eu tenho isso:

/home/engine/.gvfs : Permission denied

depois disso eu tentei:

engine@Engine:~$ ls -al /home/engine/android-sdks/

e eu tenho isso:

total 36
drwxrwxr-x  5 engine engine  4096 Jul 31 22:17 .
drwx------ 57 engine engine 20480 Aug 11 10:26 ..
drwxrwxr-x  2 engine engine  4096 Jul 31 22:17 add-ons
drwxrwxr-x  2 engine engine  4096 Jul 31 22:17 platforms
drwxrwxr-x  2 engine engine  4096 Jul 31 22:17 temp

obrigado Eliah Kagan

Existe alguma razão para isso?

    
por Engine 11.08.2012 / 22:30

2 respostas

2

Pode haver duas coisas acontecendo aqui:

  • Propriedade : os arquivos localizados no diretório pessoal do usuário podem pertencer a root , quando eles devem pertencer ao usuário.

  • Localização : os arquivos podem estar localizados no diretório pessoal de root ( /root ) quando eles devem estar localizados no diretório pessoal do usuário. (O OP descobriu isso, mas aceitou essa resposta, então eu a acrescentei para incluir isso em benefício de outras pessoas que estão enfrentando esse problema.)

Como fixar a propriedade

sudo eclipse executa o Eclipse como root , mas ainda usa o seu (isto é, não root 's) diretório home para salvar seus arquivos. Como ele é executado como root , os arquivos criados são de propriedade por root , e os usuários que não sejam root não podem acessá-los. O resultado é que, se você executar sudo eclipse uma vez, o Eclipse só poderá ser executado em sudo eclipse , até que o problema seja corrigido.

Este não é um problema permissões , é um problema propriedade , e a solução é retomar a propriedade dos arquivos e pastas afetados. Geralmente é seguro ser o proprietário de todos os arquivos dentro de sua pasta pessoal. Então, com o Eclipse não em execução, execute este comando:

sudo chown -R $USER:$USER ~

$USER será expandido pelo shell para seu nome de usuário, para que você possa executá-lo exatamente como está. Como alternativa, se você quiser substituir $USER pelo seu nome de usuário real (nesse caso, engine ), isso também funcionará.

Como esse comando funciona:

  • chown é o comando para alterar a propriedade de arquivos e diretórios. li>
  • ~ é uma abreviação de shell para seu diretório inicial.
  • -R significa que não é apenas alterar a propriedade do seu diretório inicial, mas que a operação é aplicar recursivamente a todos os arquivos contidos em qualquer lugar dentro do seu diretório pessoal.
  • O primeiro $USER significa que você será o proprietário dos arquivos. O segundo $USER (após o : ) significa que o grupo do usuário (o grupo criado com sua conta de usuário, para ser o proprietário do grupo padrão dos seus arquivos) será o proprietário do grupo.

Para referência futura:

  • Se você precisar executar um aplicativo gráfico como root , use um gráfico sudo frontend como gksu / gksudo ou kdesudo . Isso define a variável de ambiente $HOME como% home/root - root . (Também faz uma cópia de ~/.Xauthority .)
  • No entanto, é melhor não executar aplicativos complexos como o Eclipse ou o Firefox como root , por motivos de segurança. Alguns utilitários gráficos devem ser executados como root para funcionar, mas o Eclipse não é uma ferramenta de administração e você nunca deve precisar executá-lo como root . Se você fizer, algo está errado.

Localização de correção

Como @Engine escreveu:

The problem wasn't the whole directory, but only the folder /tools in android-sdks. I copied it from the root folder and then I gave my user the ownerships rights with:

chown -R $USER:USER ~

Isso significa que, quando eclipse foi executado como root , ele tinha (pelo menos em algum momento) usado o diretório base de root (não o diretório base do usuário) e o Android SDK foi armazenado dentro do diretório pessoal do root .

  • Ou o SDK do Android pode ter sido instalado manualmente como root .

Para o benefício de outras pessoas com este problema:

  • A pasta tools pode ser copiada de dentro de /root com:

    sudo cp -R /root/android-sdks/tools ~/android-sdks/
    
  • Ou você pode mover a pasta tools (em vez de copiar) com:

    sudo mv /root/android-sdks/tools ~/android-sdks/
    

Em seguida, corrija a propriedade conforme descrito acima. Ou apenas para a pasta tools realocada, com:

sudo chown -R $USER:$USER ~/android-sdks/tools
    
por Eliah Kagan 11.08.2012 / 23:35
-1

Sim, eu conheço esse problema.

Verifique / altere as permissões da pasta. (Use 755.)

    
por Jesus 11.08.2012 / 23:23