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


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


100
2018-02-24 08:48


происхождения


Связанный askubuntu.com/questions/359156/... - Braiam
+1, просто хотел задать точно такой же вопрос. У SO действительно отличные вопросы! - ulidtko


ответы:


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


95
2018-02-24 10:17



Ну, как можно найти все зависимости и сначала установить: i386 из них? - user117
@wingman Run ldd, передавая путь двоичному в качестве аргумента. Если вывод содержит строку типа libz.so.1 => not found, то вам нужно найти libz.so.1, Вы можете использовать packages.ubuntu.com или apt-file search чтобы найти пакет, содержащий этот файл. В примере, который я дал, вам нужно установить zlib1g:i386, - Lekensteyn
Я нахожусь на компьютере с ubuntu 10.10. после некоторого руководства по разработке Android я должен установить ia32-libs. ваш ответ говорит о 11.10, но для этого компьютера? что мне нужно сделать? - nkint
@nkint 10.10 больше не поддерживается. Если вы хотите продолжить, вам нужно изменить источники пакетов, В 10.10 вам необходимо установить ia32-libs. Но даже тогда нет гарантии, что SDK android работает с этим. - Lekensteyn
@FelipeMicaroniLalli Вам нужно заменить package-name по фактическому имени. использование ldd чтобы выяснить, см. второй комментарий выше. - Lekensteyn


Ubuntu 13.10

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

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

Как установить пакет Икс это зависит от ia32-libs

Есть два способа:

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

1. Переупаковать старые пакеты

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

Сначала загрузите пакет citrix receiver .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 из репозитория

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

Вы можете скачать пакет ia32-libs из регрессивный репозиторий, Загрузите его и установите его вручную, тогда зависимости должны быть разрешены.


41
2017-12-22 00:42



Что такое «FOS»? Я пытался: acronyms.thefreedictionary.com/FOS - Eliptical view
@Elipticalview «Свободный и открытый источник». Изменил его на FLOSS (Free / Libre и программное обеспечение с открытым исходным кодом), что является более распространенным явлением. - Galgalesh
«Переупаковка старых пакетов» работает в основном для Ubuntu 16.04 Xenial - вам просто нужно добавить несколько адаптаций к именам пакетов, обычно добавляя «: i386» -namespace в конец имен пакетов. Некоторые из пакетов также имеют разные имена, например libbz2-1.0: i386 - Christian Benke


Я читал, что вы должны установить 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

6
2017-08-24 11:24



Работает для элементарной ОС Луны также - camelCaseD


Если вы получите эту ошибку, попробуйте:

sudo apt-get update

Затем повторите попытку:

sudo apt-get install ia32-libs

Я просто сделал новую установку 12.04, этот пакет по-прежнему доступен в репозиториях. Фактически, я сам получил эту ошибку, прежде чем запускал обновление. Впоследствии он работал нормально.


4
2017-12-06 15:50





Я считаю, что этот конкретный вариант использования был заменен пакетами «lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2», что, вероятно, является более конкретным и полезным ответом, чем «вы можете использовать multi-arch».


1
2018-01-24 21:52



Какие? В этом вопросе нет конкретного варианта использования. - gertvdijk
@gertvdijk: сам пакет представляет собой ограниченный вариант использования; для более общей цели вы можете использовать несколько арки, но для тех, кто раньше использовал этот конкретный пакет, он, кажется, был заменен на «lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2», который вы можете установить без использования многоэкранных : который охватывает те же варианты использования, что и предыдущий пакет. В сущности, я нашел эти ответы бесполезными, так как многоэлемент был переполнен по причине существования ia32-libs, был удивлен, что не было более прямой замены взамен, и не было разочаровано, когда я исследовал это дальше. - saurik
Это был самый простой ответ, который решил для меня аналогичную проблему. Несмотря на то, что указанные libs, похоже, не имеют ничего общего с созданием общего двоичного кода, это действительно сработало. - Per Knytt


Я установил 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

-2
2017-08-02 08:46



Я получил: 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 - foobarbecue