Что случилось с пакетом 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 способа:
- Вы можете упаковать его вручную, чтобы он не зависел от
ia32-libs
больше. (Предпочтительный) - Вы можете установить 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