Autor Tópico: Alternar versões do Java através de script  (Lida 3389 vezes)

Offline JesseGaspar

  • Usuário Ubuntu
  • *
  • Mensagens: 4
    • Ver perfil
Alternar versões do Java através de script
« Online: 20 de Agosto de 2012, 11:59 »
Olá, pessoal. Bom dia!
Perdoem-me caso esteja postando na área errada, mas imagino que esta seja a que mais faz sentido.

Trabalho numa instituição de ensino, onde faço parte do suporte técnico.
Iniciei no Linux há pouco tempo e sinto algumas dificuldades(o que é normal), mas também tenho facilidade em aprender.

Minha dúvida é bem simples. Nos dias de hoje, os instrutores da empresa aplicam diversos cursos.
Alguns precisam do Java na versão 6, e outros na versão 7. Beleza. Ambos estão instados e configurados nas máquinas. Porém, para que possamos alterar/modificar as versões, o preciso executar o seguinte comando via terminal:
Código: [Selecionar]
$ sudo update-alternatives --config java
Ele me retorna a seguinte mensagem:
Citar
[sudo] password for jessegaspar:
Existem 2 escolhas para a alternativa java (disponibiliza /usr/bin/java).

  Selecção   Caminho                                  Prioridade Estado
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-sun/jre/bin/java      63        modo automático
  1            /usr/lib/jvm/java-6-sun/jre/bin/java      63        modo manual
* 2            /usr/lib/jvm/java-7-oracle/jre/bin/java   2         modo manual

Pressione enter para manter a escolha actual
  • , ou digite o número da selecção:
Ou seja, se eu selecionar 0(zero), uso o Java na versão 6 em modo automático.
Se seleciono 1(um), uso o Java 6 em modo manual.
Caso eu escolha 2(dois/padrão), uso o Java na versão 7 em modo manual.

Preciso montar um script que faça a execução deste comando, e que selecione/troque a versão Java apenas ao digitar no terminal(sem que seja preciso pedir a senha do sudo):
Código: [Selecionar]
changejava6
Código: [Selecionar]
changejava7
É isso, galera. Acho que consegui explicar bem. rs
Muito obrigado.

Forte abraço.

Offline Tota

  • Usuário Ubuntu
  • *
  • Mensagens: 14.982
    • Ver perfil
Re: Alternar versões do Java através de script
« Resposta #1 Online: 20 de Agosto de 2012, 12:54 »
Ola

Poste o que já fez no seu script ou cite os links que já visitou para o forum poder ajudar com mais certeza.

[]'s

Offline JesseGaspar

  • Usuário Ubuntu
  • *
  • Mensagens: 4
    • Ver perfil
Re: Alternar versões do Java através de script
« Resposta #2 Online: 20 de Agosto de 2012, 14:51 »
Olá, Tota !
Obrigado pela atenção.
Então... Eu fiz algumas(várias) pesquisas, e acho que estou indo bem.
Aparentemente, o que quero fazer se chama"Alias".

Editei o arquivo /etc/bash.bashrc adicionando o seguinte trecho ao final dele:
Código: [Selecionar]
if [ -f ~/.bash_alias ]; then
. ~/.bash_alias
fi

Criei o arquivo .bash_alias em /home/jessegaspar/, e nele contém o seguinte código:
Código: [Selecionar]
alias changejava='sudo update-alternatives --config java'
Após isto, é preciso reiniciar a sessão para que o novo comando(change java) funcione.
O problema é que mesmo assim ele continua me pedindo a senha do sudo.
Eu gostaria de executar este novo comando, e que ele me retornasse o mensagem abaixo sem solicitar a senha do root:

Citar
[sudo] password for jessegaspar:
Existem 2 escolhas para a alternativa java (disponibiliza /usr/bin/java).

  Selecção   Caminho                                  Prioridade Estado
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-sun/jre/bin/java      63        modo automático
  1            /usr/lib/jvm/java-6-sun/jre/bin/java      63        modo manual
* 2            /usr/lib/jvm/java-7-oracle/jre/bin/java   2         modo manual

Pressione enter para manter a escolha actual

    , ou digite o número da selecção:

Eu já tentei tirar o "sudo" do .bash_alias em /home/jessegaspar/, mas mesmo assim não dá certo.
Grande abraço.

Offline Tota

  • Usuário Ubuntu
  • *
  • Mensagens: 14.982
    • Ver perfil
Re: Alternar versões do Java através de script
« Resposta #3 Online: 20 de Agosto de 2012, 15:45 »
Para esta permissão de não utilizar o sudo, será necessário editar o arquivo sudoers.

http://linux.die.net/man/5/sudoers


Offline JesseGaspar

  • Usuário Ubuntu
  • *
  • Mensagens: 4
    • Ver perfil
Re: Alternar versões do Java através de script
« Resposta #4 Online: 20 de Agosto de 2012, 19:27 »
Obrigado, Tota. Funcionou !
Bastou adicionar a seguinte linha ao final de /etc/sudoers:
Código: [Selecionar]
%sudo ALL=NOPASSWD: ALL
Tentei fazer uma pequena gambiarra para que os usuários não tivessem total privilégio de "sudo", mas não deu certo.
Por outro lado, isto já resolve o problema.
Acho que o tópico já pode ser marcado como "[Resolvido]".

Grande abraço.

--------------------------------------
Editando...
--------------------------------------

Parece que fazendo um chmod 777 em .bash_alias também resolve o problema.
Mas para isso, o conteúdo de .bash_alias precisa ser editado tendo o "sudo" removido.
« Última modificação: 22 de Agosto de 2012, 21:02 por JesseGaspar »