私はdhcpcd
その行動を調べていますが、私を混乱させることがわかりました:dhcpcd
vs 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.conf
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w
dhcpcd
dhcpcd5
これには理由があると思いましたが、検索しても何の説明も見つかりませんでした。dhcpcd
名前が変わるのはなぜですかdhcpcd5
?また - 起動時に一度だけ呼び出される場合、systemd
なぜすべてのリンクと置換/同義語が必要なのですか?
答え1
答え2
これが「代替」システムが実行されることです。このシステムでは、プログラムの一般名はシンボリックリンクであり、/etc/alternatives/
実際のプログラムバイナリは、別の場所で異なる名前を持つファイルです。
「代替」システムを使用するように設定されている他のプログラムでこれを見ることができます。例:/usr/bin/vim
VIMは一般的な名前ですが、「代替」システムを使用すると、さまざまな実際のプログラムバイナリ間を切り替えることができます/usr/bin/vim.tiny
。/usr/bin/vim.nox
/sbin/dhcpcd5
この特別なケースでは、次の2つの選択肢がありました。dhcpcd5
パッケージそして/sbin/dhcpcd3
提供されるdhcpcd
パッケージ。そのパッケージのインストール後にメンテナスクリプト(dhcpcd5 DHCPCD)彼らはそれぞれupdate-alternatives
「オーバーライド」システムを使用してdhcpd
一般名にシンボリックリンクを作成し、インストールのための最も高い優先順位を持つデフォルトのバイナリを選択します。
M. Kittが指摘したように、提供されたパッケージは削除dhcpcd3
されました。これで、これは可能な選択肢が1つしかない「代替」構成です。 ☺