Apt-get ve yetenek arasındaki fark nedir?


56

Yazılımı kurmak için neden minimum kurulumda iki farklı program olduğunu anlamıyorum. Aynı şeyi yapmıyorlar mı? Büyük bir fark var mı? Apt-get üzerinde yetenek kullanmak için her yerde okudum ama farkı hala bilmiyorum

Yanıtlar:


48

yetenek, apt-get / apt-cache gibi dpkg için bir sarmalayıcıdır, ancak arama / yükleme / kaldırma / sorgulama için tek duraklık bir araçtır. Uygun olmayan birkaç örnek:

$ aptitude why libc6
i   w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.

$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-perl (< 1.15-2), 
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs 
 on the system. This package includes shared versions of the standard 
 C library and the standard math library, as well as many others.

10
Bahsetmiyorum: $ yetenek changelog bash
pgs

En yenisinin aptitudebile aptyapamayacağını bilen diğer numaralar : yüklü isimleri veya açıklamaları olan aptitude search '~i linux'paketleri arar linux; aptitude search '~o'eski paketleri (artık herhangi bir depo tarafından sağlanmayan kurulu paketleri) listeler; aptitude search '!~M ~i'otomatik olarak kurulmuş olarak işaretlenmemiş paketleri gösterir; aptitude search '~i lib.*-dev'yüklü geliştirme kitaplıklarını gösterir ve bu paketleri otomatik olarak veya el ile yüklü olarak işaretlemek searchiçin markautoveya ile değiştirebilirsiniz unmarkauto.
Mikko Rantalainen

44
mikeage@linode ~$ aptitude -h | tail -n 1
              This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
                   This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
    There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.

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

19

Şu anda Debian kurulum içinde kullanıldığında resmi aracı sürüm notlarında ve tavsiye edilen bir aptitude.

Yetenek, bir curses arayüzü (herhangi bir parametre olmadan çalıştırıldığında) ve bunu yapan apt-cache/ apt-getyaptığı her şeyi yapabilen bir komut satırı arayüzü sunar . Ayrıca, birden çok çözüm arasında gezinmenizi sağlayan daha iyi bir bağımlılık çözümleyicisine sahiptir. Komut satırı sürümünü kullanırken bile, önerilen çözümle etkileşime girebilir ve ek siparişler veya ipuçları verebilirsiniz (bir başkası tarafından önerilen bir paketi kurmak veya çıkarmak gibi).

Ancak yetenek, libapt kütüphanesine dayanır (dpkg'ın doğrudan sargısı değildir) ve bu nedenle aptpakete bağlı olduğundan apt-get olmadan da yüklenemezsiniz (apt paketinde de vardır).

$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get

Apt / dpkg / yetenek ile nasıl etkileşime geçtiği hakkında daha fazla bilgi edinmek için Daniel Burrows'un (yeteneğin ana yazarı) yaptığı diyagramı kontrol edebilirsiniz . Başka bir şema, çeşitli paket yönetim araçları tarafından depolanan bilgileri sunar: apt ve dpkg durum dosyalarının bir haritası .

Ayrıca makalemi okuyabilirim apt-get, yetenek,… sizin için doğru paket yöneticisini seçin


7

aptitudebağımlılıkları karşılamak için hangi paketleri kasten kurduğunuzu ve hangilerinin otomatik olarak kurulduğunu hatırlar. Bir paket özelliğinin kaldırılması üzerine sisteminizi düzenli tutmak için otomatik olarak kurulan paketleri kaldıracaksınız. apt-geto kadar akıllı değil.

aptitudeBir paketin farklı sürümleriyle farklı depolar kullandığınızda hızlıca vazgeçilmez bir araç olacaktır. Çalıştığınız düşünün backports.org gibi veya gayri resmi depoları debian-multimedia.org . Ardından aptitudemevcut sürüm numarasını (belirli bir paketin ayrıntılar sayfasının altında) gösterecek ve bir tane seçmenize izin verecektir.

Resmi olmayan depoların kullanımı nedeniyle programların çakıştığı bir duruma girerseniz , üstte bir "Kırık: ..." görüntü göreceksiniz . L ~ b (limit / flag / broken) yazabilir ve birbiriyle çakışan paketlerin bir listesini alabilirsiniz. Çatışmayı manuel olarak çözmeyi çok daha kolaylaştırır.

Ayrıca lpaket listesini sınırlamak için " " kullanabilirsiniz . " Openoffice " ile başlayan ve ardından " l" tuşuna basıp " ^openoffice" (normal bir ifadedir) yazdığınızı ve sadece bu paketleri göreceğinizi hayal edin . Menüden bir "düz paket listesi" seçin ve hedefinize hızlıca ulaşacaksınız.

El kitabının tamamı çok geniştir ve size daha fazla filtre ve olasılık sunar. Bunları bilmiyorsanız bile aptitude, bunun için kullanışlı bir alternatiftir apt-getve aşağıdaki gibi ortak parametrelerle kullanabilirsiniz:

aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)

2
Aslında, Lenny'den itibaren apt-get ayrıca sadece açıkça istediğiniz bir şeyin bağımlılıkları olarak kurulan paketleri de izler. Kendimi yetenek kullanıyorum, ancak apt-get autoremoveşimdi kaldırılmış olan bir paketin bağımlılıkları olarak kurulan paketleri kaldırıyorum.
Telemachus

Günümüzde de sadece kullanabilirsiniz aptve bu kullanılan apt-getve yapılan şeylerin bir karışımını apt-cacheyapabilirsiniz. Örneğin, ad veya açıklama apt search fooiçeren paketleri listeler foo. Varsa apt install foodenilen paketi kuracak foove apt policy fooşu anda kurulu olan versiyon ile paketin mevcut tüm versiyonlarını listeleyecektir foo.
Mikko Rantalainen

aptitudeHala daha fazlasını yapabilir aptama düz aptçok daha hızlı sıklığıdır.
Mikko Rantalainen

5

aptitudeArgüman olmadan çalıştırdığınızda güzel bir konsol kullanıcı arayüzü sağlamanın yanı sıra , çeşitli apt-*komutları (ve dselect) tek bir yardımcı programda birleştirir.

Bir paketi aramak ve apt-get kullanarak yüklemek için:

apt-cache search somepkg
apt-get install somepkg

.. ama yetenek ile aynı komut:

aptitude search somepkg
aptitude install somepkg

aptitudebazı ek özelliklere sahipler aptitude changelog somepkg(paketlerin yükseltilmesini durdurmak için) ve benzeri paketleri tutma gibi şeyler var - diğer komutlar / yöntemlerle elde edemediğiniz hiçbir şey yok, kullanımı daha da birleştirildi.


3
Çok kötü bir "apt-cache policy" eşdeğeri yok.
hayalci

4

Bir paketi kurduğunuzda bildiğiniz gibi, diğer paketlere (bağımlılıklar) ihtiyaç duyuyorsa, bunlar da indirilecek ve yüklenecektir. Yetenek izleri, kurulum anında, yüklü olanla birlikte gelen paketler, böylece sonraki yeterliliği kaldırdığınızda sizden diğer (şimdi kullanılmayan) "artık" bağımlılıkların kaldırılmasını isteyeceksiniz. "main" paketini çıkarırsanız apt-get sisteminizi sessizce saklar.

apt-get'nin son sürümleri benzer bir işleve sahiptir: http://www.psychocats.net/ubuntu/aptitude


aptitudeveya aptaslında verilen herhangi bir pakete bağımlılık olarak kurulan paketlerin listesini tutmaz. Bir paketin manuel veya otomatik olarak yüklenip yüklenmediğini kolayca izler. Bir paket olarak otomatik olarak yüklenir işaretlenen ancak başka paket bağlıdır veya Recommends olmuştur Ve eğer birlikte kaldırılır apt autoremoveveya aptitude dist-upgrade.
Mikko Rantalainen

3

En büyük fark, yeteneğin uygun araçların komut dosyası çalışması için daha uygun olduğu yerlerde etkileşimli olacak şekilde tasarlanmış olmasıdır. İkincisi, yani apt araçlarını, yeteneklerin sağladığı aynı sonuçları elde etmek için çok daha fazla çaba harcayarak etkileşimli olarak kullanabilirsiniz. Herhangi bir sebepten dolayı bir araç veya diğer araç üzerinde durmanız gerekiyorsa, paket yönetiminize ne kadar çaba sarf etmek istediğinize karar vermeniz gerekir.


1

Yeteneğin ciddi avantajlarından biri, bağımlılıkları hesaplama kabiliyetidir. Birincisi, çoğu zaman apt-get işlevinin başarısız olduğu, müdahaleniz olmadan, karmaşık bağımlılıklarla başa çıkabilir. Ancak, size sunduğu çözümü sevmiyorsanız (ve bunun ne kadar iyi olduğunu düşündüğünü göstermek için kendi çözümünü puanlar), anlaşmazlığı gidermek için başka bir çözüm bulmasını isteyebilirsiniz.

Gerçekten bazı harika paket yönetimi yapar.


1

En büyük fark şudur: herhangi bir parametre olmadan "yetenek" yazın.

Size Metin tabanlı bir kullanıcı arayüzü sunar, arabuluculuk yapmak, gezinmek, vb. İşlemleri yapmak için klavye kullanabilirsiniz. Bağımlılıklar, ters bağımlılıklar, bir paketin mevcut tüm sürümleri hakkında bilgi ve bu ekranda bunlardan herhangi bir paket yöneticisi işlemi yapabilirsiniz.

Değişiklikleri incelemek, gerekirse paket ekleme ve kaldırma işlemlerini değiştirmek ve bekleyen tüm işlemleri uygulamak için "g" tuşuna basabilirsiniz.

Bir ssh bağlantısı veya düz eski terminal üzerinden paket yönetiminin harika bir görsel yolu.

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.