적절한 전체 업그레이드 및 적절한 업그레이드 이중화

적절한 전체 업그레이드 및 적절한 업그레이드 이중화

이것은 버그일 수도 있지만 며칠 동안 나를 괴롭혔습니다.

apt-get upgrade와 사이의 차이점은 apt-get dist-upgrade이제 잘 알려져 있고 잘 확립되어 있습니다.업그레이드dist-upgrade가능한 동안 설치/업그레이드설치/제거/업그레이드다른 패키지를 설치하거나 업그레이드하려면 해당 패키지를 제거해야 합니다. 패키지의 차이점은 다음과 같이 쉽게 찾을 수 있습니다.

(다음은 복사-붙여넣기를 위해 터미널에 sudo 비밀번호를 입력해야 하는 빠르고 더러운 방법입니다. 그리고 여러 패키지와 드라이버를 직접 패치했기 때문에 구현에 남겨야 하므로 OR만 포함시켰습니다. awk유지할 항목과 업그레이드할 항목은 유지하도록 나열된 항목이 아니라 apt upgrade출력에 해당 줄이 없더라도 다음 항목이 작동해야 합니다.

$echo -e 'n' | sudo apt-get dist-upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' | awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_get_dist_list

$echo -e 'n' | sudo apt-get upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' |  awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_get_upgrade_list

두 출력을 다음과 비교할 때:

$diff apt_get_dist_list apt_get_upgrade_list | grep -E '<|>'

내 경우에는 다음을 얻습니다.

< gir1.2-nm-1.0
< libcpupower2
< linux-kbuild-5.2
< blueman
< linux-cpupower
< linux-headers-amd64
< linux-image-amd64
< pdf-parser

이는 특히 linux-header-*linux-image-*apt-get dist-upgrade

apt upgrade이제 및에 대해 동일한 프로세스를 반복하면apt full-upgrade

$echo -e 'n' | sudo apt upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' | awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_upgrade_list

$echo -e 'n' | sudo apt full-upgrade | awk '
/be installed|be upgraded/{f=1;next}; /not upgraded|kept back/{f=0}f' | awk '
BEGIN {RS=" ";} {print $0}
' | grep . > apt_fullupgrade_list

그리고 비교해보세요:

 $diff apt_get_dist_list apt_fullupgrade_list | grep -E '<|>'

예상대로 나는 그 이후로 아무것도 얻지 못하고 똑같은 방식으로 행동하지만 비교해 보면 다음과 같습니다 apt full-upgrade.apt-get dist-upgrade

$diff apt_get_upgrade_list apt_upgrade_list | grep -E '<|>'

비교할 때와 동일한 출력을 얻습니다 apt-get upgrade with apt-get dist-upgrade.

> gir1.2-nm-1.0
> libcpupower2
> linux-kbuild-5.2
> blueman
> linux-cpupower
> linux-headers-amd64
> linux-image-amd64
> pdf-parser

내가 끌어낼 수 있는 유일한 결론은 이것 apt upgrade과 정확히 동일하면 apt full-upgrade와도 동일해진다는 것입니다 apt-get dist-upgrade. 이는 궁극적으로 중복될 뿐만 apt upgrade아니라 더 걱정스럽게도 현재 apt 와 동일한 동작을 허용하지 않는다는 것을 의미합니다 apt-get upgrade.

답변1

중복되지 않습니다. 추가적인 미묘함이 있습니다:

  • apt-get upgrade현재 설치된 패키지만 업그레이드됩니다.
  • apt upgrade현재 설치된 패키지를 업그레이드합니다.업데이트된 종속성에 의해 도입된 새 패키지를 설치합니다.;
  • 다양한 dist-upgrade변형은 full-upgrade현재 설치된 패키지를 업그레이드하고, 종속성으로 도입된 새 패키지를 설치하며, 패키지 업그레이드로 인해 손상된 패키지를 제거합니다.

또 다른 방법:

주문하다 업그레이드 설치하다 제거하다
apt-get upgrade 아니요 아니요
apt upgrade 아니요
apt-get dist-upgrade, apt full-upgrade등.

실제로 ABI가 변경될 때 최신 커널을 자동으로 설치할 수 있으므로 apt upgrade(기본적으로)보다 더 안전합니다 . apt-get upgrade바라보다apt-get 업그레이드는 커널 업데이트를 방지합니다. 데비안 9에 업데이트를 적용하기 위한 공식적인 지침은 무엇입니까?예를 들어.

apt-get upgradeapt upgrade이 옵션이 사용된 것처럼 작동하도록 지시할 수 있습니다 --with-new-pkgs. 이는 APT 구성 파일을 사용하여 구성할 수도 있습니다. apt특정 설정을 볼 수 있습니다 apt-config dump | grep '^Binary::apt(여기에 관련된 설정은 APT::Get::Upgrade-Allow-New).

관련 정보