Neden apt-get dist-upgrade yerine apt-get upgrade kullanmalıyım?


302

Genellikle apt-get update && apt-get upgradeGUI yerine güncellemeleri ve yükseltmeleri çalıştırmak için kullanıyorum , çünkü daha hızlı çalışıyor gibi görünüyor.

Ancak, son zamanlarda fark ettim ki, yükseltmelerimden birinin geri alındığına dair bir mesaj alıyorum. Daha sonra genellikle çalıştırmak dist-upgradeiçin çalıştırın ve iyi çalışıyor. Bu soruyu ve cevaplarını okuduktan sonra söyleyebileceğim kadarıyla dist-upgrade, aynı şeyleri ve sonra bazılarını da yapıyor.

Öyleyse sorum şu: Neden kullanıyorsun apt-get upgrade? Neden apt-get dist-upgradeher zaman kullanmıyorsun ? Neden var apt-get upgradebile?


1
Daha yeni Ubuntu sürümlerinde, sudo apt full-upgradebenzer şeyler yapar.
Aaron Franke

Yanıtlar:


410

Makinelerimi genellikle şu sürümlerle yükseltirim:

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

Aşağıda bir alıntıdır man apt-get. Yükseltmenin kullanılması kurallara uymaya devam eder: hiçbir koşulda şu anda yüklü paketler kaldırılmaz veya henüz yüklenmemiş paketler alınır ve kurulur. Bu senin için önemliyse, kullan apt-get upgrade. İşlerin sadece işe yaramasını istiyorsanız, muhtemelen apt-get dist-upgradebağımlılıkların çözülmesini sağlamak istersiniz .

Dağıtma yerine neden yükseltme yapmak istediğinizi genişletmek için , bir sistem yöneticisiyseniz, öngörülebilirliğe ihtiyacınız vardır. Sisteminizi kontrol etmek için çeşitli otomasyonlar uygulayarak, mevcut tüm paketleri hevesle yükseltmek yerine mevcut yükseltmeleri yapmak için bir dizi PPA koleksiyonu (belki de şirket içi bir PPA'nız olabilir) uygun sabitleme veya çekme gibi gelişmiş özellikleri kullanıyor olabilirsiniz . Apt'nin yazılmayan bir davranış sergilediği durumlarda, özellikle de bir üretim servisinin aksama süresine yol açtığında, çok sinirli olursunuz.

upgrade
    upgrade is used to install the newest versions of all packages
    currently installed on the system from the sources enumerated in
    /etc/apt/sources.list. Packages currently installed with new
    versions available are retrieved and upgraded; under no
    circumstances are currently installed packages removed, or packages
    not already installed retrieved and installed. New versions of
    currently installed packages that cannot be upgraded without
    changing the install status of another package will be left at
    their current version. An update must be performed first so that
    apt-get knows that new versions of packages are available.

dist-upgrade
    dist-upgrade in addition to performing the function of upgrade,
    also intelligently handles changing dependencies with new versions
    of packages; apt-get has a "smart" conflict resolution system, and
    it will attempt to upgrade the most important packages at the
    expense of less important ones if necessary. So, dist-upgrade
    command may remove some packages. The /etc/apt/sources.list file
    contains a list of locations from which to retrieve desired package
    files. See also apt_preferences(5) for a mechanism for overriding
    the general settings for individual packages.

44
Sadece ikisi arasındaki farkları özetlediğiniz için değil, aynı zamanda birinin diğerinden daha iyi olabileceği durumları açıkladığınız için teşekkür ederiz. Bu tam olarak aradığım şeydi.
jimchristie

10
dist-upgradedaha kötü şeyler kırmak daha muhtemeldir upgrade. upgradesisteminizin eksiksiz kalmasını sağlar.
Braiam

5
dis-yükseltme, yol silindiri yaklaşımını kullanmakta rahat ederseniz (yani kutuda çalışan kritik bir üretim yazılımınız yoksa)
Henno

1
'Apt-get upgrade' hakkında, şu anda yüklü olan hiçbir paket kaldırılmamış veya yenisinin eklenmemiş olduğu gerçeğine atıfta bulunan küçük bir soru: mevcut paketler de buna göre yükseltiliyor. Örneğin oldA, oldB'ye bağlıdır. OldA ve oldB ikisi de yükseltilecek mi? NewA'nın oldB'ye ve newB'ye bağlı olmaması durumunda, yükseltme sırasında bu ikisine ne olur? hem yükseltilmemiş, hem de yükseltilmiş, bu da oldB kaybolduğundan newA'nın çalışmamasına neden olabilir
Kenny

2
timeBurada kullanmanın nedeni nedir ?
ItalyPaleAle

128

Bu sorunun cevaplandırıldığını ve bir yaşında olduğunu biliyorum, ancak bunun söylenmesi gerektiğini düşünüyorum. Ubuntu 14.04 ve üzeri (ve Debian Jessie ve daha sonra, Google'ın bu bulgu olanlar için) komutunu verir APT 1.0 kullanır aptyerine apt-getve apt-cachebazı işlemler için.

  • apt-get upgrade yüklü olanı değiştirmeyecek (yalnızca sürümlerde),
  • apt-get dist-upgrade yükseltmeyi tamamlamak için gereken paketleri kuracak veya kaldıracak,
  • apt upgrade paketleri otomatik olarak kurar ancak kaldırmaz.
  • apt full-upgradeaynı işlevi yerine getirir apt-get dist-upgrade.

@muru Düzenleme ve tam yükseltme ile ilgili not için teşekkürler. Öncelikle Debian 7'yi kullanıyorum (APT 1.0 öncesi) ve sadece Debian Jessie ve Ubuntu 14.04 ile oynadım.
Stephen Angelico

rica ederim. jessieDüzenli olarak kullanan ve 14.04'ü düzenli olarak kullanan biri olarak ilk önce cevabınızdan bu yeni yardımcı programı öğrendim!
muru

Açıklamanız için bir kaynağınız var apt upgrademı? Bulabileceğim her şey apt upgradeaynı olduğunu gösteriyor apt-get upgrade. Örneğin, apt help upgradesistemimdeki çıktılar:"apt upgrade" is equivalent to "sudo apt-get upgrade"
Jon Bentley

1
İlgili adam, başlangıçta söylediklerimi arar aptve apt-getbelirtir.
Stephen Angelico

1
apt safe-upgradesistemimde geçerli bir işlem değil. Yani aptitude safe-upgrade, tam olarak değil. apt-get upgradepaketleri yükleme asla oysa apt upgradeve aptitude safe-upgradebağımlılıkları bunu talep gibi yeni paketler kuracaktır. Yani aptitude safe-upgradeeşdeğerdir apt upgradedeğil apt-get upgrade.
Stephen Angelico

7

Bu upgradeseçenek yalnızca sistemde kurulu olan paketlerin yeni sürümünü yükler (ve evet, çekirdek güncellemeleri kendilerine aittir).

Bununla birlikte, bazen güncellemeler bağımlılıkları değiştirebilir: örneğin, bir paketin yeni bir sürümü artık yüklediğiniz bir kitaplığa bağlı olmayacak veya ek kitaplıkların yüklenmesini gerektirecektir. upgradeSeçenek, artık aslında ihtiyaç yüklü paketleri kaldırmak asla.

Ancak, dist-upgradeseçenek bağımlılık sistemindeki değişiklikleri "akıllıca" yapabilir. Bu, artık gerekli olmayan paketlerin kaldırılmasını veya bağımlılıklardaki değişiklikler nedeniyle ortaya çıkan paketler arasındaki uyuşmazlıkların çözümlenmesini içerir.


5
Bu doğru olsa da, soruyu cevapladığını sanmıyorum. Bağımlılık değişikliklerini kaldırabilecek ve dağınıklığı kaldırabilecek bir "akıllı" seçeneğimiz varsa, neden her zaman kullanmıyorsunuz?
ændrük

1
upgradeAyrıca asla eklemek yeni paketler haline bağımlılıklar olarak gerekli. Kimden man apt-get: "şu anda hiçbir koşulda yüklü paketler kaldırılmamış veya henüz kurulmamış paketler alınmamış ve kurulmamış" @ ændrük Sırf "akıllı" bir şey olması, kullanıcının istediği şeyi yapacağı anlamına gelmez (hatta makul bir şey) . Ne zaman bir sistem güncellemesi bir paketi kaldırırsa , Y'ye basmadan önce ne yaptığını görmek iyidir.
Eliah Kagan

2

Kullanıcılar, diğer (açıkça kurulmuş) paketlerin bunlara bağımlılığı nedeniyle dolaylı olarak kurulmuş paketlere güvenmiş olabilir. Bu nedenle paketleme sistemi, bir kullanıcının / yöneticinin, aksi halde yükseltme yoluyla kaldırılabilecek belirli işlevleri sürdürme arzusunun farkında olamaz.


-4

Win-Home Kullanıcıları için her zaman "yükseltme yükseltme" sorunu olmamalı, ancak karmaşık sistemler kullanıyorsanız, çalışan bir sistemi "hiçbir zaman (gerçekten) değiştirmeyin" ... "olsa bile" sorun olmaz , orada "problar" olabilirdi - seni ne keser! 2. kararı doğru bilen siz olmalısınız ;-)


3
Should not be a problem for Win-Home Users to always "dist-upgrade"..Neden ?
heemayl

1
Pekala, diyelim ki bir ubuntu-server, verimli bir ortam için bir iş istasyonu kurdunuz: her zaman ve otomatik olarak bir yükseltme yapıyorsanız, sorun çözdüğünüz zaman muhtemelen kontrol edemezsiniz - doğru zamanda çözecek zamanınız olmasa bile o an otomatik bir dist yükseltme yapılır. Bazı yapılandırmaların bağlantı noktasına "insan" dokunması gerekebilir. Birkaç kez sınırlandırdığım şey buydu. Sadece Win-Home gibi "Ev" platformlarında çalıştığınızda, varsayılan olarak kullanıcı güncellemeleri kontrol etmeyi etkinleştirmez. Yani bu sizi rahatsız etmeyebilir.
Thorben Kaufmann
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.