/usr/bin/rename.ulに拡張子があるのはなぜですか?

/usr/bin/rename.ulに拡張子があるのはなぜですか?

rename.ul私のUbuntuコンピュータでコマンドを見つけました。それはutil-linuxパッケージから出てきます。

拡張子を持つ実行可能ファイルをほとんど見ることができないので、これは私にとって奇妙です。また、ファイルがコンパイルされるため、これは必要ないようです。

これには歴史的、技術的な理由がありますか?

私もこの拡張子に関連付けられているファイルの種類が見つからず、混乱しています。

答え1

renameこの拡張は、Debian で使用できる多くのコマンドとの競合を避けるためです。この変化2007年に開発されました。Debian のバグ #439647:

/usr/bin/renameは代替システムによって管理されています(デフォルトではPerlバージョンが使用されています)。 util-linux 2.13〜rc3-8は、代わりに登録する代わりに独自のバイナリをインストールします。

これに応じてutil-linux rename名前がrename.ul

それにもかかわらず、rename.ul構文はPerlバリアントとは大きく異なり、代替システムにはデフォルトで追加されません(参照)Debian のバグ #439935)。

答え2

コメント作成者が推測したように、これは次のとおりです。Debian 代替システム行動中。

ディストリビューションに同じ名前のファイルを含む複数のパッケージがある場合、パッケージ作成者はそれを知っておく必要があり、管理者が使用するパッケージを選択するメカニズムが必要です。したがって、競合するすべてのファイルの名前が変更され(通常はサフィックスが付けられますが、これはパッケージメタデータで指定される可能性があります)、元のファイル名がの点になります/etc/alternatives/<original filename>。これは、名前が変更されたファイルの1つを指す別のシンボリックリンクになりました。ファイル。

システム管理者はこのupdate-alternativesツールを使用して、元の名前が指すファイルのバージョンを選択できます。他のバージョンは新しい名前で引き続きアクセスできます。

このupdate-alternativesツールは「一連の」エントリを処理できるため、レガシーとOpenBSD netcatの両方がインストールされており、sudo update-alternatives --config ncデフォルトをどちらにも切り替えると、対応するマニュアルページ名も切り替えられます。

一般的な例はです/usr/bin/editor。 Debianスタイルのシステムでは、他のプログラムが「システムのデフォルトのテキストエディタ」を取得するために使用できるシンボリックリンクです。最小インストール後は、デフォルトでテキストファイルを設定できるため、nanoマニュアルページが開いてeditor example.txt表示されます。nanoman editornano

ただし、代替システム(たとえば)に優先順位の高いエディタをインストールすると、joe自動的に新しいデフォルトになるため、このエディタが使用さeditor example.txtれ、マニュアルページも表示されます。また、それを使用してインストールされたエディタをデフォルトエディタとして選択できます。この方法で選択すると、自動優先順位はそれを無視しません。joeman editorjoesudo update-alternatives --config editor

関連情報