¿Cambiar la versión de Java a través de apt?

¿Cambiar la versión de Java a través de apt?

(Disculpas de antemano si mi formato no es correcto, esta es mi primera publicación, no dudes en corregirme).

Normalmente, cuando quiero saber qué versión de Java estoy usando, ejecuto:

java -version

versión de Java "1.7.0_55"

Si quiero cambiar la versión de Java (de Java 7 a Java 6), puedo simplemente apuntar el enlace simbólico (/usr/bin/java) al binario Java JRE correspondiente. (No necesitamos preocuparnos por el compilador javac o java_ws aquí, en este caso, por cierto).

# readlink -f /usr/bin/java

/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java

# ln -s /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java /usr/bin/java

# java -version

versión de Java "1.6.0_31"

Esto está bien y, hasta donde puedo ver, funciona.

En Solaris, hay una buena manera de hacerlo a través de la herramienta mediadora pkg:

myHost# pkg mediator -H java

sistema java 1.7 sistema

Para cambiar Java de 1.7 a 1.6:

pkg set-mediator -V 1.6 java

Luego para confirmar los cambios.

myHost# pkg mediator -H java

sistema java local 1.6

Me pregunto: ¿ apttiene un equivalente? ¿O existe una forma más elegante de cambiar entre versiones de Java?

Editar: esto también podría aplicarse a Python, por lo que no estoy buscando respuestas específicas de Java

Respuesta1

La forma correcta de cambiar entre varias versiones de un software instalado es mediante:

sudo update-alternatives --config <package>

Entonces, para Java, necesitas ejecutar:

sudo update-alternatives --config java

el cual debería devolverte las versiones instaladas, que en mi caso es:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1053      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1053      manual mode

Para cambiar entre versiones, puede ingresar, selectiones decir, 0, 1, 2 en este caso, dependiendo de la versión a la que desee cambiar.

Sin embargo, en el caso de Python, python2 y python3 no son alternativas, por lo que no encontrará esta opción, deberá crear alias para ello.

Entonces, si desea que Python haga referencia a la versión 2.xx de Python y que python3 haga referencia a la versión 3.xx de Python, puede abrir su ~/.bash_aliasesarchivo e ingresar lo siguiente:

alias python=`/usr/bin/python`
alias python3=`/usr/bin/python3`

Este archivo puede estar vacío si no ha creado alias antes, lo cual está bien. Es posible que incluso desee el alias al revés, es decir, python para hacer referencia a python3 y python2 para hacer referencia a python2, puede modificar el alias como desee.

Como puede ver, depende de si las versiones instaladas son alternativas entre sí; si son alternativas, puede usar update-alternatives, si no, tendrá que modificarlas usando alias o enlaces suaves. Puede que haya soluciones mejores y más limpias, pero no las conozco.

información relacionada