gdebi vs dpkg: gdebi otomatik olarak nasıl eksiklik kazanır? Gdebi'yi .deb paketlerinin tüm diğer yüklemeleri için kullanabilir miyim?


16

Son zamanlarda Ubuntu'mu Lubuntu 15.04'e yeniden yükledim. Bu yüzden Skype kurulumunu arıyordum ve bu güzel öğreticiyi aldım .

Gerçekten havalıydı. Bu gelen skype deb resmi paketi indirilen burada

Ben var olmadığından gdebizaten yüklü, ben kullanarak yüklüsudo su -c apt-get install gdebi

Daha sonra skype-ubuntu-precise_4.3.0.37-1_i386.debgdebi komutu kullanılarak kurulursudo su -c gdebi skype-ubuntu*4*.deb

Vay canına, gdebi benim için her şeyi yaptı, muhtemelen sistem güncellemeleri / yazılım kurulumlarımı da kıracak geleneksel Apt PPA manuel bağlantılar eklemeyi kullanmadan ne sorunsuz bir şey ..

Ama bunu kullanarak yüklemeye çalışırsam dpkg -i

dpkg -i skype-ubuntu-precise_4.3.0.37-1_i386.deb
Selecting previously unselected package skype.
(Reading database ... 86449 files and directories currently installed.)
Preparing to unpack skype-ubuntu-precise_4.3.0.37-1_i386.deb ...
Unpacking skype (4.3.0.37-1) ...
dpkg: dependency problems prevent configuration of skype:
 skype depends on libc6 (>= 2.3.6-6~).
 skype depends on libc6 (>= 2.7).
 skype depends on libgcc1 (>= 1:4.1.1).
 skype depends on libqt4-dbus (>= 4:4.5.3).
 skype depends on libqt4-network (>= 4:4.8.0).
 skype depends on libqt4-xml (>= 4:4.5.3).
 skype depends on libqtcore4 (>= 4:4.7.0~beta1).
 skype depends on libqtgui4 (>= 4:4.8.0).
 skype depends on libqtwebkit4 (>= 2.2~2011week36).
 skype depends on libstdc++6 (>= 4.2.1).
 skype depends on libx11-6.
 skype depends on libxext6.
 skype depends on libxss1.
 skype depends on libxv1.
 skype depends on libssl1.0.0.
 skype depends on libpulse0.
 skype depends on libasound2-plugins.

dpkg: error processing package skype (--install):
 dependency problems - leaving unconfigured
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for mime-support (3.55ubuntu1.1) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu2) ...
Processing triggers for dbus (1.8.8-1ubuntu2.1) ...
Errors were encountered while processing:
 skype

Çok fazla bağımlılık sorunu. Oh sadece GDebi googled ve wikipedia var

GDebi, komut satırında ve GUI'de kullanılabilen bir APT aracıdır. [44] GDebi, dpkg komutu gibi komut satırı üzerinden yerel bir .deb dosyası yükleyebilir, ancak bağımlılıkları çözmek için depolara erişebilir

Merak ediyorum

(1) gdebi, yapılandırma dosyalarına manuel olarak eklenen Apt PPA bağlantılarını kullanmadan .deb Bağımlılıkları olan Paketleri nasıl kurar?

(2) sudo su -c gdebi my.debApt PPA eklemeden diğer tüm .deb paketlerini yüklemek için aynı gdebi komutunu ( ) kullanabilir miyim veya formatı şu şekilde değiştirmem gerekir: sudo su -c my*n*.debn, yazılımın sürümü n?

Bunu elde edebilmem için lütfen layman terimleriyle açıklayınız.

Yanıtlar:


10

Aslında gdebi, dpkgdepolardaki bağımlılık paketlerini kontrol edebildiği ve bunları tek işlemle yükleyebildiği ve dpkg -idaha sonra manuel olarak iki işlem gerektirebildiği ek işlevsellik ile sadece bir ön uçtur apt-get -f install.

Soru 1:

1) Bunu nasıl gdebi yapar? install .deb Yapılandırma dosyalarına manuel olarak eklenen Apt PPA bağlantılarını kullanmadan Bağımlılıkları olan paketler?

Bir dpkgön uç olarak, tüm işlevlerini kullanabilir dpkg. Her .debpaket dosyasında (bozuk olmamaları koşuluyla) bu deb dosyasıyla ilgili meta veriler (paket adı, sürdürücü, bağımlılıklar vb.) Bulunduğundan, bu dosyanın bağımlılığını kolayca kontrol edebilir.

Örneğin, bir .deb dosyasının meta verilerini kullanarak dpkg --info package-name.deb

Ve sonra bu bilgileri bağımlılık haritası oluşturmak ve yerel olarak kullanılabilir .deb dosyalarını zaten indirilmiş olarak işaretlemek ve diğer .debdosyaları Internet'ten indirmek için kullanır .

Gerekli ekstra paketlerin (uygun sürümde) sistemde yapılandırılmış depolardan en az birinde mevcut olması gerektiğini unutmayın.

Sonra normal bir apt kurulumu gibi devam edin. Aradaki fark, ana .deb dosyasını yeniden indirmemesidir

Soru 2:

(2) sudo su -c gdebi my.debPPA eklemeden tüm diğer deb paketlerini kurmak için aynı gdebi komutunu ( ) kullanabilir miyim ? ya da sudo su -c myn.debn yazılım sürümü vb. biçimini değiştirmek zorunda mıyım ?

PPA'lar bir nedenden ötürü mevcuttur. Ana nedeni, paketlerin en son sürümlerini sağlamalarıdır. Ve bu daha yüksek sürümlü paketler genellikle standart Ubuntu deposundan değil, normalde PPA'dan da sunulan alt paketlerin daha yüksek sürümlerine bağlıdır.

Örnek Senaryo:

Bir paket adında, varsayalım anne-paket en yüksek sürüme sahip 2.0Standart Ubuntu depolarından ve bu anne-paket bir paket adında bağlıdır çocuk paketinin 2. Ayrıca varsayalım versiyonunun, bazı PPA sağlar anne-paket versiyonu 3.0üzerinde gerektirir child-packagearasında 3.0her ikisine de bu PPA deposu aracılığıyla erişilebilir.

Sorun şu ki, mother-package-3.0.deb dosyasını depo sayfasından indirip yüklemeyi denerseniz gdebi, gdebibaşarısız olursunuz (veya ).

Çünkü mother-package-3.0.deb dosyasını denetlemek, gdebibu anne paketinin sürüm alt sürümüne ihtiyaç duyduğunu biliyordu 3.0, ancak yalnızca sürümün yerini biliyor 2.0. Bu sürüm getirmesi nerede bilmiyor 3.0ait çocuk paketinden itibaren. Bu beklenir, çünkü sisteme bu son anne paketini nereden aldığını söylemedin . Başka bir deyişle, havuz listesini bu PPA'yı içerecek şekilde yapılandırmadınız .

Yani, Açık cevap bu sorunun cevabına bağlıdır . Gerekli bağımlılıklar önceden yapılandırılmış depolarda bulunabilirse, yükleme başarılı olur . Ancak değilse, bu daha yüksek sürümlü paketi yükleyemez. Bu yüzden hala PPA'lara ihtiyacınız var ve tüm bunları elle yapmadan en kolay yol budur.

İkinci sorunun ikinci kısmı benim için anlamlı değildi .


5

Birkaç uygulama ile aynı sorunu vardı, skype bunlardan biri olan, bunlar harici paketlere veya manuel olarak yüklenmesi gereken kütüphane dosyalarına bağlıdır.

Kullandığım sorunu düzeltmek için:

sudo dpkg -i skype.deb

Ve sonra çıktınızdaki gibi harici kütüphaneler istendikten sonra şunu yazdım:

sudo apt-get install -f

Bu gerekli paketleri indirdi ve skype'ı tek başına yükledi.


2

Her .deb paketinde bağımlılıkların bir listesi vardır (uyumlu sürüm numarasıyla).

Ben bir Python okuyucu değilim ama kaynak kodu aptbu listeyi almak için bir çağrı yapmak gibi görünüyor . Bağımlılıkların bağımlılıklarını bulmak için açık bir şekilde alçaltılmış olması gerekir, ancak aptbunu da açıkça yapabilir.

Bağımlılıkların tümü çalıştıktan ve doğru sıraya yerleştirildikten sonra (diğer bağımlılıkların yüklenebilmesi için bazı bağımlılıkların kurulması gerekir), aptsadece bağımlılıkların kurulması istenir. Ardından Gdebi'ye argüman olarak verilen paket kurulur.

Bağımlılıklar ve hedef paket iki nedenden ötürü iki işlemde kurulur. İlk olarak, yerel bir .deb'yi yüklemek için uygun bir çağrının biçimi, bağımlılıkları bir depodan yüklemek için uygun bir çağrının biçiminden farklıdır. İkinci olarak, çağrıları ayırmak, bağımlılıkların hedef paketten önce kurulmasını sağlar.

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.