64 bit sistemim neden 32 bit depoları arıyor?


19

Dizüstü bilgisayarıma 64 bit 12.10 yüklemem var. Apt-get güncellemesini çalıştırırken, 32 bitlik paketler için paket listelerini (kaynak ve 64 bitlik paket listeleri) indirir. Neden 64-bit bir sistemde 32-bit paket listeleri arar? Aşağıda bulmaya çalıştığı öğelerden birini ekledim.

http://us.archive.ubuntu.com/ubuntu/dists/quantal-backports/multiverse/binary-i386/Packages

Yanıtlar:


28

Kafa karıştırıcı, değil mi? Biraz açıklayayım.

Neden?

  • 32 bit yazılım, 64 bit yetenekli donanıma sahip 64 bit çekirdeğin üzerinde iyi çalışır.
  • Bazı yazılımlar hala belirli 32 bit kitaplıklara dayanmaktadır. Bu hoş değil, ama bazen bunu değiştirme gücümüz yok.
  • Bağımlılıkları karşılamak için sisteme 32 bit yazılımın sunulması gerekir, bu nedenle 32 bit depoları da kullanır.

2011'in başlarındayım. Ne oldu?

Ubuntu'nun ia32-libs11.10'dan önceki 64 bit sürümlerinde, bazı yaygın 32 bit kitaplıklar kümesi, APT / Dpkg ile 64 bit olarak gösterilen tek bir pakette ve depoda böyle bir konumda paketlenmiştir . Bir uygulama için tek bir kütüphaneye ihtiyaç duyarsanız, 150 bit 32 bit 32 bit kitaplığa 1 bağlı olacaktır . Açıkçası, bu hoş bir tasarım değil.

Birden fazla mimari mi?

Yeni fikir APT / Dpkg ve çevresindeki araçlara "Multiarch" yeteneklerini tanıtmaktı. Bu, Launchpad'deki birkaç taslakta sunuldu, işte bunlardan biri . Oneiric (11.10), Multiarch'ı destekleyen ilk sürüm oldu.

O nasıl çalışır?

Dpkg'a sisteminizin hangi mimarileri çalıştırabileceğini söyleyebilirsiniz. 12.04 64 bit kurulumumda bu:

$ cat /etc/dpkg/dpkg.cfg.d/multiarch 
foreign-architecture i386

Hala varsayılan olan i386paketlerin tüm dünyasını açar amd64:

$ apt-cache show libqt4-core                   | grep -E "^(Filename|Architecture)"
Architecture: amd64
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_amd64.deb

$ apt-cache show libqt4-core:i386              | grep -E "^(Filename|Architecture)"
Architecture: i386
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_i386.deb

Yukarıdaki örnek, Multiarch'ın paket sahiplerinin paketlerini basitçe libqt4-core:i386örneğin bağımlı hale getirmesini sağladığını ve herhangi bir 32 bit kitaplık / paketin yüklenmesini (ve böylece 32 bit kitaplık / pakete bağlı herhangi bir paketin yüklenmesini) mümkün kıldığını göstermektedir. , önceden seçilmiş bir küme yerine.

ia32-libs uygunluk

Eğer yüklemek için kullanıldı ia32-libstemel 32 bit kütüphanelerinin ortak bir dizi yüklemek için bir kolaylık paket olarak paketi, artık kullanabilirsiniz . Bu, aynı (veya en azından çok benzer) kitaplık kümesine bağlı olarak basit bir meta pakettir, ancak Multiarch'ın gücü ile kurulacaktır.ia32-libs-multiarch IA32-LBS-Multiarch uygulamasını yükleyin

Diğer ilgili okumalar

1 Lucid (10.04) için ia32-libspaket kurulum boyutu 155,812,0 kB'dir.


5
dpkg --print-foreign-architecturesCatting yerine koşmayı tavsiye ederim /etc/dpkg/dpkg.cfg.d/multiarch. 12.04'ten sonra mevcut değil.
tumbleweed

Evde apt-mirror ayarladım ve sadece 64 bitlik repoyu yansıtmayı umuyordum. Bunu yapamam talihsiz bir durum, ama şimdi nedenini anlıyorum ve bu şekilde mantıklı. Yanıt kabul edildi!
tgm4883

@ tgm4883 Yalnızca gerçekten çalıştırmak istiyorsanız yabancı mimari yapılandırmasını kaldırabilirsiniz amd64. ia32-libsKullanılmadan eski bir Ubuntu çalıştırmaya benzer .
gertvdijk

1
Ben okumaya başladım ve aklımda şöyle dedi: hmm gertvdijk bir yazı gibi görünüyor: +) Goede sonrası;)
Rinzwind
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.