“Apt-get” ve “yetenek” arasındaki gerçek fark nedir? (“Wajig” nasıl?)


256

Bunu ikimiz de biliyoruz apt-getve aptitudeDebian üzerinde komut satırı paket yönetim arayüzleri farklı seçeneklerle, Linux türevi vardır, ama yine de biraz karıştı. Kaputun altında, aynı APT sistemini kullanmıyorlar mı?

Debian neden bu paralel araçları koruyor? (Bonus soru: yeryüzündeki wajig nedir?)


Bunun sizin için doğru cevaplayıcı olmadığını biliyorum ama neden sinaptik deneyemiyorum? son derece kullanıcı kullanıcısıdır ve bağımlılıkları otomatik olarak indirir ve yükler. GNOME sisteminizde yok mu?
Hemant

Önyargılıyım, ancak Ubuntu SE sitesindeki bu sorunun alakalı olabileceğini düşünüyorum.
David Z


@Wim bu sorunun wajig kısmı nedeniyle etrafta başka bir yol yerine 244'ü bu soruya birleştirmeye karar verdim
xenoterracide 5:10

1
Bu yeteneğin, Ubuntu'nun bir sonraki sürümündeki varsayılan kurulumdan çıkarılması için seçili olduğuna dikkat çekiyor (her zaman daha sonra apt-get kullanarak yükleyebilseniz de)
Rob Cowell

Yanıtlar:


223

En belirgin fark, aptitudebir terminal menüsü arayüzü sağlamasıdır (bir terminaldeki Synaptic'e çok benzer) apt-get.

Her birinin sadece 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 el ile yüklendiğini ve hangilerinin bağımlılık olarak yüklendiğini izleyecektir (ve bu nedenle otomatik olarak kaldırılmaya uygundur). Aslında, daha yakın bir zamanda, iki aracın otomatik olarak el ile yüklü paketleri aynı veritabanını paylaşacak şekilde güncelleştirildiğine inanıyorum, bu yüzden apt-get ile bir şey yüklediğiniz hallerde ve sonra yetenek bir şey kaldırmak istiyor. geçmiş.

Birkaç küçük fark var:

  • yetenek uygun paketleri otomatik olarak kaldıracak, apt-get ise bunu yapmak için ayrı bir komut gerektiriyor
  • Yükseltme ve dağıtma yükseltme komutları , sırasıyla daha güvenli ve tam yükseltme olarak adlandırılan muhtemelen daha doğru adlara göre yeniden adlandırılmıştır .
  • yetenek aslında sadece apt-get değil, apt-cache ve apt-mark gibi bazı yardımcı araçların fonksiyonlarını da yerine getirir.
  • Yetenek, arama için biraz farklı bir sorgu sözdizimine sahiptir (apt-cache ile karşılaştırıldığında)
  • yetenek, hangi el ile yüklü paketlerin, almak isteyebileceğiniz bir eylemi önlediğini size söyleme nedenini ve neden edilmemesini emreder .
  • Almak istediğiniz eylemler (yükleme, kaldırma, güncelleştirme) çakışmalara neden olursa, yetenek birkaç olası çözüm önerisi verebilir. apt-get "Üzgünüm Dave, bunu yapmana izin veremem" diyecek.

Başka küçük farklılıklar var, ama bunlar düşünebildiğim en önemli şeyler.

Kısacası, yetenek daha düzgün bir şekilde Synaptic ve diğer üst düzey paket yöneticisi önyükleri olan kategoriye giriyor. Sadece apt-get komutuna benzeyen bir komut satırı arayüzüne de sahip olur.

Bonus Turu: Wajig nedir?

Apt-cache ve apt-mark gibi o "yardımcı" araçlardan nasıl bahsettiğimi hatırlıyor musunuz? Pekala, bir demet var ve eğer onları çok kullanırsanız, hangilerinin hangi komutları verdiğini hatırlamayabilirsiniz. Wajig bu sorunun bir çözümü. Esasen bir dağıtıcı, tüm bu araçların etrafına bir sarıcı. Ayrıca gerektiğinde sudo uygular. Derken wajig install foo, wajig "Tamam, diyor installtarafından sağlanır apt-getve yönetici ayrıcalıkları gerektirir," ve onu çalıştırır sudo apt-get install foo. Derken wajig search foo, wajig "Tamam, diyor searchtarafından sağlanır apt-cacheve yönetici ayrıcalıkları gerektirmez" ve çalıştırır apt-cache search foo. Apt-get, apt-mark, apt-cache ve diğerleri yerine wajig kullanırsanız, o zaman asla bu problemle karşılaşmazsınız:

$ apt-get search foo
E: Invalid operation search

Wajig'in sahne arkasında ne yaptığını, belirli bir komutu uygulamak için hangi araçları kullandığını bilmek istiyorsanız, o --simulateve --teachingkipleri vardır.

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


Yetenekli olduğum en büyük sorun aptitude install linux-im, apt-get için çok hızlı olmasına rağmen, paket adlarında sekme tamamlamanın uzun zaman alması. Apt-get ailesinde yetenek için eksik olan bir miktar önbelleklenme varmış gibi görünüyor.
levesque

12
aptitudeAyrıca, çok güçlü arama kalıplarıylaaptitude search kullanabileceğiniz harika . Sende var . Ayrıca, ncurses (terminal menüsü) arabirimini kısmi yükseltme, bir paketi kaldırma, bir tane daha dondurma, bir tane yükseltme , daha sonra tek bir işlemle yürütme gibi karmaşık paket işlemlerini hazırlamak için kullanabilirsiniz. etkileşimli çatışma çözücüsü . aptitude reinstall
Totor,

3
@Toto kutsal inek, komutları hazırlamak için yetenek ncurses arayüzünü kullanarak sadece bana bir kez ve herkes için yetenek sattı! (yıllarca süren düşünme yeteneğine rağmen, yapmaya değer, ancak kas belleğinden apt-get yazarak)
TJ Ellis

2
... aptitudeayrıca aptitude download package-namepaketin .deb dosyasını alması gerekiyor!
Totor

2
İçinde olmayan aptitudefakat içinde apt-getolan ve bulduğum tek şey bu apt-get --compile source package-name. apt-get build-dep package-namevar ama bence aptitude build-dep package-namedaha iyi bir iş çıkar.
Anders,

71

Sık sık kendimi merak ederdim. Wikipedia , ana ayırt edici özelliğin, yeteneklerin tam ekran bir metin modu (küfürler) arayüzüne sahip olduğunu vurgulamaktadır . Çoğu apt-getkomut argümanını aptitudekendisiyle birlikte kullanabilmeniz gerçeği, apt-getkullanıcıların hareket etmelerini kolaylaştıracak aptitudeve bunun tam tersi bir tasarım kararıdır .

Hiç kullanmadım wajig, ancak belgeler sadece bir debdosyayı (çalıştırıldığında dpkg) veya aptpaket adını ( apt-getyerine çalıştırıldığında ) geçirip geçirmediğinizi bilen bir komut dosyası olduğunu gösteriyor . Denemek ve bunun olup olmadığını görmek ister misiniz?

Tabii ki gerçek fark şudur:

gaurav@fern:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
gaurav@fern:~$ aptitude moo
There are no Easter Eggs in this program.

52
Hayır! aptitudedaha fazla var. Sonsuz -vbayrakları koymayı unuttun moo. ( -vvvvvv
Yukarı

12
Sahip olan apt-getama aptitudeolmayan tüm önemli Süper İnek Güçlerini unutma . ( --helpHer ikisini de deneyin )
derobert

lmao. @ ryan'ın cevabı çok daha karmaşık olmasına rağmen okumak için eğlenceli bir cevap;)
Michael Trouw

26

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

İşte aracın ve apt-get üzerinden özelliklerinin bir özeti: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

Yani benim tavsiyem sadece apt-get yetenek yüklemek için :)


2
Sürüm notları apt-get şimdi sıkmak yükseltmeleri için yetenek üzerine tavsiye edilir söylüyorlar.
jrdioko

1
Evet, ama sadece bunun için. Aksi halde, eşit kabul edilirler ancak aptitudearama ve tam ekran modu gibi daha gelişmiş özelliklere sahiptir apt-get.
Anders,

Nedense emacs yüklemek için yetenek kullanılmış ve bakmadan gdm kaldırıldı! Şimdilik apt-get kullanarak olacak ama yeteneklerini çok merak ediyorum.
TomFirth

20

aptitudehangi paketlerin açıkça talep edildiğini ve hangilerinin sadece bağımlılıklar nedeniyle kurulduğunu hatırlar. Artık gerekmediğinde açıkça talep edilmeyen paketleri otomatik olarak kaldırır.

apt-get açıkça talep edilen paketleri ve bağımlılıklarını aynı şekilde ele alır.

Bu yüzden daha iyi kullanım aptitude, bu sisteminizi temiz tutmanıza yardımcı olur.


4
Bu doğruydu, fakat apt-get'imin apt-get autoremoveyalnızca bağımlılıklar olarak kurulan paketleri kaldırmak için bir komutu olduğunu biliyorum . Bu özelliğin ne zaman eklendiğini bilmiyorum, ancak bir web sitesi bunun Debian Lenny ile olabileceğini gösteriyor (Haziran 2010).
Gaurav

8
apt-get autoremoveyalnızca bağımlılıklar olarak kurulan paketleri silmez, ince bir fark olan artık bağımlılıkları siler; Bir 'yaprak' paketinin kasıtlı mı yoksa bağımlılık olarak mı kurulduğunu söyleyemez, bu yüzden onu terk eder, nerede yeteneklerini bilir ve çıkarır.
pjz

Satıldım! Başka güzel şeyler var aptitudeama bu katil bir özellik.
iconoclast

12

apt-getçeşitli yardımcı araçların yanı sıra, ilgili komut satırı çağrılarından önemli ölçüde daha az bellek kullanır aptitudeve biraz daha hızlıdır. 32 MB ram ile büyümüş bir eski pentium thinkpad'deki debian kurulumunu yükseltmeyi deneyene kadar, bundan habersizce habersizdim. apt-getBaşarılı bir şekilde tamamlanan bir takas-thrashing bir veya iki saat sürecek ; aptitudedaha uzun bir süre düşündüğümden sonra başarısız olur.

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


9

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

siddhartha@siddhartha-dev:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

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

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

ve bunun gibi.



7

Belirtildiği gibi http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitudekomut satırı arayüzünü kullanmak çok daha kolay.

Kaputun altında, aynı APT sistemini kullanmıyorlar mı? Evet.

Temel sistem sadece değil apt, aynı zamanda dpkg. Bu sistem RPM kadar aptaldır, sadece tekli paketlerin kurulum ve yönetimini yapabilir. Hangi dosyaların hangi pakete ait olduğunu izler.

aptDepoların indirilmesi, bağımlılıkların izlenmesi ve benzeri tüm paketler için - sonra bunları kullanarak yükler dpkg. aptitudeAynı şeyi farklı bir arayüzle yapar.


6

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

Serverfault.com adresindeki cevabımı gör .

Debian yekpare bir varlık değil, farklı görüşlere sahip insanlar var ve yetenek sahibi apt-get'in bazı eksiklikleri olduğunu ve yetenekleriyle daha iyi bir şeyler inşa etmek istediğine karar verdi. O, karmaşık yükseltme senaryoları için çözümler bulmak için mantık geliştirilmiş konsolu için bir GUI eklendi vs. Ve daha fazlası var sadece apt-get ve yetenek, benim makalesine bakın , apt-get yeteneğe, ... sizin için doğru paket yöneticisini seçmek .


6

Bunun hala geçerli olup olmadığından emin değilim, ancak kanama kenarı Debian geliştiricisi Joey Hess, her zaman apt-get yeteneklerini savunuyordu. Elbette yazılım geliştikçe değişecek şeyler de var. Apt-get şimdi bağımlılıkları eskisinden daha iyi ele alıyor. Gönderen http://lists.debian.org/debian-user/2004/04/msg03138.html

Tarih: Salı, 20 Nis 2004 22:27:12 -0400 Gönderen: Joey Hess

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

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

    'Yetenek güncelleme' veya 'yetenek yükseltme' veya 'yetenek yükleme' çalıştırırsanız, birkaç geliştirme ile aynen apt-get gibi görünür ve çalışır. Yani hiçbir öğrenme eğrisi yok.

    (Seçkin bir kullanıcıysanız, öğrenme eğrisi kesinlikle sorunlarınızdan biri değildir.)

  2. yetenek otomatik olarak yüklenen paketleri izler

    Kullanılmayan kitaplıkları budama konusunda endişelenmeyi bırakın ve sisteminizden destek paketleri. Her şeyi kurmak için bir yetenek kullanıyorsanız, hangi paketlerin yalnızca bağımlılıklar tarafından ne çektiğini izler ve artık gerekmediğinde bu paketleri kaldırır.

  3. yetenek sanely kolları önerir

    Apt-get 'in uzun zamandır devam eden bir başarısızlığı, Önerilenler ilişkisine destek vermemesi olmuştur. Bu bir sorun çünkü Debian'daki pek çok paket, ortalama bir kullanıcının genellikle paketle birlikte kullandığı yazılımı çekmek için Önerilere güveniyor. Bu sık rastlanan bir sorun değil, apt-get yakın zamanda önerilen paketleri belirtebilse de uyarılarını kaçırmak kolaydır.

    Yetenek, varsayılan olarak Önerileri destekler ve Önerileri de desteklemek için yapılandırılabilir. Komut satırı modunda kullanıldığında önerilen paketlerin yüklenmesini bile destekler.

  4. yeteneklerinizi normal bir kullanıcı olarak kullanın ve sisteminizi bağlamaktan kaçının

    Belki gui modunda yetenekli bir kullanıcı olarak çalışabileceğ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. (Yetenek, 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, hangi noktada sizi kök şifreniz için ister.

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

    Yetkinliğin kategorik tarayıcısı ile kötülük stilinin filtreleme ve isim, açıklama, sürdürücü, bağımlılıklar vb. İle aranması konusundaki mükemmel desteği arasında, yetenek kullanmadan önce paketleri daha önce bulabilmelisiniz.

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

    Eğer Debian bir paket dağıtmayı durdurursa, apt sisteminizde süresiz olarak, uyarılar olmadan ve yükseltme yapmadan bırakacaktır. Yetenek, bu tür paketleri "Eski ve Yerel Olarak Oluşturulan Paketler" bölümünde listeler, böylece sorundan haberdar olabilir ve bu konuda bir şeyler yapabilirsiniz.

  7. yetenek Debian görev sistemine bir arayüz var

    Yetenek, Debian'ın görev sistemini, kullanılmak üzere tasarlandığı gibi kullanmanızı sağlar. Kullanılabilir görevlere göz atabilir, yüklemek için bir görev seçebilir ve ardından onun içine girebilir ve görevin istemediğiniz kısımlarını seçebilirsiniz. apt-get'in görevler için desteği yoktur ve yetenek, görevler gibi özel amaçlı araçlardan bile iyidir.

  8. yetenek çoklu kaynakları destekliyor

    Resources.list'iniz paketin birden fazla versiyonunu hazırlayacak şekilde yapılandırılmışsa, yetenek mevcut versiyonları görmek için detaylandırmanıza ve kurmak için varsayılan olmayan bir versiyon seçmenize izin verir. Bir paket dengesiz bir şekilde kırılırsa, test sırasında sürüme geri döndürmeniz yeterlidir.

  9. yetenek eylemlerini günlüğe kaydeder.

    Yetenek paketi yükler, yükler, yükseltir ve / varlog / yetenek'e kaldırır; bu, dünkü yükseltmeden sonra veya partiticlar paketini çıkardığınızda işlerin neden kırılmaya başladığını bulmak için faydalı olabilir.

- utangaç jo bakın

==================== Ayrıca burada 2010'dan yeni bir tartışma var https://superuser.com/questions/93437/aptitude-vs-apt-get-which- StackExchange'te kullanılması önerilen-aka-the-doğru-aracıdır .

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.