İa32-libs paketine ne oldu?


Yanıtlar:


97

İa32-libs paketi, 64 bitlik bir kurulumda 32 bitlik paketleri almak için bir hack'dü. Ubuntu 11.10 (Oneiric) versiyonundan beri, Multi Arch eklenmiştir. Bunun için amaçlarından biri ia32-libspaketi çıkarmak . Bunun yerine, bir paketin 32 bit kitaplıklarını aşağıdakilerle birlikte yüklemeniz gerekir:

sudo apt-get install package-name:i386

Standart depolardaki paketler için endişelenmenize gerek yoktur (örneğin winepaket). Harici yazılımlar için biraz daha zor çünkü bağımlılıkları manuel olarak bulmak zorundasınız. Bu durumda, hangi kütüphanelere ihtiyacınız olduğunu bulmak için favori arama motorunuzu kullanın.

İa32-libs hala var gibi gözüküyor, fakat sadece yaygın 32-bit kütüphaneleri içeren bir kolaylık paketi olarak. Bu paket şimdi 32 bit paketleri doğru bir şekilde kurmak için Multi Arch kullanıyor.


17
Peki, nasıl bir bütün bağımlılıkları bulmak ve ilk yükleme bulmak gerekiyor: Bunlardan i386?
user117 16:12

10
@wingman Run ldd, ikilinin yolunu argüman olarak geçirerek çalıştırın . Çıktıda benzer bir çizgi varsa, libz.so.1 => not foundbulmanız gerekir libz.so.1. Sen kullanabilirsiniz packages.ubuntu.com veya apt-file searchbu dosyayı içeren paketi bulmak için. Verdiğim örnekte, yüklemeniz gerekir zlib1g:i386.
Lekensteyn 16:12

1
ubuntu 10.10 ile bir bilgisayardayım. android geliştirme üzerine bazı dersleri takiben ia32-lib'leri yüklemeliyim. Cevabınız 11.10 hakkında konuşmak, ama bu bilgisayar için? ne yapmalıyım?
nkint

1
@nkint 10.10 artık desteklenmiyor. Devam etmek istiyorsanız, paket kaynaklarınızı değiştirmeniz gerekir . 10.10'da ia32-lib'leri kurmanız gerekiyor. Ama o zaman bile android SDK'nın bununla çalışacağı garanti edilemez.
Lekensteyn

1
@FelipeMicaroniLalli package-nameGerçek adla değiştirmeniz gerekir . Anlamak lddiçin kullanın , yukarıdaki ikinci yoruma bakın.
Lekensteyn

43

Ubuntu 13.10

Ne oldu?

ia32-libsPaket tamamen almıştır lib32z1 lib32ncurses5 lib32bz2-1.0. Bu bir problem olmamalı çünkü işlevselliği hala orada, sadece diğer paketlerde. Ancak, herkesin paketlerini koruduğu ve tüm yazılımların FLOSS olduğu ideal bir dünyada yaşamıyoruz, bu nedenle bazı paketler hala ia32-libs'lere bağlı.

İa32-libs'e bağlı olan x paketini nasıl kurabilirim

2 yol var:

  1. Artık manuel olarak yeniden paketleyebilirsiniz, böylece ia32-libsartık bağımlı olmaz . (tercihli)
  2. İa32-lib'leri Ubuntu 13.04 (Raring Ringtail) havuzundan kurabilirsiniz ( hiç tercih edilmez !, sadece ilk yöntem işe yaramazsa )

1. Eski paketleri yeniden paketleyin

Citrix alıcısını örnek olarak kullanacağım, ancak bu yöntemi herhangi bir .deb paketi için kullanabilirsiniz:

İlk önce sitrix alıcısını .deb paketini web sitelerinden indirin ve hack işlemini yapan geçici bir dizin yapın.

mkdir ica_temp

Paketi çıkart

dpkg-deb -x icaclient_13.0.0.256735_amd64.deb ica_temp
dpkg-deb --control icaclient_13.0.0.256735_amd64.deb ica_temp/DEBIAN

Dosyayı gedit'te (veya en sevdiğin editörde) aç.

sudo -H gedit ica_temp/DEBIAN/control

İle başlayan satırı bulun Depends:.... kaldır ia32-libsve eklelib32z1 lib32ncurses5 lib32bz2-1.0

Değiştirilen paketi yeniden oluştur

dpkg -b ica_temp icaclient-modified.deb

Ve kur

sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f

Citrix alıcısını takmak da biraz kesmek ister. Tüm kurulum talimatlarını Ubuntu wiki'de bulabilirsiniz.

Bunu, hala ia32-lib'lere bağlı olan herhangi bir eski .deb paketiyle yapabilirsiniz.

2. ia32-lib'leri baskın deposundan yükleyin

Lütfen eski paketleri kurmanın çok kötü bir uygulama olduğunu unutmayın! Ne yazık ki, bazı ikili yükleyiciler için başka seçeneğiniz yok.

İa32-libs paketini baskın deposundan indirebilirsiniz . İndirin ve manuel olarak yükleyin, sonra bağımlılıklar çözülmelidir.



1
@Elipticalview "Ücretsiz ve Açık Kaynak". Daha yaygın olan FLOSS'a (Serbest / Libre ve açık kaynaklı yazılım) değiştirildi.
Galgalesh

"Eski paketlerin yeniden paketlenmesi" çoğunlukla Ubuntu 16.04 Xenial için işe yarar - paket adlarına birkaç uyarlama eklemeniz gerekir, genellikle paket adlarının sonuna ": i386" -namespace'i eklersiniz. Bazı paketlerin de farklı isimleri var, libbz2-1.0: i386
Christian

6

Bunun ia32-libs-multiarchyerine paketi yüklemeniz gerektiğini okudum . Ancak benim için işe yaramadı ve bu hatayı alıyorum

ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.

Benim için çalışan çözüm şu paketleri kurmaktı:

sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386

Temel işletim sistemi luna için de çalışıyor
camelCaseD

4

Bu hatayı alırsanız, deneyin:

sudo apt-get update

Ardından tekrar deneyin:

sudo apt-get install ia32-libs

Yeni bir 12.04 yüklemesi yaptım, bu paket depolarda hala mevcut. Aslında, güncelleme yapmadan önce bu hatayı kendim aldım. Daha sonra, iyi çalıştı.


1

Bu özel kullanım durumunun "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2" paketleri ile değiştirildiğini düşünüyorum.


2
Ne? Bu soruda belirli bir kullanım durumu yoktur.
gertvdijk

1
@gertvdijk: Paketin kendisi sınırlı kullanım durumunu temsil eder; daha genel bir amaç için çoklu arşivleme yapabilirsiniz, ancak daha önce bu belirli paketi kullanan kişiler için çoklu arşiv kullanmak zorunda kalmadan kurabileceğiniz "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2" ile değiştirilmiş görünüyor : önceki paketle aynı kullanım durumlarını kapsar. Temelde, ia32-lib'lerin var olmasından dolayı çoklu kemer kullanımının fazla engellendiği, daha doğrudan bir araştırmanın yerini almadığıma şaşırdığı ve bunu daha fazla araştırdığımda hayal kırıklığına uğramadığı için, bu cevapları yararsız buldum.
saurik

Bu benim için benzer bir sorunu çözen en basit cevaptı. Belirtilen liblerin genel bir ikili başlatmaya başlamakla hiçbir ilgisi yok gibi görünse de işe yaradı.
Knytt

-2

İa32-lib'leri böyle kurdum (Ubuntu 13.04 Raring Ringtail'i 64 bitlik bir makinede çalıştırıyorum):

Kendi mimariyi kontrol et:

$ dpkg --print-architecture

Yabancı bir mimarinin kurulu olup olmadığını kontrol edin:

$ dpkg --print-foreign-architectures

Yukarıdaki iki komutun sonuçlarına bağlı olarak, aşağıdaki üç komut işe yarayabilir (benim durumumda işlem yapmak uzun zaman aldı):

$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs

4
Anladım:Package ia32-libs is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: lib32z1 lib32ncurses5 lib32bz2-1.0
foobarbean
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.