Чи не ia32-libs
пакет більше не присутній в Ubuntu 12.04 репозиторіїв для 64 - бітної системи. Чи є доступні для завантаження запасні пакети?
Чи не ia32-libs
пакет більше не присутній в Ubuntu 12.04 репозиторіїв для 64 - бітної системи. Чи є доступні для завантаження запасні пакети?
Відповіді:
Пакет ia32-libs був злом, щоб отримати 32-бітні пакети, встановлені на 64-бітній установці. З моменту Ubuntu версії 11.10 (Oneiric) додано Multi Arch . Однією з цілей для цього є видалення ia32-libs
пакета. Натомість вам потрібно встановити 32-бітні бібліотеки пакету з:
sudo apt-get install package-name:i386
Вам не доведеться турбуватися про це для пакетів у стандартних сховищах (наприклад, wine
пакет). Для зовнішнього програмного забезпечення це трохи складніше, тому що ви повинні знайти залежність вручну. У такому випадку за допомогою улюбленої пошукової системи ви знайдете, які бібліотеки вам потрібні.
Здається, що ia32-libs все ще існує, але лише як пакет зручності для включення загальних 32-бітних бібліотек. Цей пакет тепер використовує Multi Arch, щоб правильно встановити 32-бітні пакети.
ldd
, пропустивши шлях до двійкового як аргумент. Якщо висновок містить такий собі рядок libz.so.1 => not found
, то вам потрібно знайти libz.so.1
. Ви можете використовувати пакети.ubuntu.com або apt-file search
знайти пакет, що містить цей файл. У прикладі, який я наводив, вам потрібно встановити zlib1g:i386
.
package-name
фактичне ім'я. Використовуйте, ldd
щоб зрозуміти, дивіться другий коментар вище.
ia32-libs
Пакет був повністю замінений lib32z1 lib32ncurses5 lib32bz2-1.0
. Це не повинно бути проблемою, оскільки його функціональність все ще є, лише в інших пакетах. Однак ми не живемо в ідеальному світі, де кожен підтримує свої пакунки, а все програмне забезпечення є FLOSS, тому деякі пакети все ще залежать від ia32-libs.
Є два способи:
ia32-libs
. (бажано)Я буду використовувати приймач citrix як приклад, але ви можете використовувати цей метод для будь-якого пакета .deb:
По-перше, завантажте пакунок .deb від citrix з їхнього веб-сайту і зробіть тимчасовий каталог, щоб зробити злом.
mkdir ica_temp
Витягніть пакет
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
Відкрийте файл у gedit (або улюбленому редакторі)
sudo -H gedit ica_temp/DEBIAN/control
Знайдіть рядок, який починається з Depends:...
. видалити ia32-libs
та додатиlib32z1 lib32ncurses5 lib32bz2-1.0
Відновіть модифікований пакет
dpkg -b ica_temp icaclient-modified.deb
І встановити його
sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f
Встановлення приймача citrix теж вимагає певного злому. Повні інструкції з установки можна знайти на вікі Ubuntu
Ви можете це зробити з будь-яким старим пакетом .deb, який все ще залежить від ia32-libs.
Зверніть увагу, що це дуже погана практика встановлення старих пакетів! На жаль, для деяких інсталяторів бінарних файлів у вас немає іншого вибору.
Ви можете завантажити пакет ia32-libs з репозиторію raring . Завантажте його та встановіть його вручну, тоді залежності слід вирішити.
Я читав, що ви повинні встановити ia32-libs-multiarch
пакет замість цього. Однак це не спрацювало для мене, і я отримую цю помилку
ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.
Для мене вирішило встановити такі пакети:
sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
Якщо ви отримаєте цю помилку, спробуйте:
sudo apt-get update
Потім спробуйте ще раз:
sudo apt-get install ia32-libs
Я щойно зробив нову установку 12.04, цей пакет все ще доступний у сховищах. Насправді я отримав цю помилку сам, перш ніж запустити оновлення. Згодом це спрацювало чудово.
Я вважаю, що цей конкретний випадок використання був замінений пакетами "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", що, мабуть, є більш конкретною та корисною відповіддю, ніж вимова "ви можете використовувати мульти-арку".
Я встановив ia32-libs так (я запускаю Ubuntu 13.04 Raring Ringtail на 64-бітній машині):
Перевірте власну архітектуру:
$ dpkg --print-architecture
Перевірте, чи встановлена іноземна архітектура:
$ dpkg --print-foreign-architectures
Залежно від результатів двох вищевказаних команд, можуть працювати наступні три команди (у моєму випадку знадобилося тривалий час):
$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs
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