Не 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
. Вы можете использовать packages.ubuntu.com или apt-file search
найти пакет, содержащий этот файл. В приведенном мной примере вам необходимо установить zlib1g:i386
.
package-name
на фактическое имя. Используйте, ldd
чтобы выяснить, см. Второй комментарий выше.
ia32-libs
Пакет был полностью заменен lib32z1 lib32ncurses5 lib32bz2-1.0
. Это не должно быть проблемой, потому что его функциональность все еще там, просто в других пакетах. Однако мы не живем в идеальном мире, где все поддерживают свои пакеты, а все программное обеспечение является FLOSS, поэтому некоторые пакеты по-прежнему зависят от ia32-libs.
Есть 2 способа:
ia32-libs
. (предпочтительный)Я буду использовать приемник 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.
Обратите внимание, что установка старых пакетов - очень плохая практика! К сожалению, для некоторых бинарных инсталляторов у вас нет другого выбора.
Вы можете скачать пакет 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
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