Você já percebeu que nem sempre as distribuições acompanham a evolução dos aplicativos?

Um exemplo é o Java JDK, que (até a data desse post) já se encontra em sua versão 1.7.0, porém nos repositórios o openjdk disponível é o 1.6.

Outro exemplo é o Firefox, que, dependendo da versão do Ubuntu, se encontra nas versões 3.x ou 5.x e já está disponível a versão 6.0.

O problema se tornou crítico, quando tive alguns problemas no JDownloader com o JDK mais “antigo”. Então, busquei formas de atualizar a versão do java no sistema, sem provocar grandes problemas, pois se eu utilizava o APT pra desinstalar o JDK antigo, para fazer uma instalação manual, aquele programa sugeria desinstalar vários outros programas que dependem do JAVA, inclusive o JDownloader.

Foi então que descobri o update-alternatives, onde é possível definir alternativas para os programas instalados. De acordo com o help do comando, esse espera os seguintes parâmetros:

update-alternatives [<opção> ...] <comando>

O parâmetro <comando>, espera:

--install <link> <name> <path> <priority>
    [--slave <link> <name> <path>] ...
                           add a group of alternatives to the system.
  --remove <name> <path>   remove <path> from the <name> group alternative.
  --remove-all <name>      remove <name> group from the alternatives system.
  --auto <name>            switch the master link <name> to automatic mode.
  --display <name>         display information about the <name> group.
  --query <name>           machine parseable version of --display <name>.
  --list <name>            display all targets of the <name> group.
  --get-selections         list master alternative names and their status.
  --set-selections         read alternative status from standard input.
  --config <name>          show alternatives for the <name> group and ask the
                           user to select which one to use.
  --set <name> <path>      set <path> as alternative for <name>.
  --all                    call --config on all alternatives.

Mais detalhes do comando, digite man update-alternatives.

Sobre a solução encontrada, segue como atualizar o firefox e o jdk do java:

Java:

update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0/jre/bin/java 3

Firefox:

update-alternatives --install /usr/bin/firefox firefox /usr/lib/firefox-6.0/firefox 1

Como visto anteriormente, o comando –install, espera os seguintes parâmetros: <link> <name> <path> <priority>

Então, no caso do java:

link: binário java, /usr/bin/java
nome: java
path: /usr/lib/jvm/jdk1.7.0/jre/bin/java
prioridade: nesse caso, como já tinha outro java, coloquei prioridade 3. Para verificar as alternativas já instaladas digite update-alternatives --display java

Créditos: http://balajitheone.blogspot.com/2011/08/installing-oracle-sun-jdk-17-on-ubuntu.html