У меня установлена 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» каждый раз, когда я хочу установить что-то, а затем переустановить его позже.
С multiarch вам не нужно getlibs
, зависимости должны «просто работать». Однако проблема в том, что openssl
, procps
, zenity
и Java еще не отмечены как MultiArch: foreign
. Это означает, что версии amd64, вероятно, будут работать для этого скрипта, но dpkg
этого не видит.
Боюсь, ваш лучший способ обойти это, вероятно, отредактировать .deb
и удалить проблемные зависимости. Кто-то написал сценарий , чтобы помочь с этим.
Вы можете установить 32-битный пакет в Ubuntu, используя dpkg с флагом --ignore-disabled. Если вы сделаете это, зависимости этого пакета следует игнорировать.
Поэтому я бы попробовал:
sudo dpkg -i --force-architecture --ignore-depends hp-netconnect_1.2-12_i386.deb
В качестве альтернативы вы также можете игнорировать отсутствующие зависимости с помощью apt by attach --ignore-missing flag.