A maneira como o update-alternatives funciona é descrita em sua página de manual . A lista de alternativas disponíveis para um determinado comando (ou arquivo, em geral - alternativas não são limitadas a comandos) é armazenada em um arquivo em /var/lib/dpkg/alternatives no Debian e derivados; Assim, as alternativas para java são armazenadas em /var/lib/dpkg/alternatives/java . No Fedora, RHEL e derivados, os arquivos são armazenados em /var/lib/alternatives .
Quando um pacote deseja fornecer uma alternativa, ele é instalado usando update-alternatives --install (e parâmetros apropriados); quando deseja remover uma alternativa, faz isso usando update-alternatives --remove . Você pode usá-los para fornecer suas próprias alternativas, se necessário.
Note que no caso do Java especificamente, no Debian e em derivativos, o tratamento de alternativas é um pouco mais complexo e você deve usar update-java-alternatives em vez de manipular todas as alternativas manualmente.
Se por algum motivo um arquivo gerenciado alternativo não for um link simbólico, update-alternatives considerará que a alternativa está quebrada e se recusará a tocá-lo.