"Aşağıdaki paketler geri tutuldu:" Neden ve nasıl çözebilirim?

GİMP geliştirme sürümü için bir PPA deposu ekledim, ancak bu hatayı alıyorum:

$ apt-get update && apt-get upgrade...The following packages have been kept back:  gimp gimp-data libgegl-0.0-0 libgimp2.0

Şimdi sahip olduğum sürüm yerine en son sürümü kullanabilmem için neden ve nasıl çözebilirim?

Göre konuyla ilgili bir makale debian-administration.org,

Yüklediğiniz paketlerden birinde bağımlılıklar değiştiyse, yükseltmeyi gerçekleştirmek için yeni bir paketin yüklenmesi gerekiyorsa, bu "geri tutuldu" olarak listelenir.

Temkinli çözüm 1:

Her Pablo'nun cevabı kaçabilirsin. sudo apt-get --with-new-pkgs upgrade ve saklanan paketleri kuracaktır.

Bu, tutulan paketleri "el ile yüklenmiş" olarak işaretlememenin avantajına sahiptir, bu da daha fazla kullanıcı müdahalesini zorlayabilir (yorumlara bakın).

Pablo'nun çözümü sizin için işe yararsa, lütfen bunu not edin. Değilse, lütfen neyin yanlış gittiğini yorumlayın.

Temkinli çözüm 2:

Temkinli çözüm koşmaktır sudo apt-get install <list of packages kept back>. Çoğu durumda bu, saklanan paketlere başarılı bir şekilde yükseltmek için ihtiyaç duydukları şeyi verir.

Agresif çözüm:

Daha agresif bir çözüm koşmaktır sudo apt-get dist-upgrade bu, bu yeni bağımlılıkların yüklenmesini zorlayacaktır.

Ama dist-upgrade oldukça tehlikeli olabilir. Yükseltmeden farklı olarak olabilir kaldırmak karmaşık bağımlılık durumlarını çözmek için paketler. Sizden farklı olarak, APT her zaman bu eklemelerin ve kaldırmaların hasara yol açıp açmayacağını bilecek kadar akıllı değildir.

Yani kendinizi "temkinli çözümün" işe yaramadığı bir yerde bulursanız, dist-upgrade -ebilmek iş... ancak muhtemelen APT hakkında biraz daha fazla şey öğrenmekten ve paketleri duruma göre yükleyip kaldırarak bağımlılık sorunlarını "elle" çözmekten daha iyi olursunuz.

Arabayı tamir etmek gibi düşün... vaktiniz varsa ve bir anahtarla kullanışlıysanız, onarımı kendiniz okuyarak ve yaparak biraz huzur elde edersiniz. Kendini şanslı hissediyorsan, arabanı kuzeninle birlikte bırakabilirsin. dist-upgrade umarım eşyalarını biliyordur.

Komuttan ne zaman alırsanız apt-get upgrade ileti

The following packages have been kept back:

ardından, bir dağıtım yükseltmesi yapmadan, tutulan paketlerin birini veya tümünü yükseltmek için (işte budur dist-upgrade doğru hatırlıyorsam) komutu vermektir:

apt-get install <list of packages kept back>

bu, tutulan sorunları çözecek ve ek paketler vb. Yüklemenizi isteyecektir. diğer cevaplarla açıklandığı gibi.

Ayrıca bakınız: Neden apt-get dist-upgrade yerine apt-get upgrade kullanıyorsunuz?

Denemek bu Unix SE cevabı:

sudo apt-get --with-new-pkgs upgrade

Bu, yeni paketlerin yüklenmesini sağlar. Hangi paketlerin yükleneceğini size bildirir ve yüklemeyi gerçekten yapmadan önce sizi uyarır.

apt komut (dostça bir alternatif -e doğru apt-get) bu seçeneği paylaşın.

Kullanım apt install <pkg> bunun yerine pkg'yi "elle yüklenmiş" olarak işaretleyecektir!! Tekrar "otomatik olarak kuruldu" olarak işaretlemek için apt-mark auto <pkg> (ayrıca bkz. alt komut showmanual). Daha fazla bilgi bu cevap üzerine.

apt-get dist-upgrade istikrarlı çevre için tehlikelidir,

  1. yanlış kaynak.liste ayarı ve kırık ubuntu ile sonuçlanırsınız.
  2. tüm uygulamayı istemediğiniz sürüme yükseltebilirsiniz.

Kullanım durumu: çekirdek yükseltmesi geri tutuldu, sadece çekirdeği yükseltmek istiyorsunuz, tüm dağıtımı yükseltmek istemiyorsunuz.

Saklanan paketi ele almanın daha iyi bir yolu:

sudo aptitude

Paketi geri sakladıysanız, listenin en üstünde Yükseltilebilir Paketler görmelisiniz.

  • Bu listede + tuşuna basın
  • G'ye iki kez vur
  • Sorulursa debconf şeylerine cevap verin
  • Devam etmek için return tuşuna basın
  • Q tuşuna basın
  • Evet tuşuna basın

Saklanan arka paketiniz kuruldu.

Normalde bu iletiyi görmenizin iki nedeni vardır.

Programı yükseltirseniz (via sudo apt-get upgrade) paketlerin eklenmesine veya kaldırılmasına neden olur, daha sonra program geri tutulur. Kullanabilirsiniz sudo apt-get dist-upgrade bu durumda, daha sonra ek programlar eklemeyi veya kaldırmayı teklif edecektir.

Bu oldukça yaygındır ve genellikle bir sorun değildir. Bazen (özellikle bir Ubuntu alpha sırasında) a dist-upgrade diğer birçok programı kaldırmayı teklif edecek, bu durumda muhtemelen iptal etmek isteyeceksiniz.

Program, kullanılamayan paketlere veya sürümlere bağlıysa, program geri tutulur. Paket temelde kaldırılabilir olduğundan, bu durumda beklemekten başka bir şey yapamazsınız. Bu, paketler depoya sıra dışı eklendiğinde, bir paket yeniden adlandırıldığında veya bir paket sanal paket sağlamayı durdurduğunda gerçekleşebilir.

Ayrıca deneyebilirsiniz:

sudo aptitude safe-upgrade

Daha güvenli full-upgrade (özgün adı dist-upgrade) çünkü "paketler kullanılmadığı sürece kaldırılmaz".

-den man aptitude:

güvenli yükseltme

Yüklü paketleri en son sürümlerine yükseltir. Yüklü paketler kullanılmadığı sürece kaldırılmaz /.../ Şu anda yüklü olmayan paketler, --no-new-installs komut satırı seçeneği sağlanmadıkça bağımlılıkları gidermek için yüklenebilir.

Yüklemeleri bağımlılık tutarsızlıkları oluşturacağından büyük olasılıkla bu paketler geri tutulur. Bu, etkin geliştirme altındaki arşivleri, ppa'ları kullandığınız için veya kullandığınız yansıtmanın tam olarak güncelleştirilmediği için olabilir.

Son durumda, bağımlılıklar çözüldüğünde bir dahaki sefere yüklenmesini bekleyin.

Düzenlemek:

Başka bir olasılık daha var, paketler üzerinde bekletilirse veya sabitlenirse geri tutulabilir.

Bu benim için işe yaradı

sudo aptitude full-upgrade

Bunun nedeni genellikle paketin bir bağımlılık eklemesi ve upgrade sizin için izinsiz olarak eklemek istememesidir.

Eğer kaçarsan:

sudo apt-get install gimp gimp-data libgegl-0.0-0 libgimp2.0

Daha sonra yeni sürümler yeni bağımlılıklarıyla birlikte yüklenmelidir.

Ubuntu 18.04, 20.04 (ve daha yeni) bir kolaylaştırılmış sözdizimi ile apt full-upgrade hangi gibi fonksiyonlar sudo apt-get dist-upgrade.

sudo apt full-upgrade

sudo apt upgrade şu anda sistemde yüklü olan tüm paketlerin mevcut yükseltmelerini kaynaklar aracılığıyla yapılandırılmış kaynaklardan yüklemek için kullanılır.liste (5). Bağımlılıkları karşılamak için gerekirse yeni paketler yüklenir, ancak mevcut paketler asla kaldırılmaz. Bir paket için yükseltme, yüklü bir paketin kaldırılmasını gerektiriyorsa, bu paketin yükseltmesi gerçekleştirilmez.

sudo apt full-upgrade yükseltme işlevini yerine getirir, ancak sistemi bir bütün olarak yükseltmek için gerekliyse, şu anda yüklü olan paketleri kaldırın.

Not: full-upgrade mevcut dağılımda kalır.

Görmek: apt adam sayfası: 18.04, 20.04

Ne saçma bir mesaj. İşletim sistemi neden gerekli olanı yapamıyor?