it-swarm-tr.com

“Aşağıdaki paketler geri alındı:” Neden ve nasıl çözerim?

GIMP'nin geliştirme sürümü için bir PPA deposu ekledim, ancak şu 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

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

864
jfoucher

'a göre debian-administration.org ,

Bağımlılıklar kurduğunuz paketlerden birinde değiştiyse, yükseltme işlemini gerçekleştirmek için yeni bir paket kurulmalıdır, o zaman "geri tutuldu" olarak listelenir.

Dikkatli çözüm 1:

Başına Pablo'nun cevabı , Sudo apt-get --with-new-pkgs upgrade komutunu çalıştırabilirsiniz ve saklanan paketleri yükler.

Bu, saklanan paketleri "elle kurulmuş" olarak işaretlememenin avantajına sahiptir, bu da kullanıcının daha fazla müdahalesini zorlayabilir (yorumlara bakın).

Pablo'nun çözümü sizin için çalışıyorsa, lütfen onu oylayın. Değilse, lütfen neyin yanlış gittiğini yorumlayın.

Dikkatli çözüm 2:

Dikkatli çözüm Sudo apt-get install <list of packages kept back> komutunu çalıştırmaktır. Çoğu durumda bu, saklanan paketlere başarılı bir şekilde yükseltme yapmak için gerekenleri verir.

Agresif çözüm:

Daha agresif bir çözüm, bu yeni bağımlılıkların kurulmasını zorlayacak olan Sudo apt-get dist-upgrade komutunu çalıştırmaktır.

Ancak dist-upgrade oldukça tehlikeli olabilir . Yükseltmenin aksine karmaşık bağımlılık durumlarını çözmek için paketleri kaldırabilir . Senden farklı olarak, APT bu eklemelerin ve kaldırılmaların zarar görüp görmeyeceğini bilmek için her zaman yeterince akıllı değildir.

Öyleyse, kendinizi "ihtiyatlı çözüm" ün çalışmadığı bir yerde bulursanız, dist-upgrade işe yarayabilir ... ama muhtemelen biraz daha fazla öğrenmede daha iyisinizdir about APT ve bağımlılık sorunlarını, paketleri duruma göre kurarak ve kaldırarak "elle" çözme.

Bir arabayı tamir etmek gibi düşünün ... eğer vaktiniz varsa ve bir İngiliz anahtarıyla kullanışınız varsa, okuyarak ve onarımı kendiniz yaparak biraz rahatlayabilirsiniz. Kendini şanslı hissediyorsan, arabanı kuzenin dist-upgrade ile bırakabilir ve onun şeylerini bildiğini umabilirsin.

887
Michael Crenshaw

apt-get upgrade komutundan ne zaman alsanız, mesajı

The following packages have been kept back:

daha sonra saklanan paketlerden birini veya hepsini bir dağıtım yükseltme yapmadan yükseltmek için (doğru hatırlıyorsam dist-upgrade'un yaptığı şey budur):

apt-get install <list of packages kept back>

bu, saklanan sorunları çözecek ve diğer cevaplarda açıklandığı gibi ek paketler vb. yüklemeyi isteyecektir.

497
user88285

apt-get dist-upgrade dengeli ortamlar için tehlikelidir,

  1. yanlış source.list ayarı ve bozuk ubuntu ile bitirin.
  2. tüm uygulamanın istemediğiniz sürüme yükseltilmesini sağlayabilirsiniz.

Kullanım örneği: çekirdek yükseltme geri tutuldu, yalnızca çekirdeği yükseltmek istiyor, tüm dağıtımı yükseltmek istemiyorsunuz.

Saklanan paketi geri almanın daha iyi bir yolu:

Sudo aptitude

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

  • Bu listede + tuşuna basın
  • İki kere g vur
  • Sorulursa debconf olaylarına cevap verin
  • Devam etmek için return tuşuna basın
  • Q düğmesine basın
  • Evet tuşuna basın

Paketini geri aldın.

173
mudy

Neden denemiyorsunuz bu Unix SE cevabı :

_Sudo apt-get --with-new-pkgs upgrade
_

Bu, yeni paketlerin kurulmasına izin verir. Hangi paketlerin yükleneceğini bilmenizi sağlar ve kurulumu gerçekten yapmadan önce size sorar.

apt command ( arkadaşça alternatif - apt-get ) bu seçeneği paylaşın.

_apt install <pkg>_ kullanmak pkg yerine "el ile yüklendi" olarak işaretleyecektir !! Tekrar "otomatik yüklendi" olarak işaretlemek için apt-mark auto <pkg> (ayrıca bkz. Alt komut showmanual). Daha fazla bilgi bu cevaba .

141
Pablo Bianchi

Bu mesajı görmenizin normalde iki nedeni vardır.

Programın yükseltilmesi (Sudo apt-get upgrade aracılığıyla) paketlerin eklenmesine veya kaldırılmasına neden olacaksa, program geri alınacaktır. Bu durumda Sudo apt-get dist-upgrade kullanabilirsiniz, bu durumda ek programlar eklemek veya çıkarmak için teklifte bulunabilirsiniz.

Bu oldukça yaygındır ve genellikle bir sorun değildir. Bazen (özellikle bir Ubuntu alfa sırasında) bir dist-upgrade bir çok başka programı kaldırmayı teklif eder, bu durumda muhtemelen iptal etmek istersiniz.

Program mevcut olmayan paketlere veya sürümlere bağlıysa, program geri tutulur. Paket temelde kaldırılamaz olduğundan, gerçekten bu konuda hiçbir şey yapamazsınız. Bu, paketlerin depoya sıra dışı eklenmesi, bir paketin yeniden adlandırılması veya bir paketin sanal bir paket sağlamayı bırakması durumunda ortaya çıkabilir.

33
jbowtie

Ayrıca deneyebilirsiniz:

Sudo aptitude safe-upgrade.

full-upgrade'den (başlangıçta dist-upgrade olarak adlandırılır) daha güvenlidir çünkü "kullanılmamışlarsa paketler kaldırılmaz".

man aptitude içinden:

güvenli yükseltme

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

23
Afilu

Büyük olasılıkla bu paketler geri tutulur, çünkü kurulumları bağımlılık tutarsızlıkları yaratacaktır. Bu, aktif geliştirme, ppas arşivlerini kullandığınızdan veya kullandığınız yansıtma tamamen güncellenmediğinden olabilir.

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

Düzenleme:

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

21
txwikinger

Bunun nedeni genellikle paketin bir bağımlılık eklemesi ve yükseltme işleminin sizin için izinsiz eklemek istememesidir.

Eğer koşarsan:

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

O zaman yeni sürümler, yeni bağımlılıklarıyla birlikte kurulmalıdır.

9

Bu benim için çalıştı

Sudo aptitude full-upgrade
8
Singh

Sürümler biraz farklıysa, yeteneklerin paketleri yükseltmek için daha iyi bir iş çıkardığını öğrendim. Böyle bir durum vardı:

[email protected]:/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

Bu, apt-get'in güncellemeyi geri almasını sağladı, ancak yetenek durumu çok iyi güncelledi. Bir paketin güncellenip güncellenmeyeceğini belirlemek için hangi algoritmanın kullanıldığından emin değilim. Sanırım bu ikisi aynı sürüme sahipti, sadece farklı bir 'eleme aracı' vardı. Ancak her durumda apt-get bunu güncellemez, ancak yetenek olur.

6

Benim durumumda paketler geri tutuldu linux-headers ve çekirdekle ilgili olanlar. Buraya, bildirim alanında kırmızı bir ünlem işareti bulunan ve paketleri güncelleyemeyen bir sorunu çözmeye çalışarak geldim.

Bunu çözmek için ne dist-upgrade ne de manuel apt-get install xxx .

Yaptığım ve yardım ettiğim şey basit ve temiz:

Sudo apt-get update
Sudo apt-get autoremove
Sudo apt-get autoclean
Sudo apt-get upgrade

Grub güncellemesini ve yapılandırmasını manuel olarak onaylamak zorunda kaldım.

Sonra bir süre bilgisayarla çalıştım ve ardından nihayet çekirdek ve ilgili "Ubuntu base" bölümünü içeren standart güncelleme diyalogu tekrar belirdi. Güncelleme sorunsuz bir şekilde yapıldı ve artık hiçbir geri tutma paketi görmüyorum.

Ayrıca, aşağıdakiler de dahil olmak üzere * buntu güncellemelerinin çekirdek güncellemeleri hazırda bekletme moduna duyarlıdır - Birkaç kez bu sorunu çözdüm ve makineyi yeniden başlatarak ve gerçekleştirerek çözdüm. Yukarıdaki adımlar.

Yani belki bu sadece yeterli olur ?!

(burada açıklanan durum, Aralık 2015 sonunda Xubuntu 15.10 ile ilgilidir)

4
crysman

Yeni bir çekirdek çıktığında bu problemle karşılaştım. (Muhtemelen dengesiz güncellemeleri etkin kıldığım için.) Kurulumu yapmanın en basit yolunu Ubuntu'nun grafik yükleyicisi (update-manager) aracılığıyla buldum.

3
Kazark

Bu soruna sinaptik kullanarak girdim, çünkü asılıyor gibi görünüyordu ve yeniden denemek için yeniden denedim ve yeniden denedim.

Sonra benim için bazı kurulum sonrası talimatları ile paketin bir parçası olarak bilgilendirici bir mesaj keşfettim.

Mesajı okuduktan sonra çıkmak için "details" ve sonra 'q' tuşlarına basmak zorunda kaldım ve işler normal şekilde devam etti.

2
Elliptical view

Bu geri tutulan paketi yeniden yüklemenin doğru yoluna benziyor:

apt-get install --reinstall libjpeg-progs

En azından bu, Ubuntu 14.04'ten 16.04'e yükselttikten sonra libjpeg-progs sıkışıp kaldığında benim için çalıştı. Diğer tutulan herhangi bir uygulamayla aynı şeyi yapabileceğinize eminim, örn. gimp.

Kaynak: https://ubuntuforums.org/showthread.php?t=2321702&p=13476183#post1347618

2
Stephan Henningsen

Tüm mesajları okudum ve birçok ilginç açıklama olduğunu gördüm. Hepsini deniyordum ama sonuçta hiçbir sonuç yok. Yükseltemediğim mysql-utilities ile ilgili bir sorunum var. Güncelleme sistem tarafından önerildi. Bu yüzden, bunu yapmak için bazı adımlar göstermek istiyorum. Tabii ki, anılan tüm yayınların bazı anlarında tekrarlayacağım. İşte benim hatam, evet daha önce var olan gönderilerde buldum, ama sonra ne yapmalıyım? enter image description here

Bir sonraki adım:

Sudo apt-get --purge remove mysql-utilities

Aşağıdaki resimde gördüğümüz sonuçlar. Paketi kaldırıyorum ve şunu kontrol ederek:

Sudo apt-get -f install

Sonuçlar - Güzel! Daha sonra paketin bu yeni sürümünü doğru kurdum. enter image description here

Bu şekilde, daha yeni insanlara yardım edebileceğini düşünüyorum çünkü başka paketleri de aynı adımları uygulayabiliriz.

Bir zamanlar, başka yerlerde başka yerlerde tekrar ettiğim için özür dilerim.

1

Unbuntu 18.04, apt-get_ yerine kullanılabilecek apt aracılığıyla daha yeni, düzenli bir sözdizimi sağlar.

_Sudo apt full-upgrade
_

Sudo apt upgrade, sistemde yüklü olan tüm paketlerin mevcut yüklemelerini sources.list (5) ile yapılandırılan kaynaklardan yüklemek için kullanılır. Bağımlılıkları sağlamak için gerekirse yeni paketler kurulacak, ancak mevcut paketler asla kaldırılmayacak. Bir paket için yükseltme, kurulu bir paketin kaldırılmasını gerektiriyorsa, bu paket için yükseltme gerçekleştirilmez.

Sudo apt full-upgrade yükseltme işlevini yerine getirir, ancak sistemi bir bütün halinde yükseltmek gerekirse, şu anda kurulu olan paketleri siler.

1
l --marc l

Gerçekte, ihtiyacınız olan anahtar, ilgili belirli paket kümesi için bağımlılıkları kuran/kaldıran dselect-upgrade.

1
Johnny