나는 dhcpcd
그 행동을 조사하고 있는데 나를 혼란스럽게 하는 것을 발견했습니다: dhcpcd
vs dhcpcd5
.
$ which dhcpcd
/sbin/dhcpcd
그러나 dhcpcd
그것은 단지 link: 이며 dhcpcd -> /etc/alternatives/dhcpcd
, 이는 다음을 가리킵니다: dhcpcd -> /sbin/dhcpcd5
. 따라서 - a dhcpcd
와 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
이 특별한 경우에는 다음 과 같이 두 가지 대안이 있었습니다.dhcpcd5
패키지그리고 /sbin/dhcpcd3
제공되는dhcpcd
패키지. 해당 패키지의 설치 후 유지 관리자 스크립트(dhcpcd5 DHCPCD) 그들은 각각 update-alternatives
"재정의" 시스템을 사용하여 dhcpd
일반 이름에 심볼릭 링크를 생성하고 설치를 위해 우선순위가 가장 높은 기본 바이너리를 선택합니다.
M. Kitt가 지적했듯이 제공된 패키지가 dhcpcd3
제거되었습니다. 이제 이것은 가능한 대안이 하나만 있는 "대체" 구성입니다. ☺