(偶然ではない場合)同じ名前を使用して異なるコマンドを提供する2つのパッケージがあるのはなぜですか?
それは珍しいことではありません。作成者は通常、考えている最も単純なコマンド名を選択するため、2人がファイルの名前を変更するコマンドを記述した場合、両方とも名前を付ける可能性がありますrename
。これがDebian代替システムの背後にある理由の1つです。同じ名前のコマンドを提供するパッケージを共存させ、あるパッケージで別のパッケージを置き換えることができます。-例えば、複数のAWKの実装が存在しmawk
、original-awk
、gawk
(彼らはすべてのawkとして自分自身を参照してくださいが)。代替システムを使用すると、それらをすべて同時にインストールし、それらのいずれかをデフォルトとして便利に切り替えることができますawk
。
この特定のケースでprename
は、Perlソースコードから取得されます。Debianパッケージメンテナーはもともとrename
Perl でしたが、その後、rename
from に対応するために代替システムに切り替えましたutil-linux
。そして、誰かがPerlのの改良版を書いたrename
中で、ファイル・名前の変更Perlモジュール、別の選択肢として加えました、。しかし、それはファイルの名前を変更するためのPerlモジュールでさえありません。
perl
パッケージに「フル」rename
コマンドを含めるか、rename
コマンドをまったく含めないのは、どちらかといえば簡単ではないでしょうか?少なくともUbuntu 17.04までこの一見不完全な分割が持続するのはなぜですか?
この状況がどのように進化したかについては、Debianバグ#735134をご覧ください。Debianのメンテナーは通常、作業コマンドを別のコマンドに置き換えるなどの抜本的なことを行う場合は、少なくとも1つのリリースを行うことを好みます。prename
ジェシーのために保管されていましたが、現在はバスターのために削除されています。さらに、互換性があまりにも低いrename
ため、代替システムの下にはもうないようrename.ul
です。rename
ちょうどになりfile-rename
ます。
Ubuntuは一般にDebianからパッケージの変更をrename
取得するため、Debianで起こったことは遅かれ早かれ、おそらく18.04にUbuntuに反映されます。17.10には遅すぎるようです。
これらのコマンドの違いは何ですか?
基本的に、両方prename
をfile-rename
実行し、Perl式を実行してファイルの名前を変更します。file-rename
積極的に維持され、より多くのオプションをサポートしています。まったく異なる作品rename
からutil-linux
、パターンのための独自のルールがあります。
man prename
17.10からは、実際には17.10がのfile-rename
代わりにピックアップしたようですprename
。18.04でも同じです。