패키지를 제거하고 다시 설치하는 대신 업그레이드하면 패키지는 어떻게 되나요? 둘의 실제 차이점은 무엇입니까? 결과는 어떤 변화를 가져올까요?
다음 두 옵션이 동일합니까(패키지별)프리앤스터/뒤쪽/프리렘/후기 단계발자국)?
apt-get update
apt-get remove <packagename>
apt-get install <packagename>
그리고
apt-get update
apt-get install --only-upgrade <packagename>
업그레이드 명령을 단독으로 처리할 수 있나요? 제거하고 설치하는 대신 업그레이드용 핸들러를 만드는 것이 가능합니까?
답변1
패키지를 업그레이드하는 것은 패키지를 제거한 다음 설치하는 것과 다릅니다. 업그레이드는 패키지가 완전히 작동하지 않는 시간을 최소화하기 위해 주의를 기울이는 반면, 제거하고 설치하면 패키지 파일이 전혀 존재하지 않는 기간이 남습니다. 그 외에도 동일한 유지 관리 스크립트를 실행하지 않습니다. 업그레이드는 유지 관리 스크립트(old prerm
, new preinst
, old postrm
, new postinst
)와 upgrade
작업을 실행하는 반면, 제거 후 다시 설치하면 old prerm remove
, old postrm remove
, new preinst install
, new가 실행됩니다 postinst configure
. 보다데비안 정책 매뉴얼더 많은 정보를 원하시거나,위키피디아차트에 사용됩니다.
deb 패키지를 만들고 업그레이드할 때 특별한 작업을 수행하려면 upgrade
관련 유지 관리자 스크립트의 작업(일반적으로 postinst
구성 파일을 업그레이드하고 데몬을 다시 시작)에 대해 이 작업을 수행하십시오.
답변2
질문에 대답하려면 with dpkg
사용 여부에 관계없이 동일한 스크립트(패키지별로)를 호출하세요 . 차이 없음. 실행 중인 패키지 에만 영향을 줍니다 . 매뉴얼 페이지에 따르면 다음과 같습니다.--only-upgrade
apt
--only-upgrade
apt
--only-upgrade Do not install new packages; when used in conjunction with install, only-upgrade will install upgrades for already installed packages only and ignore requests to install new packages. Configuration Item: APT::Get::Only-Upgrade.
dpkg
패키지가 삭제 되면 해당 패키지에 해당하는 prerm/postrm 스크립트가 호출됩니다. dpkg
패키지가 설치되면 해당 preinst/postint 스크립트가 호출됩니다. 다시 말하지만, 이것은 모두 dpkg
에 의해 apt
더 높은 수준에서 실행 됩니다.
답변3
"업그레이드"는 구성된 패키지 저장소에서 사용 가능한 모든 패키지를 현재 설치한 버전보다 최신 버전으로 업그레이드하는 것을 의미합니다.
"설치"는 특정 패키지(사용 가능한 최신 버전)를 추가하거나 이미 설치된 경우 이전 버전의 패키지로 업그레이드하는 것을 의미합니다.
업그레이드를 위해 설치를 실행하기 전에 설치된 패키지를 제거하는 것은 불필요하며 불쾌한 부작용이 있을 수 있습니다.
설치된 모든 패키지에 대한 보안 업데이트를 받으려면 "업그레이드"를 정기적으로 실행하는 것이 좋습니다.