Que instalação o homem encontra para um nome de comando?

0

No Lubuntu 18.04, o padrão awk é mawk e descobri que man awk deu o manpag de mawk

Em seguida, instalei gawk e awk tornou-se gawk . e man awk deu o manpag de gawk .

Eu me pergunto se esse é o caso geral. Em outras palavras, quando executo man em um nome de comando, ele sempre fornece a manpage da instalação atualmente associada ao nome do comando?

Obrigado.

    
por Tim 21.05.2018 / 05:32

2 respostas

3

Esta é a mágica das atualizações-alternativas .

Se, alguns comandos vierem com o mesmo nome, como neste caso, gawk e mawk , e ambos tiverem que estar disponíveis pelo nome de awk , será criado um symlink . por exemplo,

/usr/bin/awk -> /etc/alternatives/awk
/etc/alternatives/awk -> /usr/bin/gawk

e mesmo para o homem

/usr/share/man/man1/awk.1.gz -> /etc/alternatives/awk.1.gz
/etc/alternatives/awk.1.gz -> /usr/share/man/man1/gawk.1.gz

man lê a partir de /usr/share/man/man1/awk.1.gz , e sendo um link simbólico apontando para o manual do comando atual instalado, abrirá o atual manual de comando instalado

O diretório

/etc/alternatives é usado por update-alternatives para rastrear as alternativas atualmente em uso .

    
por 21.05.2018 / 06:03
2

In other words, when I run man on a command name, does it always provide the manpage of the installation currently associated with the command name?

Com programas configurados corretamente, sim. (Este deve ser o caso, pelo menos, para todos os pacotes originados no Debian.)

Pacotes que configuram corretamente alternativas para comandos associarão as páginas de manual correspondentes à alternativa.

mawk define uma alternativa awk com prioridade baixa (5) e associa o comando nawk e as duas páginas de manual (para awk e nawk ). Assim, sempre que mawk for selecionado como o provedor awk , ele também será selecionado como o provedor nawk , e sua página de manual será selecionada como o provedor para as páginas de manual awk e nawk .

gawk também define suas alternativas desta forma, com uma prioridade mais alta (10).

Por padrão, as alternativas são gerenciadas no modo automático: sempre que uma alternativa é instalada ou removida, o sistema de alternativas escolhe o provedor disponível com a prioridade mais alta. Quando você instala o Lubuntu, apenas mawk é instalado, por isso é o único provedor e é escolhido por padrão. Quando você instala gawk , dois awk provedores estão disponíveis e o sistema de alternativas escolhe gawk porque ele tem a prioridade mais alta.

Você pode escolher sua própria alternativa usando update-alternatives --config awk , o que lhe permitirá forçar sua própria seleção (escolhendo uma das entradas de “modo manual”), ou usar qualquer que seja a seleção automática (escolhendo o “modo automático” "Entrada".

O resultado de tudo isso é um monte de links simbólicos em /etc/alternatives ; o executável awk é um link simbólico para /etc/alternatives/awk , que é um link simbólico para o provedor escolhido. O estado atual do sistema é armazenado em arquivos em /var/lib/dpkg/alternatives , um por alternativa "principal" ( /var/lib/dpkg/alternatives/awk neste caso). Esse é um detalhe de implementação, claro, e você deve usar apenas update-alternatives para interagir com o sistema de alternativas.

    
por 21.05.2018 / 07:36

Tags