"대안 업데이트" 대 "dpkg 재구성"

"대안 업데이트" 대 "dpkg 재구성"

~에서Ubuntu 14.04 bash가 기본 쉘을 사용하는 이유는 무엇입니까?:

/bin/shDebian 파생 제품에서는 기본적으로 dash를 루트로 실행하여 Dash와 Bash 사이를 전환할 수 있습니다 dpkg-reconfigure.

update-alternatives둘 다 dpkg-reconfigure심볼릭 링크가 링크된 실행 파일을 변경하는 데 사용될 수 있습니다. 이것이 맞습니까 /bin/?

그렇다면 이 목적을 위해 의 update-alternatives차이점은 무엇입니까 dpkg-reconfigure?

감사해요.

답변1

update-alternatives실제로 심볼릭 링크를 관리 /bin하거나 다른 곳에서도 사용할 수 있습니다.그게 목적이야. 협업 패키지 또는 수동 설정이 필요하며 다양한 대안을 등록해야 합니다.

dpkg-reconfigure전혀 구체적이지 않으며 단지 패키지의 설치 후 유지 관리자 스크립트를 실행합니다. 따라서 해당 동작은 구성된 특정 패키지에 전적으로 의존합니다. bash및 의 dash경우 유지 관리자 스크립트는 /bin/sh심볼릭 링크를 처리하므로 예, 이 특별한 경우에는 dpkg-reconfigure심볼릭 링크를 관리하는 데 사용됩니다.

사용하지 않고 bash관리하지 않는 이유는 단순히 해당 가능성이 활성화되면 .if와 같은 것에 의존할 만큼 강력하다고 간주되지 않기 때문입니다.dashupdate-alternatives/bin/shupdate-alternatives/bin/sh아무것문제가 발생하여 /bin/sh삭제되거나 존재하지 않는 파일을 가리키게 되면 시스템은 쓸모 없게 되고 복구도 어려워지며 제대로 부팅되지도 않습니다. 항상 사용할 수 있도록 주의 bash하세요 . 여기에는 사전 설치 "스크립트"(실제로 사전 종속성 루프를 방지하기 위한 바이너리)의 신중한 처리, 관련 트릭 및 설치 후 스크립트의 일부 최종 터치가 포함됩니다. 이 모든 디자인에 대한 자세한 내용은 다음에서 확인할 수 있습니다.dash/bin/shdpkg-divert버그 #34717(19년 전).

시스템의 어떤 바이너리가 대안을 사용하여 처리되었는지, 어떤 바이너리가 전송(관리자 스크립트에서)을 사용하여 처리되었는지 확인하려면 해당 도구를 사용하면 됩니다. 특히 dpkg-divert --list모든 전송이 나열됩니다. update-alternatives --list어떤 대체 그룹에 관심이 있는지 알아야 하는데 대체 그룹은 모두 를 가리키기 때문에 쉽게 찾을 수 있기 때문 입니다 /etc/alternatives.

답변2

update-alternatives명령은 /bin에서 가리키는 기호 링크를 가져올 대체 항목을 관리할 수 있도록 모든 대체 항목을 등록해야 합니다.

교체 시스템은 한 번에 여러 심볼릭 링크를 관리할 수 있고 여러 교체 구현을 처리할 수 있다는 점에서 매우 유연합니다. 두 개 이상이 설치된 경우 어느 것을 선택할지 결정하는 데 도움이 되는 가중치를 부여하고, 이 가중치가 언로드되었으며 다음으로 높은 무게를 갖습니다.

사용된 체계 dpkg-reconfigure dash는 하나의 패키지(bash)가 게시되지만 /bin/sh다른 패키지는 이를 "전송"하여 해당 구현을 덮어쓸 수 있는 dpkg의 전송 시스템을 사용합니다.

dpkg의 전송 시스템은 심볼릭 링크에만 국한되지 않으며(파일도 전송 가능) 기본 패키지에서 채택하도록 수정하기 위해 원본 심볼릭 링크(또는 파일)를 보낼 필요가 없습니다 update-alternatives.

전송 시스템은 종종 전송 상위에 배치되도록 구성되는 패키지에 의존하고 많은 경우 구성을 전혀 수행하지 않기 때문에 대안만큼 유연하지 않습니다(새 패키지를 설치하기만 하면 자동으로 파일이 전송됩니다). 이전에 설치된 패키지에서 구성이 필요하지 않습니다. ) 이러한 제한으로 인해 dpkg의 전송 시스템을 사용하여 두 가지 이상의 대안을 구현하는 것이 더 어려워졌습니다.

관련 정보