출력 apt-get upgrade
은 다음과 같습니다.
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
이것은 무엇을 의미 하는가? 조치를 취해야합니까? 그렇다면 무엇입니까?
출력 apt-get upgrade
은 다음과 같습니다.
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
이것은 무엇을 의미 하는가? 조치를 취해야합니까? 그렇다면 무엇입니까?
답변:
나는 여러 번 같은 문제를 겪었다. 하지 마십시오 할
sudo apt-get dist-upgrade
첫번째. 매우 중요. **** 참고 :이 솔루션은 데비안 기반 시스템입니다하지만 작동하지 않습니다 에 KDE 네온 . KDE Neon을 업데이트하려면sudo pkcon update
. **** 를 사용해야합니다 .
시스템을 매우 불안정하게 만들 수 있고 프로그램이 중단 될 수 있으며 OS의 많은 기능을 잃을 수 있습니다.
당신은 반드시 개별적으로 각 패키지를 설치 그러나이 , 그 과정에서 다른 종속도 자동으로 설치되며, 문제는 단 몇 분 안에 해결 될 것입니다.
다음 솔루션에 문제가 없었습니다. 상당히 빠르고 쉽습니다.
apt list --upgradable
sudo apt-get install package-name-here
apt list --upgradable
apt list --upgradable
각 패키지 설치 후 패키지 목록 및 유형 을 따르십시오 . 완료하는 데 몇 분 정도 걸립니다.
sudo apt-get autoclean
sudo apt-get update && sudo apt-get dist-upgrade
이 솔루션이 효과가 있었다면 다른 사람이 올바른 솔루션을 사용할 수 있고 답변 목록의 맨 위에 오도록 공표하는 것을 잊지 마십시오.
어떤 이유로 든이 솔루션이 효과가 없으면 아래의 사용자 GAD3R의 답변을 참조하십시오. 또한 좋은 해결책입니다.
감사.
이것은 무엇을 의미 하는가?
The following packages have been kept back:
대답은 여기
즉, 어떤 이유로 설치되지 않는 새 버전의 패키지가 있음을 의미합니다. 가능한 이유는 종속성 (패키지에 의존하는 패키지에 다운로드 할 수있는 버전이 없음) 또는 새로운 종속성 (패키지가 마지막 버전 이후 새 패키지에 의존하게 됨) 때문입니다.
조치를 취해야합니까?
dist-upgrade
새 종속성을 설치하고 패키지를 업그레이드하려면 사용해야 합니다.
sudo apt-get dist-upgrade
dist-upgrade
필요하지 않은 경우 실행하여 문제를 해결할 수 있습니다 .
깨진 종속성 수정
sudo apt-get -f install
시스템에 더 이상 설치되지 않은 일부 패키지를 제거하십시오.
sudo apt-get autoclean
원하는 패키지를 보류하십시오.
echo "<package_name> hold" | dpkg --set-selections
명명 된 패키지를 재구성하십시오.
dpkg-reconfigure <package_name>
에서 이 유닉스 SE 답변 :
먼저 위에서 언급 한대로 프로덕션 시스템을 업그레이드하지 마십시오! DIST-업그레이드 패키지를 다시 유지 "해결"되지만 그것은 확실히이 문제에 대한 해결책이 아니다과 의지 꽤 가능성이 시스템에 미치는 영향을 알고없이 실행하면 좋은 당신보다 더 슬픔의 원인.
패키지를 업그레이드하려면 추가 패키지를 설치해야 할 경우 실행시 "유지"됩니다 sudo apt-get upgrade
.
위에서 언급 한 것처럼 명시 적으로 실행하여 이러한 "유지 된"패키지를 수동으로 설치할 수 sudo apt-get install [paste kept back packages here]
있지만이 패키지는 "수동으로 설치됨"으로 표시됩니다.
"kept back"패키지를 수동으로 설치된 것으로 표시하지 않고 "kept back"패키지를 업그레이드하는 데 필요한 추가 패키지를 자동으로 설치하려면 run을 실행하십시오 sudo apt-get --with-new-pkgs upgrade
.
--with-new-pkgs
다른 대안 에 대한 자세한 내용은 여기를 참조하십시오 .
이 답변을 블로그에 포함 시켰습니다. 당신은 당신 이이 링크 에서 갈 수 있음을보고 싶다면 .
위의 오류는 업그레이드하려고 할 때 우분투 터미널에서 매우 일반적입니다 ( apt-get upgrade
). 일반적으로 설치 한 패키지 하나의 종속성이 변경 되었기 때문에 발생합니다. 업그레이드하려면 먼저 업그레이드해야합니다. 따라서이를 해결하는 것은 매우 간단합니다. 이 오류 메시지 아래로 유지 된 패키지를 볼 수 있습니다. 예를 들어 목록에서 다음 패키지를 볼 수 있습니다.
gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
입력하지 마십시오 sudo apt-get dist-upgrade
. 보류중인 모든 업데이트를 설치하므로 매우 위험합니다. 작업 환경이 매우 불안정한 상태가 될 수 있습니다.
따라서 제 의견은 유명한 것을 사용하는 것입니다
sudo apt-get install [package]
[package]
오류 메시지에있는 패키지로 바꿀 수 있습니다 . 또한 목록으로 그대로 넣을 수 있습니다 (복사하여 붙여 넣기 만하면 됨). 내 경우에는 예를 들어 입력 할 수 있습니다
sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
하고 싶다면
sudo apt-get dist-upgrade
어떤 이유로 시뮬레이션 옵션 -s
( sudo apt-get -s dist-upgrade
)을 사용하거나 -s
옵션 없이 수락하기 전에 실행을 종료 할 수 있는 패키지 목록을 검사하십시오 . (당신은 항상 옵션 no를 선택할 수 있습니다)
최근 데비안 보안 업데이트에는 몇 가지 새로운 종속성이 도입되었습니다. 이 경우 linux-image
패키지 linux-firmware
는 몇 가지 중에서을 요구하기 시작 했습니다. 그래서 그들은 보류되어 설치되지 않았습니다 unattended-upgrade
. 테스트 및 확인 후 보류중인 다른 업데이트를 건드리지 않고 해당 패키지 만 선택적으로 설치할 수있었습니다 .
apt-get -yy install $(apt-get -s upgrade | sed '1,/kept back/d;/will be upgraded/,$d')
이 기사 는 왜 이런 일이 발생하는지 요약합니다.
설치 한 패키지 중 하나에서 종속성이 변경되어 업그레이드를 수행하기 위해 새 패키지를 설치해야한다면 "kept-back"으로 표시됩니다.
이에 대한 해결책은 다음을 사용하여 명시 적으로 설치하는 것입니다.
sudo apt install [packages]
의존성을 만족시키는 것이 아니라 스스로 신경 쓰지 않는 한 이러한 패키지를 자동으로 설치된 것으로 표시하려고 할 수 있습니다.
sudo apt-mark auto [packages]
처음에 이런 일이 발생하지 않도록하려면 사용하는 것이 좋습니다
sudo apt --with-new-pkgs upgrade
향후 패키지를 업그레이드하여 새로운 패키지를 설치하면 종속성의 변경 사항을 충족시킬 수 있습니다.
--with-new-pkgs
! 그리고 나를 그냥 다시 것을 강조하자 " - 거리 업그레이드하지 마십시오 "그것은 확실히이 문제에 대한 해결책이 아니다 유지 다시 패키지를 해결하고 DIST-업그레이드가되지만! 모든 생산 시스템 "을 것이다 매우 가능성이 좋은보다 더 슬픔 당신에게 원인 당신이 경우 시스템에 미치는 영향을 모르고 실행하십시오. "