데비안 버스터에는 두 개의 `dhcpcd` 파일이 있습니다. 왜 그렇습니까?

데비안 버스터에는 두 개의 `dhcpcd` 파일이 있습니다. 왜 그렇습니까?

나는 dhcpcd그 행동을 조사하고 있는데 나를 혼란스럽게 하는 것을 발견했습니다: dhcpcdvs 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.confExecStart=/usr/lib/dhcpcd5/dhcpcd -q -wdhcpcddhcpcd5

이 모든 것에는 이유가 있을 것이라고 생각했지만, 검색해봐도 어떤 설명도 찾을 수 없었습니다. dhcpcd이름이 바뀌는 이유는 무엇입니까 dhcpcd5? 또한 - 시작 시 한 번만 호출된다면 systemd왜 모든 링크와 대체/동의어가 필요한가요?

답변1

이는 모두 역사적인 이유 때문이다. 한때는dhcpd인터페이스 당 하나의 인스턴스를 실행하는 것과 통합되어 있습니다 ifupdown.dhpcd

프로젝트 버전 5에서는 단일 인스턴스를 사용하여 모든 인터페이스를 처리하도록 동작을 변경했습니다. 업그레이드를 단순화하기 위해 패키지로 제공됩니다.새로운 패키지로;이를 통해 관리자는 두 버전을 동시에 사용하고 적절하다고 판단되는 구성 업그레이드를 처리할 수 있습니다.

dhcpcdsystemd로 관리되지 않는 시스템의 초기화 스크립트는 여전히 기호 링크를 사용합니다.

답변2

이것이 바로 "대체" 시스템이 실행되는 것입니다. 이 시스템에서 프로그램의 일반 이름은 심볼릭 링크이고 /etc/alternatives/실제 프로그램 바이너리는 다른 곳에서 다른 이름을 가진 파일입니다.

"대체" 시스템을 사용하도록 설정된 다른 프로그램에서 이를 볼 수 있습니다. 예: /usr/bin/vimVIM은 일반적인 이름이지만 "대체" 시스템을 사용하면 다양한 실제 프로그램 바이너리 간 전환이 가능 합니다 /usr/bin/vim.tiny./usr/bin/vim.nox

/sbin/dhcpcd5이 특별한 경우에는 다음 과 같이 두 가지 대안이 있었습니다.dhcpcd5패키지그리고 /sbin/dhcpcd3제공되는dhcpcd패키지. 해당 패키지의 설치 후 유지 관리자 스크립트(dhcpcd5 DHCPCD) 그들은 각각 update-alternatives"재정의" 시스템을 사용하여 dhcpd일반 이름에 심볼릭 링크를 생성하고 설치를 위해 우선순위가 가장 높은 기본 바이너리를 선택합니다.

M. Kitt가 지적했듯이 제공된 패키지가 dhcpcd3제거되었습니다. 이제 이것은 가능한 대안이 하나만 있는 "대체" 구성입니다. ☺

관련 정보