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?
'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.
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.
apt-get dist-upgrade
dengeli ortamlar için tehlikelidir,
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.
Paketini geri aldın.
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 .
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.
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.
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.
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.
Bu benim için çalıştı
Sudo aptitude full-upgrade
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.
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)
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.
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.
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
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?
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.
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.
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.
Gerçekte, ihtiyacınız olan anahtar, ilgili belirli paket kümesi için bağımlılıkları kuran/kaldıran dselect-upgrade
.