it-swarm-tr.com

"Apt-get" ve "aptitude" arasındaki gerçek fark nedir? ("Wajig" nasıl olur?)

Biliyorum her ikisi de apt-get ve aptitude, Debian türevli Linux'ta farklı seçeneklerle komut satırı paketi yönetim arabirimleridir, ancak yine de biraz kafam karıştı. Davlumbazın altında aynı APT sistemi değil mi?

Debian neden bu paralel araçları sürdürüyor? (Bonus soru: dünyada ne var wajig ?)

259
Kevin Cantu

En belirgin fark aptitude'ın bir terminal menü arayüzü (bir terminaldeki Synaptic gibi) sunması, apt-get değil.

Her birinin yalnızca komut satırı arayüzleri göz önüne alındığında, oldukça benzerler ve çoğunlukla hangisini kullandığınız önemli değil. Her ikisinin de son sürümleri, hangi paketlerin manuel olarak yüklendiğini ve hangilerinin bağımlılık olarak yüklendiğini izler (ve bu nedenle otomatik kaldırma için uygundur). Aslında, daha yakın zamanda, iki aracın aslında manuel olarak otomatik olarak yüklenen paketlerle aynı veritabanını paylaşacak şekilde güncellendiğine inanıyorum, bu yüzden apt-get ile bir şey yüklediğiniz ve sonra yeteneklerin kaldırmak istediği çoğunlukla çoğunlukla bir şey geçmiş.

Birkaç küçük fark vardır:

  • aptitude uygun paketleri otomatik olarak kaldırır, oysa apt-get bunun için ayrı bir komut gerektirir
  • yükseltme vs. dist-yükseltme komutları, muhtemelen daha doğru adlara uygun olarak yeniden adlandırıldı güvenli yükseltme ve tam -upgrade, sırasıyla.
  • yetenek aslında sadece apt-get işlevlerini değil, aynı zamanda apt-cache ve apt-mark gibi yardımcı araçlarının işlevlerini de yerine getirir.
  • aptitude'un arama için biraz farklı bir sorgu sözdizimi vardır (apt-cache ile karşılaştırıldığında)
  • aptitude, hangi elle yüklendi paketlerinin yapmak isteyebileceğiniz bir eylemi engellediğini söylemek için why ve why-not komutlarına sahiptir.
  • Yapmak istediğiniz eylemler (paketleri kurma, kaldırma, güncelleme) çatışmalara neden oluyorsa, yetenek birkaç olası çözüm önerebilir. apt-get sadece "Üzgünüm Dave, bunu yapmana izin veremem" diyecektir.

Başka küçük farklılıklar var, ama bunlar aklıma gelen en önemli farklar.

Kısacası, yetenek daha düzgün Synaptic ve diğer üst düzey paket yöneticisi ön uçlarıyla kategoriye girer. Sadece apt-get'e benzeyen bir komut satırı arayüzüne sahip olur.

Bonus Turu: Wajig nedir?

Apt-cache ve apt-mark gibi "yardımcı" araçlardan nasıl bahsettiğimi hatırlıyor musunuz? Bir sürü var ve onları çok kullanırsanız, hangilerinin hangi komutları sağladığını hatırlamayabilirsiniz. wajig bu soruna bir çözümdür. Aslında tüm bu aletlerin etrafında bir sevk memuru, bir sargıdır. Gerektiğinde Sudo da uygulanır. Dediğinde wajig install foo, wajig "Tamam, install, apt-get ve yönetici ayrıcalıkları gerektirir "ifadesini kullanır ve Sudo apt-get install foo. Dediğinde wajig search foo, wajig "Tamam, search, apt-cache ve yönetici ayrıcalıkları gerektirmez "olarak çalışır ve apt-cache search foo. Apt-get, apt-mark, apt-cache ve diğerleri yerine wajig kullanırsanız, bu sorunu asla yaşamayacaksınız:

$ apt-get search foo
E: Invalid operation search

Sahnelerin arkasında wajigin ne yaptığını bilmek istiyorsanız, belirli bir komutu uygulamak için hangi araçları kullanıyorsa, --simulate ve --teaching modları.

Sık kullandığım iki wajig komutu wajig listfiles foo ve wajig whichpkg /usr/bin/foo.

225
Ryan C. Thompson

Sık sık kendimi merak ettim. Wikipedia vurguları ana ayırt edici özelliği yetenek tam ekran metin modu (lanetler) arayüzü olmasıdır. aptitude ile birlikte çoğu apt-get Komut argümanını kullanabilmeniz, apt-get Kullanıcılarının aptitude ve tersine.

Daha önce wajig kullanmadım, ancak belgeler bunun bir deb dosyası (dpkg çalıştırdığında) veya bir apt paket adı (bunun yerine apt-get çalıştırıldığında). Denemek ve ne olduğunu görmek ister misiniz?

Tabii ki, gerçek farkı:

[email protected]:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
[email protected]:~$ aptitude moo
There are no Easter Eggs in this program.
71
Gaurav

yetenek, Debian'da hem paket kurulumları hem de paket veya sistem yükseltmeleri için konsoldan paket yönetimi için tercih edilen bir programdır.

İşte araca ve apt-get üzerinden sahip olduğu özelliklere genel bakış: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

Yani, benim tavsiyem sadece uygun yetenekleri yüklemek :)

26
dsp

aptitude hangi paketlerin açıkça talep edildiğini ve hangilerinin yalnızca bağımlılıklar nedeniyle kurulduğunu hatırlar. Artık ihtiyaç duyulmadığında açıkça istenmeyen paketleri otomatik olarak kaldırır.

apt-get açıkça istenen paketleri ve bağımlılıklarını aynı davranır.

Bu yüzden aptitude kullanmanız daha iyi olur, bu sisteminizin temiz kalmasına yardımcı olur.

20
starblue

apt-get Ve çeşitli tamamlayıcı araçlar, ilgili aptitude komut satırı çağrılarından çok daha az bellek kullanıyor ve biraz daha hızlı. 32MB RAM ile eski bir pentium thinkpad üzerinde debian kurulumunu yükseltmeye çalışıncaya kadar bunun farkında değildim. Başarıyla tamamlanan apt-get Adlı öğenin çalıştırılması bir veya iki saat süren takas atma işleminin geçmesini gerektiriyor; aptitude daha uzun bir süre düşündükten sonra başarısız olur.

Bu ayrım, modern bir masaüstü sistemine benzeyen herhangi bir şey için aşağı yukarı ilgisizdir.

12
intuited

@ Gaurav'ın cevabına dayanarak, iki paket yöneticisinin paskalya yumurtaları oldukça komik !:

[email protected]:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

[email protected]:~$ aptitude  moo
There are no Easter Eggs in this program.
[email protected]:~$ aptitude -v moo
There really are no Easter Eggs in this program.
[email protected]:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
[email protected]:~$ aptitude -vvv moo
Stop it!
[email protected]:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
[email protected]:~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
[email protected]:~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
[email protected]:~$ aptitude -vvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
[email protected]:~$ aptitude -vvvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.

ve bunun gibi.

9
Siddhartha
8
Riccardo Murri

Belirtildiği gibi http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude komut satırı arabirimini kullanmak için çok daha kolay.

Davlumbazın altında aynı APT sistemi değil mi?.

Temel sistem sadece apt değil, dpkg'dir. Bu sistem RPM kadar aptal, sadece tek paketlerin kurulumunu ve yönetimini idare edebilir. Hangi kurulu dosyaların hangi pakete ait olduğunu izler.

apt, daha sonra dpkg kullanarak yüklediği tüm ayrı paketler için depoların indirilmesini, bağımlılıkların izlenmesini vb. işler. aptitude aynı işlemi farklı bir arayüzle yapar.

7
vdboor

Bunun hala devam edip etmediğinden emin değilim ama kanayan Edge Debian geliştiricisi Joey Hess her zaman apt-get konusunda yetenekleri savunuyordu. Elbette yazılım geliştikçe değişecek şeyler. Apt-get artık bağımlılıkları eskisinden daha iyi işler. http://lists.debian.org/debian-user/2004/04/msg03138.html

Tarih: Sal, 20 Nis 2004 22:27:12 -0400 Kimden: Joey Hess

Apt-get veya dselect yerine yetenek kullanmanızın dokuz nedeni.

  1. yetenek sadece apt-get gibi görünebilir

    'Yetenek güncellemesi' veya 'yetenek yükseltmesi' veya 'yetenek yüklemesi' çalıştırırsanız, birkaç geliştirme ile apt-get gibi görünür ve çalışır. Yani öğrenme eğrisi yok.

    (Eğer doğru olmayan bir kullanıcıysanız, öğrenme eğrisi kesinlikle problemlerinizden biri değildir.)

  2. yetenek otomatik olarak kurulan paketleri izler

    Kullanılmayan kitaplıkları ve destek paketlerini sisteminizden budamak konusunda endişelenmeyi bırakın. Her şeyi yüklemek için yetenek kullanırsanız, yalnızca bağımlılıklarla hangi paketlerin çekildiğini izler ve artık gerekmediğinde bu paketleri kaldırır.

  3. yetenek saelyes kolları tavsiye

    Uzun zamandır apt-get başarısızlığı, Tavsiye ilişkisi için destek eksikliği olmuştur. Bu, Debian'daki birçok paketin güvendiği bir sorundur, ortalama bir kullanıcının genellikle paketle kullandığı yazılımı almayı önerir. Bu apt-get son zamanlarda en azından önerilen paketlerden bahsetmek mümkün olsa da, nadir görülen bir sorun nedeni değildir, uyarılarını kaçırmak kolaydır.

    Yetenek varsayılan olarak Önerileri destekler ve Önerileri de destekleyecek şekilde yapılandırılabilir. Komut satırı modunda kullanıldığında önerilen paketlerin yüklenmesini bile destekler.

  4. normal bir kullanıcı olarak yeteneklerinizi kullanın ve sisteminize zarar vermekten kaçının

    Belki normal kullanıcı olarak gui modunda yeteneklerini çalıştırabileceğini bilmiyordun. Denemek istediğiniz değişiklikleri yapın. Gerçek bir karmaşaya girerseniz, 'q' tuşuna basıp çıkabilirsiniz, değişiklikleriniz kaydedilmez. (Aptitude, değişiklikleri geri almak için ctrl-u kullanmanıza da izin verir.) Normal bir kullanıcı olarak çalıştığından, bir şey yapma yeteneğini söyleyene kadar sisteminizi hortumlayamazsınız; bu noktada kök parolanız için sizi uyarır.

  5. yetenek güçlü bir kullanıcı arayüzü ve arama yeteneklerine sahiptir

    Aptitude'un kategorik tarayıcısı ve paketlerin isim, açıklama, bakımcı, bağımlılıklar vb. Gibi mutt tarzı filtreleme ve arama için büyük desteği arasında, yetenekleri kullanmadan önce paketleri her zamankinden daha hızlı bulabilmeniz gerekir.

  6. yetenek eski yazılımı takip etmeyi kolaylaştırır

    Debian bir paket dağıtmayı durdurursa, apt, hiçbir uyarı ve yükseltme olmadan süresiz olarak sisteminizde bırakacaktır. Aptitude, bu tür paketleri "Eski ve Yerel Olarak Oluşturulmuş Paketler" bölümünde listeler, böylece sorun hakkında bilgi sahibi olabilir ve bu konuda bir şeyler yapabilirsiniz.

  7. yetenek Debian görev sistemi ile bir arayüze sahiptir

    Aptitude, Debian'ın görev sistemini kullanılacak şekilde tasarlamanızı sağlar. Kullanılabilir görevlere göz atabilir, yüklenecek bir görev seçebilir ve ardından içine kazabilir ve görevin istemediğiniz bölümlerinin seçimini kaldırabilirsiniz. apt-get'in görevler için desteği yoktur ve görevler, görev gibi özel amaçlı araçlardan bile daha iyidir.

  8. yetenek birden fazla kaynağı destekler

    Sources.list'iniz bir paketin birden çok sürümünü kullanılabilir kılacak şekilde yapılandırılmışsa, yetenek mevcut sürümleri görmek ve yüklemek için varsayılan olmayan bir sürüm seçmenizi sağlar. Bir paket kararsız hale gelirse, test sırasında sürüme geri almanız yeterlidir.

  9. yetenek eylemlerini kaydeder

    Aptitude günlükleri paketini yükler, yükseltir ve kaldırır/varlog/aptitude, bu da dünün yükseltmesinden sonra veya bir partiticlar paketini kaldırdığınızda neden parçalanmaya başladığını anlamak için yararlı olabilir.

- utangaç jo görün

=================== burada 2010'dan daha yeni bir tartışma var https://superuser.com/questions/93437/aptitude StackVchange üzerinde -vs-apt-get-hang-the-the-right-sağ-aracı- .

6
manselton

Hem apt-get hem de yetenek APT kütüphanesine güvenir, evet.

Bkz. serverfault.com adresinde cevap .

Debian monolitik bir varlık değildir, farklı görüşlere sahip insanlar vardır ve yetenek sürdürücü, apt-get'in bazı eksikliklere sahip olduğuna ve yetenekli bir şekilde daha iyi bir şey inşa etmek istediğine karar verdi. Karmaşık yükseltme senaryolarına yönelik çözümler bulmak için mantığı geliştirdi, konsol için bir GUI ekledi. Ve sadece uygun ve yetenekli olmaktan daha fazlası var, makaleme bakın apt-get, aptitude, ... doğru paketi seç yöneticisi sizin için .

6
Raphaël Hertzog