이것은 버그일 수도 있지만 며칠 동안 나를 괴롭혔습니다.
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 upgrade
apt upgrade
이 옵션이 사용된 것처럼 작동하도록 지시할 수 있습니다 --with-new-pkgs
. 이는 APT 구성 파일을 사용하여 구성할 수도 있습니다. apt
특정 설정을 볼 수 있습니다 apt-config dump | grep '^Binary::apt
(여기에 관련된 설정은 APT::Get::Upgrade-Allow-New
).