人が探しているインストールされたコマンド名は何ですか?

人が探しているインストールされたコマンド名は何ですか?

Lubuntu 18.04では、デフォルト値はですawk。与えられたmanpagをmawk見つけました。man awkmawk

それからそれをインストールし、gawkそれがawkすべてでしたgawk。そしてman awkmanpagが与えられましたgawk

一般的なケースなのかと思います。つまり、man特定のコマンド名を実行するときは、常にそのコマンド名と現在接続されているインストールのマンページを提供しますか?

ありがとうございます。

答え1

これは代替アップデート魔法。

一部のコマンドが同じ名前(この例のように)をgawk持ち、両方ともmawknameとして使用可能である必要がある場合は、作成しawkてくださいsymlink。例えば

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

男も同じです。

/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から読むと、現在インストールされているコマンド/usr/share/man/man1/awk.1.gzマニュアルが開きます。

/etc/alternativesディレクトリが使用されます代替アップデート現在使用されている代替案を追跡します。

答え2

つまり、man特定のコマンド名を実行するときは、常にそのコマンド名と現在接続されているインストールのマンページを提供しますか?

適切に構成されたプログラムを使用すれば可能です。 (少なくともこれは Debian で起動されたすべてのパッケージの場合でなければなりません。)

パッケージを正しく設定代替up for コマンドは、適切なマンページを代替と関連付けます。

mawkawk低い優先順位(5)の代替を設定し、nawkコマンドを2つのマンページ(awkおよび)にnawk関連付けます。したがって、プロバイダmawkとして選択されるたびにプロバイダとしても選択され、そのマンページもそのマンページのプロバイダとして選択されます。awknawkawknawk

gawkまた、より高い優先順位(10)で代替をこの方法で設定します。

デフォルトでは、代替項目はサイレントモードで管理されます。つまり、代替エントリがインストールまたは削除されるたびに、代替システムは最も優先順位の高い利用可能なプロバイダを選択します。 LubuntuをインストールするとLubuntuのみがインストールmawkされるため、これは唯一のプロバイダであり、デフォルトで選択されます。をインストールすると、gawk2 つのawkプロバイダーが使用可能になり、システムは優先gawk順位の高いプロバイダーを選択します。

を使用して独自の選択肢を選択できます。update-alternatives --config awkこれにより、強制的に選択するか(「手動モード」項目の1つを選択)、自動選択を使用できます(「自動モード」項目の選択)。

これらすべての結果は複数のシンボリックリンクです/etc/alternatives。実行可能ファイルは、それ自体で選択したプロバイダへのシンボリックリンクですawk/etc/alternatives/awkシステムの現在の状態は、/var/lib/dpkg/alternatives各「デフォルト」代替(/var/lib/dpkg/alternatives/awkこの場合)ごとに1つずつ以下のファイルに保存されます。もちろん、これは実装の詳細なので、update-alternatives代替システムと対話するためにのみ使用する必要があります。

関連情報