Что случилось с пакетом ia32-libs?

ia32-libs пакет больше не присутствует в репозиториях Ubuntu 12.04 для 64-битной системы. Есть ли доступные для скачивания пакеты для замены?

6 ответов

Решение

Пакет 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-битных пакетов.

Ubuntu 13.10

Что случилось?

ia32-libs пакет был полностью заменен lib32z1 lib32ncurses5 lib32bz2-1.0, Это не должно быть проблемой, потому что его функциональность все еще там, просто в других пакетах. Однако мы не живем в идеальном мире, где все поддерживают свои пакеты, а все программное обеспечение является FLOSS, поэтому некоторые пакеты по-прежнему зависят от ia32-libs.

Как я могу установить пакет x, который зависит от ia32-libs

Есть 2 способа:

  1. Вы можете упаковать его вручную, чтобы он не зависел от ia32-libs больше. (Предпочтительный)
  2. Вы можете установить ia32-libs из репозитория Ubuntu 13.04 (Raring Ringtail) (совсем не желательно !, только если первый метод не работает)

1. Упакуйте старые пакеты

Я буду использовать приемник citrix в качестве примера, но вы можете использовать этот метод для любого пакета.deb:

Во-первых, скачайте пакет приемника Citrix.deb с их сайта и создайте временный каталог для взлома.

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 Wiki

Вы можете сделать это с любым старым пакетом.deb, который все еще зависит от ia32-libs.

2. Установите ia32-libs из репозитория raring

Обратите внимание, что установка старых пакетов - очень плохая практика! К сожалению, для некоторых бинарных инсталляторов у вас нет другого выбора.

Вы можете скачать пакет 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", что, вероятно, является более конкретным и полезным ответом, чем высказывание "вы можете использовать multi-arch".

Я установил 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
Другие вопросы по тегам