답변:
에 따르면 debian-administration.org에 대한 기사 ,
설치 한 패키지 중 하나에서 종속성이 변경되어 업그레이드를 수행하기 위해 새 패키지를 설치해야한다면 "kept-back"으로 표시됩니다.
신중한 해결책 1 :
당 파블로의 대답 , 당신은 실행할 수 있습니다 sudo apt-get --with-new-pkgs upgrade
, 그리고 그것은 유지 백 패키지를 설치합니다.
이렇게하면 보관 된 패키지를 "수동으로 설치"로 표시하지 않아도되므로 사용자 개입이 줄어 듭니다 (주석 참조).
파블로의 해결책이 당신을 위해 효과가 있다면, 그것을 찬성하십시오. 그렇지 않은 경우 무엇이 잘못되었는지 의견을 말하십시오.
신중한 해결책 2 :
신중한 해결책은 실행하는 것 sudo apt-get install <list of packages kept back>
입니다. 대부분의 경우 이것은 유지 된 패키지가 성공적으로 업그레이드하는 데 필요한 것을 제공합니다.
적극적인 솔루션 :
보다 적극적인 솔루션을 실행 sudo apt-get dist-upgrade
하는 것이 새로운 종속성을 강제로 설치합니다.
그러나 dist-upgrade
매우 위험 할 수 있습니다 . 업그레이드와 달리 복잡한 종속성 상황을 해결하기 위해 패키지를 제거 할 수 있습니다. 귀하와 달리 APT는 이러한 추가 및 제거가 혼란을 초래할 수 있는지 항상 알만큼 똑똑하지는 않습니다.
그래서 당신은 "주의 솔루션", 작동하지 않는 곳에서 자신을 찾을 경우 dist-upgrade
수 일 ...하지만 당신은 설치 및 제거하여 APT에 대해 좀 더 배우고 "손으로"종속성 문제를 해결 떨어져 아마 더 좋을 것 같아 사례별로 패키지.
자동차를 수리하는 것처럼 생각하십시오. 시간이 있고 렌치를 사용하면 편리하게 읽고 수리하여 안심할 수 있습니다. 운이 좋다면 사촌 dist-upgrade
과 함께 차를 내릴 수 있고 그녀가 그녀의 물건을 알고 있기를 바랍니다.
dist-upgrade
아래의 많은 다른 답변이 지적했듯이 안정적인 시스템에서 사용하는 것에 대해 경고하려면 실제로 업데이트해야 합니다. 개인적으로 나는 승진해야 할 더 간단하고 안전한 답변이 있다고 생각합니다. apt-get install <pkgs 목록>
sudo apt-get dist-upgrade
또한 수 있습니다 제거 패키지를. 따라서 실행시 변경 사항에 동의하기 전에 수행 할 변경 목록을 항상 검사하는 것이 가장 좋습니다 sudo apt-get dist-upgrade
.
apt-get upgrade
패키지를 제거 할 수 있습니까? 그렇지 않으면 버전 충돌이있을 때 항상 그렇게합니다. llvm3.6
vs를 생각하십시오 llvm3.6v5
( "v5"로 컴파일되어 있음 gcc 5
). 이 둘 은 공존 할 수 없으며 둘 중 하나만 시스템에 보관할 수 있습니다. 예 dist-upgrade
, 일부 패키지도 제거 할 수 있지만 그렇게하는 것만이 아닙니다 dist-upgrade
. 특정 상황에서도 upgrade
마찬가지입니다.
명령 apt-get upgrade
에서 메시지 를받을 때마다
The following packages have been kept back:
그런 다음 배포 업그레이드를 수행하지 않고 보관 된 패키지 중 하나 또는 전부를 업그레이드하려면 ( dist-upgrade
정확히 기억하는 경우 수행하는 작업 ) 명령을 실행하는 것입니다.
apt-get install <list of packages kept back>
이렇게하면 유지 된 문제가 해결되고 다른 답변에서 설명한대로 추가 패키지 설치 등을 요청합니다.
apt-get upgrade <list of packages>
다시 실행 apt-get upgrade
하면 문제가있는 패키지를 더 이상 필요하지 않은 것으로 나열하고 apt autoremove
제거하는 데 사용할 수있는 패키지를 apt-get upgrade
나열합니다. 계속 ... 매우 이상합니다. 이견있는 사람?
apt-get install
밥맛 종속 상황을 해결하기 위해 필요한 경우도 패키지를 제거하거나 별도의 실행해야 apt-get remove
업그레이드 프로세스의 일부를 수행하는 명령을?
apt autoremove
그런 다음 사용하지 않는 종속성을 제거합니다.
sudo apt-get --with-new-pkgs upgrade
을 사용 하는 것이
apt-get dist-upgrade
안정적인 환경에 위험합니다
유스 케이스 : 커널 업그레이드가 유지되었으므로 커널을 업그레이드하고 전체 배포를 업그레이드하고 싶지 않습니다.
보관 된 패키지를 처리하는 더 좋은 방법 :
sudo aptitude
패키지를 다시 보관 한 경우 목록 상단에 업그레이드 가능한 패키지가 표시됩니다.
보관 된 패키지가 설치되었습니다.
apt-get dist-upgrade
에 리포지토리가 잘못된 경우에만 위험합니다 /etc/apt/sources.list*
. 모든 패키지 를 dist-upgrade
업그레이드 하지만 기본 리포지토리를 사용하는 것이 좋습니다. 보안 업데이트가 누락 될 수 있으므로 사용 하지 않으면 위험 할 수 있습니다. dist-upgrade
apt-get dist-upgrade
패키지를 제거 하고 추가 할 수 있지만 실제로 위험하지는 않습니다. 파일에 문제가있는 경우sources.list
모든 패키지 설치 명령으로 인해 심각한 손상 이 발생할 수 있습니다 ! 일반 apt-get upgrade
명령은 활성화 된 소프트웨어 소스에서 모든 패키지를 설치합니다. dist-upgrade
이런 식으로 고유하지 않습니다. 또한 버그 831768 이 수정되지 않은 릴리스에서는 aptitude
적어도 amd64에서 모든 작업을 수행하는 것이 실행보다 훨씬 위험 합니다. apt-get dist-upgrade
sudo aptitude safe-upgrade
왜 시도하지 이 유닉스 SE의 대답 :
sudo apt-get --with-new-pkgs upgrade
새 패키지를 설치할 수 있습니다. 어떤 패키지가 설치 될지 알려주고 실제로 설치하기 전에 프롬프트를 표시합니다.
apt
명령 ( 친화적 인 대안은 하는 apt-get
이 옵션을 공유).
apt install <pkg>
대신 사용하면 pkg가 "수동으로 설치됨"으로 표시됩니다 !! "자동 설치"로 다시 표시하려면 다음 apt-mark auto <pkg>
명령을 사용 하십시오 (하위 명령 참조 showmanual
). 이 답변에 대한 자세한 정보 .
apt-mark auto <pkg>
패키지가 자동으로 설치되는 것으로 표시해야합니다 ( 여기서는 맨 페이지 ).
sudo apt-get --with-new-pkgs upgrade
여전히 패키지를 "유지"로 표시합니다. 오류 메시지가 없습니다.
이 메시지가 나타나는 데는 일반적으로 두 가지 이유가 있습니다.
을 통해 프로그램을 업그레이드 sudo apt-get upgrade
하면 패키지가 추가되거나 제거 될 경우 프로그램이 보류됩니다. 당신은 사용 sudo apt-get dist-upgrade
후 추가 프로그램을 추가하거나 제거 할 수 제공 할 것이 경우에.
이것은 일반적이며 문제가되지 않습니다. 때때로 (특히 우분투 알파 기간 동안) dist-upgrade
다른 많은 프로그램을 제거하도록 제안 할 것입니다.이 경우에는 취소하고 싶을 것입니다.
프로그램이 사용할 수없는 패키지 또는 버전에 의존하는 경우 프로그램이 보류됩니다. 패키지는 기본적으로 제거 가능하기 때문에 실제로는 아무것도 할 수 없지만이 상황에서는 기다릴 수 없습니다. 이는 패키지가 순서대로 저장소에 추가되거나 패키지 이름이 변경되거나 패키지가 가상 패키지 제공을 중지 할 때 발생할 수 있습니다.
apt-get dist-upgrade
설치를 거부했습니다. 적절한 패키지를 검사 한 결과 사용할 수없는 패키지에 의존하는 것으로 나타났습니다. 기다려야 할 것 같아
이러한 패키지는 설치시 종속성 불일치가 발생하기 때문에 보류 될 가능성이 높습니다. 활성 개발중인 아카이브 (ppas)를 사용하거나 사용하는 미러가 완전히 업데이트되지 않았기 때문에 발생할 수 있습니다.
마지막 경우, 종속성이 해결되면 다음에 설치됩니다.
편집하다:
또 다른 가능성이 있습니다. 패키지를 보류하거나 고정한 경우 패키지가 보류 될 수 있습니다.
dist-upgrade
. 그래도 계속하려면 dist-upgrade
설치하기 전에 설치할 새 패키지와 제거 할 패키지를 확인하십시오.
apt-get install --reinstall <packages>
됩니다.
이것은 나를 위해 일했다
sudo aptitude full-upgrade
aptitude upgrade
나를 위해 일했다.
Ubuntu 14.04
내가없는 aptitude
명령 줄을
apt-get dist-upgrade
나에게 같은 메시지를 주었지만 이것은 나를 위해 해결되었습니다. 다른 패키지의 업그레이드를 방해하는 패키지가있었습니다. 내가 설치 한 것이 필요하지 않았 aptitude full-upgrade
으므로 다른 것을 업그레이드 할 수 있도록 제거하는 옵션을주었습니다.
버전이 약간 다르면 적성이 패키지를 업그레이드 할 때 더 잘 작동한다는 것을 알았습니다. 나는 이런 상황을 겪었다.
me@compy:/etc/apt$ apt-cache policy gzip
gzip:
Installed: 1.3.5-15
Candidate: 1.3.5-15+etch1
Version table:
1.3.5-15+etch1 0
500 http://archive.debian.org etch/main Packages
*** 1.3.5-15 0
100 /var/lib/dpkg/status
이로 인해 apt-get이 업데이트를 보류했지만 적절하게 업데이트되었습니다. 패키지를 업데이트해야하는지 여부를 결정하는 데 어떤 알고리즘이 사용되는지 잘 모르겠습니다. 나는이 두 가지 버전이 같고 다른 'qualifier'만 있다고 생각합니다. 그러나 어쨌든 apt-get은 업데이트하지 않지만 적성은 업데이트됩니다.
필자의 경우 보류 된 패키지는 Linux 헤더 및 커널과 관련된 패키지였습니다 . 알림 영역에 빨간색 느낌표가 있고 패키지를 업데이트 할 수없는 문제를 해결하려고 노력했습니다.
그것을 해결하기 위해 dist-upgrade 나 manual apt-get install xxx 를 사용할 필요가 없었습니다 .
내가 한 일과 도움이 된 일은 간단하고 깨끗했습니다 .
sudo apt-get update
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get upgrade
Grub 업데이트 및 구성을 수동으로 확인해야했습니다.
그런 다음 컴퓨터와 잠시 동안 작업 한 다음 커널 및 관련 "우분투 기본"섹션을 포함하여 표준 업데이트 대화 상자가 다시 나타났습니다. 문제없이 업데이트가 수행되었으며 더 이상 보류 된 패키지가 표시되지 않습니다.
또한 커널 업데이트를 포함한 * buntu 업데이트 는 최대 절전 모드에 민감 하다는 점을 명심해야합니다. 이 문제가 여러 번 발생했으며 컴퓨터를 다시 시작하고 위의 단계를 수행하면 항상 문제가 해결됩니다.
아마 이것으로 충분할까요?!
(여기에 설명 된 상황은 2015 년 12 월 말 내 Xubuntu 15.10과 관련이 있습니다)
유지 된 패키지를 다시 설치하는 올바른 방법 인 것 같습니다.
apt-get install --reinstall libjpeg-progs
적어도 이것은 libjpeg-progs
우분투 14.04에서 16.04로 업그레이드 한 후 멈추었을 때 효과적이었습니다. 예를 들어 다른 유지 응용 프로그램과 동일한 작업을 수행 할 수 있다고 확신합니다 gimp
.
출처 : https://ubuntuforums.org/showthread.php?t=2321702&p=13476183#post13476183
--reinstall
있다.
나는 모든 게시물을 읽었으며 많은 흥미로운 설명이 있음을 발견했습니다. 나는 그들 모두를 시도했지만 완전히 결과가 없었습니다. 업그레이드 할 수없는 mysql-utilities에 문제가 있습니다. 시스템에서 업데이트를 제안했습니다. 그래서 몇 가지 단계를 보여 드리고자합니다. 물론, 나는 앞서 언급 한 모든 게시물을 잠시 후에 반복 할 것입니다. 여기 내 실수가 있습니다. 그렇습니다. 이미 존재하는 게시물로 찾았지만 다음에 어떻게해야합니까?
다음 단계는
sudo apt-get --purge remove mysql-utilities
아래 이미지에서 볼 수있는 결과. 패키지를 제거하고 명령으로 이것을 확인하십시오.
sudo apt-get -f install
결과-좋아! 나중에이 새 버전의 패키지를 올바르게 설치했습니다.
이런 식으로, 다른 패키지를 사용하면 동일한 단계를 수행 할 수 있기 때문에 더 많은 새로운 사람들을 도울 수 있다고 생각합니다.
한 번, 다른 장소에서 다른 게시물을 반복했을 때 죄송합니다.
{}
다음 편집기 에서 단추를 눌러 형식을 올바르게 지정하십시오.
우분투 18.04 비아 새롭고 간소화 된 구문 제공 apt
대신에 사용될 수있다 apt-get
.
sudo apt full-upgrade
sudo apt upgrade
sources.list (5)를 통해 구성된 소스에서 시스템에 현재 설치된 모든 패키지의 사용 가능한 업그레이드를 설치하는 데 사용됩니다. 종속성을 충족시키기 위해 필요한 경우 새 패키지가 설치되지만 기존 패키지는 제거되지 않습니다. 패키지 업그레이드시 설치된 패키지를 제거해야하는 경우이 패키지의 업그레이드가 수행되지 않습니다.
sudo apt full-upgrade
업그레이드 기능을 수행하지만 시스템 전체를 업그레이드하는 데 필요한 경우 현재 설치된 패키지를 제거합니다.