У меня установлен 64-битный Ubuntu 11.10, и я должен установить на него 32-разрядный пакет deb. Это зависит от других 32-битных библиотек. Я преодолеваю это с помощью getlibs:
sudo getlibs -i ./hp-netconnect_1.2-12_i386.deb
Пакет установлен успешно, и я могу его использовать, но теперь я не могу ничего установить с помощью apt-get:
ytaras@bueno:~/Downloads$ sudo apt-get install bison-doc
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
hp-netconnect:i386 : Depends: openssl:i386 but it is not going to be installed
Depends: procps:i386 but it is not going to be installed
Depends: zenity:i386 but it is not going to be installed
Depends: sun-java6-jre:i386 but it is not installable or
sun-java5-jre:i386 but it is not installable
Recommends: sun-java6-plugin:i386 but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Если Я запускаю apt-get -f install, он просто удаляет пакет hp-netconnect. Теперь мне нужно удалить этот пакет с помощью «apt-get -f install» каждый раз, когда я хочу что-то установить, и переустановить его позже.
С многократным, вам не нужно getlibs, зависимости должны «просто работать». Однако проблема заключается в том, что openssl, procps, zenity и Java еще не отмечены как MultiArch: foreign. Это означает, что версии amd64, вероятно, будут работать для этого скрипта, но dpkg не могут этого увидеть.
Боюсь, что ваш лучший способ обойти это, вероятно, для редактирования этого .deb и удаления проблемные зависимости. Кто-то написал сценарий, чтобы помочь с этим.
Вы можете установить 32-битный пакет на ubuntu, используя dpkg с флагом --ignore-depends. Если вы делаете, что зависимости этого пакета следует игнорировать.
Итак, я бы попытался:
sudo dpkg -i --force-architecture --ignore-depends hp-netconnect_1.2-12_i386.deb
В качестве альтернативы вы также можете игнорировать отсутствующие зависимости с помощью apt с помощью attach --ignore- отсутствующий флаг.