Debian バスターには 2 つの `dhcpcd` ファイルがあります。なぜですか?

Debian バスターには 2 つの `dhcpcd` ファイルがあります。なぜですか?

私はdhcpcdその行動を調べていますが、私を混乱させることがわかりました:dhcpcdvs dhcpcd5

$ which dhcpcd
/sbin/dhcpcd

しかし、dhcpcdそれは単にlink:でありdhcpcd -> /etc/alternatives/dhcpcd、これは以下を指しますdhcpcd -> /sbin/dhcpcd5。したがって、-adhcpcdとa-dhcpcd5の両方が存在しますsbin

私のRaspberry Piでは、以下を使用して起動すると呼び出されるdhcpcdようです。 AFAIK、システムの他の場所では呼び出されません。/etc/systemd/system/dhcpcd.service.d/wait.confExecStart=/usr/lib/dhcpcd5/dhcpcd -q -wdhcpcddhcpcd5

これには理由があると思いましたが、検索しても何の説明も見つかりませんでした。dhcpcd名前が変わるのはなぜですかdhcpcd5?また - 起動時に一度だけ呼び出される場合、systemdなぜすべてのリンクと置換/同義語が必要なのですか?

答え1

これはすべて歴史的な理由による。かつてdhcpdパックインターフェイスごとに1つのインスタンスを実行することと統合されていますifupdowndhpcd

プロジェクトバージョン5では、単一のインスタンスを使用してすべてのインターフェイスを処理するように動作を変更しました。アップグレードを簡素化するためにパッケージ化されています。新しいパッケージで;これにより、管理者は両方のバージョンを同時に使用し、適切であると判断された構成アップグレードを処理できます。

dhcpcdsystemd で管理されていないシステムの初期化スクリプトは依然としてシンボリックリンクを使用します。

答え2

これが「代替」システムが実行されることです。このシステムでは、プログラムの一般名はシンボリックリンクであり、/etc/alternatives/実際のプログラムバイナリは、別の場所で異なる名前を持つファイルです。

「代替」システムを使用するように設定されている他のプログラムでこれを見ることができます。例:/usr/bin/vimVIMは一般的な名前ですが、「代替」システムを使用すると、さまざまな実際のプログラムバイナリ間を切り替えることができます/usr/bin/vim.tiny/usr/bin/vim.nox

/sbin/dhcpcd5この特別なケースでは、次の2つの選択肢がありました。dhcpcd5パッケージそして/sbin/dhcpcd3提供されるdhcpcdパッケージ。そのパッケージのインストール後にメンテナスクリプト(dhcpcd5 DHCPCD)彼らはそれぞれupdate-alternatives「オーバーライド」システムを使用してdhcpd一般名にシンボリックリンクを作成し、インストールのための最も高い優先順位を持つデフォルトのバイナリを選択します。

M. Kittが指摘したように、提供されたパッケージは削除dhcpcd3されました。これで、これは可能な選択肢が1つしかない「代替」構成です。 ☺

関連情報