update-alternatives pode, de fato, ser usado para gerenciar links simbólicos em /bin , ou mesmo em qualquer outro lugar; esse é o objetivo . Requer pacotes cooperativos ou configuração manual - as várias alternativas precisam ser registradas.
dpkg-reconfigure não é específico, ele só executa o script de mantenedor de pós-instalação de um pacote. Portanto, seu comportamento depende totalmente do pacote específico usado para configurar. No caso de bash e dash , os scripts do mantenedor manipulam o link simbólico /bin/sh , portanto, neste caso específico, dpkg-reconfigure é usado para gerenciar um symlink.
O motivo pelo qual bash e dash não usam update-alternatives para gerenciar /bin/sh é simplesmente que quando a possibilidade foi ativada, update-alternatives não foi considerado robusto o suficiente para ser usado para tal um arquivo confidencial como /bin/sh . Se qualquer coisa alguma vez der errado e /bin/sh for removido ou apontar para um arquivo inexistente, o sistema será inutilizado e será difícil de consertar; Ele nem sequer inicializa corretamente ... Portanto, bash e dash tomam muito cuidado para garantir que /bin/sh seja sempre utilizável. Isso envolve um processamento cuidadoso em seu “script” de pré-instalação (que é na verdade um binário, para evitar loops de pré-dependência), um truque envolvendo dpkg-divert e algum tratamento de última hora em seus scripts de pós-instalação. Você encontrará detalhes do design de tudo isso no bug # 34717 (dezenove anos atrás).
Para saber quais binários em um sistema são manipulados usando alternativas e quais são manipulados usando desvios (dos scripts do mantenedor), você pode usar as ferramentas correspondentes, em particular dpkg-divert --list , que listará todos os desvios. Para update-alternatives --list , você precisa conhecer o grupo alternativo em que tem interesse, mas as alternativas são fáceis de detectar porque são todos links simbólicos para um arquivo em /etc/alternatives .