Dpkg ve yetenek / apt-get arasındaki fark nedir?


Yanıtlar:


168

Hayır, dpkgsadece bir paket yükler, bunu yaparken dpkg -i packageName.debsadece bu Deb paketini kuracak ve yüklü gereken tüm bağımlılıkları size bildirir, ancak olacak değil onları yüklemek ve bu edecektir değil yapılandırmak packageName.debiyi ... bağımlılıkları nedeniyle orada değil.

apt-getDebian tabanlı Linux dağıtımlarında Deb paketlerinin kurulumunu yapan bir Paket Yönetim Sistemidir . Paket Yönetim Sistemi, paketleri kolayca yüklemenize, kaldırmanıza ve değiştirmenize yardımcı olacak bir dizi araçtır. Yani akıllıca bir şey .apt-getdpkg

Zaman çizelgesini bu şekilde düşünmeyi severim (aşağıdaki sadece deneyimden bahseden benim. Size sadece bu şey hakkında bir fikir vermek içindir):

  • Kolayca kurulabilmesi için bir uygulamanın dosyalarını bir "pakette" saklamanın bir yolunu bulmuşlar. Böylece, Deb paketi ( .debuzatma dosyası ) doğdu.

    Bir .debdosya, bir uygulamanın çalışması için gereken dosyaları ve uygulamanın ihtiyaç duyduğu bağımlılıkların adları gibi diğer bilgileri içeren "meta-veri" yi (bununla birlikte adlandırmayı severim) içerir. Bir .debdosyanın içeriğini görmek istiyorsanız , komutu kullanabilirsiniz ve dpkg -c packageName.debbu "meta-veri" bilgisini dpkg -I pacakgeName.debgörmek istiyorsanız , komutu kullanın (ve sadece bağımlılıkları görmek istiyorsanız, yapın dpkg -I packageName.deb | grep Depends).

  • Bu .debdosyaları yüklemek için bir araca ihtiyaçları vardı , bu yüzden dpkgaraçla geldiler . Bununla birlikte, bu araç sadece .debdosyayı yükleyecektir ancak bağımlılıklarını yüklemeyecektir çünkü bu dosyalara sahip değildir ve bağımlılıkları çekmek için "depolara" erişimi yoktur.

  • Ardından, apt-getönceki noktadaki sorunları otomatikleştiren ortaya çıktılar . Kaputun altında apt-get, temelde dpkg(bunun apt-getbir ön uç olduğunu düşünmeyi severim dpkg), ama bağımlılıkları araştıracak ve yerleştirecek zekice. Hali hazırda kurulu olan bağımlılıklara bile bakar ve diğer paketler tarafından kullanılmayanları belirler ve bunları kaldırabileceğiniz konusunda sizi bilgilendirir.

aptitudesonra geldi. Bu kullanır kütüphaneler apt-getkullanır ve aslında bir interaktif UI (kullanıcı arayüzü) vardır. Bu kullanıcı arayüzünü görmek istiyorsanız, sadece aptitudeterminali yazmanız yeterlidir . Bu aptitude . Kütüphanelerden daha fazla seçenek ve avantaj sağlamak için yararlanır apt-get. Örneğin, aptitudeuygun paketleri otomatik olarak kaldırır, apt-getbunun için ayrı bir komut gerekir. Ancak, sonuçta, yapmak en azından aynı sudo aptitude install packageName.debolmalıdır . Burada ve orada bilmediğim ince farklılıklar olabilir, ancak ikisi de bağımlılıkları arayacaklar ve her şeyi yapacaklar. Ve arasındaki farklar hakkında daha fazla bilgi için cevabı buradan okuyabilirsiniz .sudo apt-get install packageName.debaptitudeapt-get

Ayrıca, aptitudeSüper İnek Güçleri yoktur.

EDIT: Görünüşe göre öyle. aptitude -v[v[v[v[v]]]] moo.

aptitudevarsayılan olarak yüklenmemiş olabilir. Yüklemek için şunu yapın sudo apt-get install aptitudeveya tıklayın: yetenekYetenek yükleyin .


Ekstra

Aşağıdaki bilgiler doğrudan doğrudan yanıt vermiyor: “ dpkg ve yetenek / apt-get arasındaki fark nedir? ” Ancak bu büyük resme katkıda bulunuyor.


Gönderen Carlos Campderrós ' aşağıda yorum :

gdebiapt-getve arasında bir çeşit karışım olan başka bir araçtır aptitude. Bir .debpaketi ( gdebi packageName.deb) kurmak için kullandığınızda apt-get, eksik bağımlılıkları belirler, bunları kullanarak kurar ve ardından paketi kullanarak kurarak yapılandırır dpkg. Hatta sahiptir bilgi verir basit ve düzgün GUI hakkında .debpaketin, dosyalar pakete dahil ve hangi bağımlılıkları yüklü olması gerekmektedir. Bu GUI'yi görmek için yaparsınız gdebi-gtk packageName.deb. Sen verebilir gdebiile yükleyerek denemek sudo apt-get install gdebiveya bu tıklatın: GdebiGdebi'yi kurun .


Kimsenin kafasını karıştırmak istemiyorum ama sadece resmin başka bir bölümünü vermek için RPM adında başka bir popüler Linux paket formatı var ve dosyalarının .rpmuzantısı var. Bu paket biçimi, RPM tabanlı Linux dağıtımlarında (örneğin, Red Hat, CentOS ve Fedora) kullanılır. rpmBir paketi kurmak için komutu kullanıyorlar ve yumbunun önü, zekice olanı. Yani onların .rpmdosyaları bizim .debdosyalarımız, onların rpmaracı bizim dpkgaracımız ve yumbizim de bizim apt-get.

Gönderen Paddy Landau 'ler aşağıda yorum :

alienarasında dönüştüren bir araçtır .rpmve .debpaketler. Böylece, bir .rpmpaketinizin bulunduğu duruma düşerseniz ve Ubuntu'nuza (veya herhangi bir diğer Debian tabanlı dağıtımınıza) yüklemek istiyorsanız, alien rpm_packageName.rpmonu dönüştürmek için komutu kullanabilir .debve sonra kullanarak yükleyebilirsiniz dpkg. Sen (dönüştürmek ters yapabilirsiniz .debiçin .rpmkullanarak) alien -r packageName.deb.


5
Bu çok faydalı ve tam olarak aradığım şeydi. Tx!
Aniket Thakur

4
Ayrıca, / ile karışan gdebi( apt-get install gdebi-core) kullanabilirsiniz . Siz onu çağırırsınız ve bağımlılıklarını analiz eder , eksikleri kurmaya çağırır ve tüm bağımlılıklar yerine getirilirse, daha sonra paketinizi kurmaya çağırırsınız . apt-getaptitudedpkggdebi some_package.debapt-getdpkg
Carlos Campderrós

2
@Alaa Extra altında , ayrıca ve alienarasında paketleri dönüştürdüğünü de belirtebilirsiniz . Bu, RPM için mevcut olan paketler için kullanışlıdır ancak DEB için değildir (veya tersi). Örneğin, Ubuntu için kullanılabilir hale getirmek için. .rpm.debalien packagename.rpm
Paddy Landau

1
@ AlalaAli aptitudebir ön uç değil apt-get. Her iki program da libapt-pkgkütüphane için ön kısımdır .
Eliah Kagan

1
@ edwardtorvalds AskUbuntu bir soru-cevap sitesidir. Buradaki cevabınızı burada binlerce eski soru arasından arayın ve bulamazsanız kendi sorunuzu sorun, benden daha deneyimli insanlara da umarım cevap verecektir.
Alaa Ali

5

apt-get

Paket yönetimi apt-get, /etc/apt/sources.listdosya ile el ele çalışır .

apt-get install <package_name> bilgisayarınıza yeni bir paket yükler.

apt-get build-dep <package_name> Bu komut depoları arar ve yapı bağımlılıklarını kurar. Paket depolarda değilse, bir hata verecektir.

apt-get install <package1_name> <package2_name> <package3_name> apt-get çoklu paket kurulumuna izin verir. paketleri bir boşlukla ayırın.

auto-apt run <command_string> Çağrıldığında auto-apt komutu, eksik dosya erişimi olduğunda paketleri otomatik olarak yükler. Bir program kaldırılmış bir pakete ait olduğu bilinen bir dosyaya erişmeye çalışırsa, otomatik paket bu paketi kullanarak yüklenir apt-get. Bu özellik çalışmak için uygun ve sudo gerektirir.

Apt-get komut sayfasını ziyaret edin

yetenek

aptitudeHer iki programda bulunmayan birçok ek özelliğin işlevselliğini dselectve apt-getyanı sıra işlevlerini sağlar

aptitude klavyeden veya fareden etkinleştirilen ve bir terminal penceresinde çalışan bir kabuğu vardır

aptitude build-dep <package> - derlemek için gerekli paket anlamına gelir (ya da - paketlerin birikimini bağımlılıkları yükleme oluşturmak kaynak paketi). Örneğin, birçok paketin oluşturulması debhelperveya autotoolsoluşturulması gerekir, ancak çalıştırılmalarına gerek yoktur.

Yetenek talimatı sayfasını ziyaret edin

dpkg

Debian paketlerini kurmak, kurmak, kaldırmak ve yönetmek için kullanılan bir araçtır. bağlantı

dpkg -i <package.deb>bilgisayarınıza bir Debian paketi kurar. Yardım dosyalarından bulabildiğim kadarıyla herhangi bir bağımlılık yüklemez.

Detaylar dpkg --helpiçin terminal penceresine giriniz.

Kılavuzlar

dosya yönetimi için bir rehber burada bulunabilir


0

Bence en önemli şey ve aynı zamanda bir fark, apt-getpaketleri yüklemek için araç kullanmanız gerektiğidir . ( aptya aptitudeda iyi).

Bunun nedeni dpkg, bağımlı paketleri kurmadan paketleri kurmaktır. Bu nedenle, yalnızca bir paketi yüklemek dpkg, bağımlılık çözümünün bozuk bir sistemle sonuçlanabileceği daha sonraki bir soruna yol açabilir.

Paketleri yüklemek için komut satırını apt-getveya apt(14.04'ten beri) aracını kullanmalısınız. Bu araçlar dpkgsizin için kullanıyor ve aynı zamanda içinde bağımlılık çözme mekanizmasına sahip.

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.