apt, paketlerin geri tutulduğunu söylüyor, ne yapmalı?


23

Çıktı apt-get upgrade:

The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl

Ne anlama geliyor? Harekete geçmeli miyim? Öyleyse ne olmuş?

Yanıtlar:


37

Hızlı ve Kolay Çözüm:

Aynı sorunu birkaç kez yaşadım. Do NOT yapmak sudo apt-get dist-upgradeilk. Çok önemli. **** NOT: Bu çözüm Debian tabanlı makineler içindir, ancak KDE Neon üzerinde çalışmaz . KDE Neon'u güncellemek için şunu kullanmalısınız . ****sudo pkcon update

Neden?

Sisteminizi çok kararsız hale getirebilir, programlar çökebilir ve işletim sisteminizde çok fazla işlevsellik kaybedebilirsiniz.

Sen GEREKİR , tek tek her paket yüklemek ANCAK , bu işlem sırasında, diğer bağımlılıklar da otomatik olarak yüklenir ve sorununuzun sadece birkaç dakika içinde çözülecektir.

Aşağıdaki çözümle ilgili hiçbir sorunum olmadı. Oldukça hızlı ve kolaydır.


İlk olarak şunu yapın:

apt list --upgradable

  • Bu, yükseltilebilecek paketlerin bir listesini gösterecektir.

Sonra, bunu yapın:

  • İlk paketle listenin başından başlayın ve şunu yazın:

sudo apt-get install package-name-here

  • Bu, yükleme işlemi ve çekme / yükleme bağımlılıkları boyunca çalışır.

Bu işlem tamamlandıktan sonra bunu yapın:

apt list --upgradable

  • Bu, hangi paketlerin yükseltilebileceğini tekrar gösterecektir. Paket listeniz şimdi azalıyor olmalıdır. apt list --upgradableHer paket kurulumundan sonra paket listesini takip edin ve yazın . Bu işlemin tamamlanması yalnızca birkaç dakika sürer.

En sonunda:

sudo apt-get autoclean

sudo apt-get update && sudo apt-get dist-upgrade

Bu çözüm sizin için işe yaradıysa, lütfen başkalarına doğru çözümün bulunabilmesi ve yanıtlar listesinin en üstünde yer almasını sağlayın.

Herhangi bir nedenle bu çözüm sizin için işe yaramazsa, lütfen aşağıdaki kullanıcı GAD3R'nin cevabına bakın. Aynı zamanda iyi bir çözümdür.

Teşekkürler.


1
Benim için paket ubuntu-minimal. Talimatlarınız mükemmel çalıştı.
DeanM

KDE Neon kullanıyorsanız bu çözümü kullanmayın.
Gregory Smitherman

11

Ne anlama geliyor?

The following packages have been kept back:

Cevap burada

Bu, bu paketlerin herhangi bir nedenle yüklenmeyecek yeni sürümleri olduğu anlamına gelir. Olası nedenler bozuk bağımlılıklar (bağlı olduğu bir paketin indirilebilecek bir sürümü yoktur) veya yeni bağımlılıklardır (paket son sürümden bu yana yeni paketlere bağımlı hale gelmiştir).

Harekete geçmeli miyim?

dist-upgradeYeni bağımlılıkları yüklemek ve paketleri yükseltmek için kullanmanız gerekir :

sudo apt-get dist-upgrade

Sorun, dist-upgradegerekmedikçe çalıştırılarak çözülebilir :

Bozuk bağımlılıkları düzeltme

sudo apt-get -f install 

Artık sisteminizde yüklü olmayan bazı paketleri kaldırın:

sudo apt-get autoclean

İstediğiniz paketi beklemeye alın:

echo "<package_name> hold" | dpkg --set-selections

Adlandırılmış paketi yeniden yapılandırın:

dpkg-reconfigure <package_name>

3

Gönderen bu Unix SE cevap :

Öncelikle yukarıda belirtildiği gibi lütfen herhangi bir üretim sistemini dist-yükseltmeyin! Dist-upgrade, geri tutulan paketleri "çözecek" olsa da, kesinlikle bu sorunun çözümü değildir ve sisteminizdeki etkilerini bilmeden çalıştırırsanız , büyük olasılıkla iyi olandan daha fazla kedere neden olacaktır .

Bir paketin yükseltilmesi ek paketlerin kurulmasını gerektiriyorsa, çalışırken "geri tutulur" sudo apt-get upgrade.

Yukarıda belirtildiği gibi, bu "tutulan" paketleri açıkça çalıştırarak manuel olarak yükleyebilirsiniz, sudo apt-get install [paste kept back packages here]ancak bu, bu paketleri "el ile yüklendi" olarak işaretler;

"Saklanan" paketleri manuel olarak yüklenen olarak işaretlemeden "saklanan" paketleri yükseltmek için gereken ek paketleri otomatik olarak yüklemek için çalıştırın sudo apt-get --with-new-pkgs upgrade.


Daha fazla bilgi --with-new-pkgsve diğer alternatiflerin yan etkileri burada .
Pablo A

2

Bu yanıtı bloguma ekledim. Eğer görmek istiyorsanız bu linkten oraya gidebilirsiniz .

Yukarıdaki hata ( apt-get upgrade) yükseltmeye çalıştığınızda Ubuntu terminalinde çok yaygındır . Bu genellikle yüklediğiniz bir paketin bağımlılıkları değiştiği için olur. Yükseltmek için önce bunları yükseltmeniz gerekir. Bu yüzden bunu çözmek çok basittir. Bu hata iletisinin altında kalan paketleri görebilirsiniz. örnek olarak listede aşağıdaki paketleri görebilirsiniz:

gnome-software gnome-software-common linux-generic linux-headers-generic linux-image-generic snapd ubuntu-core-launcher ubuntu-software

Sadece yazmakla kalmayıp sudo apt-get dist-upgradeBekleyen tüm güncellemeleri yüklediğinden çok tehlikelidir. Bu, çalışma ortamınızı son derece dengesiz bir duruma getirebilir.

Bu yüzden bence ünlü

sudo apt-get install [package]

[package]Hata mesajındaki herhangi bir paketle değiştirebilirsiniz . Ayrıca bunları bir liste olarak koyabilirsiniz (sadece kopyalayıp yapıştırın). Örneğimde örnek olarak girebilirim

sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic linux-image-generic snapd ubuntu-core-launcher ubuntu-software

Eğer yapmak istiyorsan

sudo apt-get dist-upgrade

herhangi bir nedenle, simüle seçeneğini -s( sudo apt-get -s dist-upgrade) kullanarak veya -skabul etmeden önce yürütmeyi sonlandırabileceğiniz seçenek olmadan paket listesini incelediğinizden emin olun . (her zaman hayır seçeneğini seçebilirsiniz)


2

Son zamanlarda bir Debian güvenlik güncelleştirmesi birkaç yeni bağımlılık getirdi. Bu durumda linux-imagepaket linux-firmware, diğerlerinin yanı sıra , talep etmeye başladı . Böylece geri tutuldular ve tarafından takılmadılar unattended-upgrade. Bazı test ve onaylamalardan sonra , bekleyen diğer güncellemelere dokunmadan yalnızca bu paketleri seçerek yükleyebildim :

apt-get -yy install $(apt-get -s upgrade | sed '1,/kept back/d;/will be upgraded/,$d')


1

Bu makale bunun neden olduğunu güzelce özetliyor:

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

Bunun çözümü, bunları açıkça

sudo apt install [packages]

Sadece bağımlılıkları karşılamak için değil, kendinizle ilgilenmediğiniz sürece, muhtemelen bu paketleri otomatik olarak yüklendi olarak işaretlemek istersiniz.

sudo apt-mark auto [packages]

Bunun ilk etapta olmasını önlemek için,

sudo apt --with-new-pkgs upgrade

gelecekte paketleri yükseltmek, bu da bağımlılıklardaki değişiklikleri karşılamak için yeni paketlerin yüklenmesini sağlar.


İki başparmak yukarıya için --with-new-pkgs! Ve bana sadece yine stres let " -dist yükseltme YAPMAYIN 'kesinlikle bu konuya çözüm değil tuttu geri paketleri çözmek ve dist-yükseltme olsa! Herhangi bir üretim sistemi' oldukça beğeneceksiniz iyi daha keder size neden eğer sisteminiz üzerindeki etkilerini bilmeden çalıştırın. "
xpt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.