Por que /usr/bin/rename.ul possui uma extensão?

2

Eu encontrei um comando rename.ul na minha máquina Ubuntu. Vem de util-linux package.

É estranho para mim porque raramente vejo executáveis com extensão. Além disso, parece desnecessário porque o arquivo é compilado.

Existe alguma razão histórica ou técnica?

Também estou confuso porque não encontrei o formato de arquivo associado a essa extensão.

    
por rad164 18.05.2018 / 03:04

2 respostas

5

A extensão é para evitar conflito com a multiplicidade de comandos rename , caso contrário, disponíveis no Debian. Esta mudança foi feita em 2007 em resposta a Botão africano # 439647 :

/usr/bin/rename is managed by the alternatives system (with Perl's version the default). util-linux 2.13~rc3-8 installs its own binary there, instead of registering it as an alternative.

Em resposta, o util-linux rename foi renomeado para rename.ul .

Mesmo assim, a sintaxe rename.ul é tão diferente das variantes Perl que não é adicionada ao sistema de alternativas por padrão (veja Bug do Debian # 439935 ).

    
por 18.05.2018 / 08:10
4

Como os comentaristas adivinharam, provavelmente é o Sistema de Alternativas Debian em ação.

Se uma distribuição tiver vários pacotes que contenham um arquivo com nome idêntico, o criador do pacote precisará conhecê-lo e deverá haver um mecanismo para o administrador escolher qual deles deseja usar. Assim, todos os arquivos conflitantes são renomeados (geralmente com sufixos, mas isso pode ser especificado nos metadados do pacote) e o nome do arquivo original se tornará um link simbólico apontando para /etc/alternatives/<original filename> . Isso, por sua vez, será outro link simbólico apontando para um dos arquivos agora renomeados.

O administrador do sistema pode usar a ferramenta update-alternatives para escolher qual versão do arquivo será apontada pelo nome original. As outras versões ainda podem ser acessadas usando os novos nomes.

A ferramenta update-alternatives pode lidar com "famílias" de coisas, por exemplo, quando você tem o tradicional e o OpenBSD netcat instalado e usa sudo update-alternatives --config nc para alternar o padrão de uma forma ou de outra, o nome da página man correspondente também será alternado.

Um exemplo comum seria /usr/bin/editor . Em sistemas no estilo Debian, esse é um link simbólico que outros programas podem usar para obter o "editor de texto padrão neste sistema, seja ele qual for". Após uma instalação mínima, é provável que o padrão seja nano , portanto, editor example.txt abrirá o arquivo de texto em nano e man editor mostrará a página do manual de nano .

Mas se você instalar um editor que tenha uma prioridade mais alta no sistema de alternativas, por exemplo, joe , então ele se torna automaticamente o novo padrão, então agora editor example.txt usará joe e man editor também mostrará a página de manual joe . Você também pode usar sudo update-alternatives --config editor para escolher qual dos editores instalados deseja ser o padrão e, depois de ter feito uma escolha dessa maneira, as prioridades automáticas não o substituirão.

    
por 18.05.2018 / 08:01