Я пытаюсь создать пакет для 32-разрядного приложения. на 64-разрядной машине, запускающей 64-разрядную Ubuntu 14.04. Сборка была успешна, выполнение приложения правильно, я также создал .deb для нее с помощью debhelper, но когда дело доходит до на самом деле устанавливают его, удивление:
# apt-get install nd-tcms-agent
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
nd-tcms-agent:i386 : Depends: lib32gcc1:i386 (>= 1:4.1.1) but it is not installable
Depends: lib32stdc++6:i386 (>= 4.4.0) but it is not installable
Depends: libc6-i386:i386 (>= 2.17) but it is not installable
E: Unable to correct problems, you have held broken packages.
Я упоминал, что мой код создал успешно? И это не имело бы, были те библиотеки, не установленные!
Теперь, вот то, что я сделал:
# apt-cache showpkg lib32gcc1:i386
Package: lib32gcc1:i386
Versions:
Reverse Depends:
nd-tcms-agent:i386,lib32gcc1:i386 1:4.1.1
Dependencies:
Provides:
Reverse Provides:
Куда это пошло бы? Я клянусь, что это было здесь минуту назад...
Угадайте что?!? Это скрывалось позади :i386
суффикс:
# apt-cache showpkg lib32gcc1
Package: lib32gcc1
Versions:
1:4.9.3-0ubuntu4 (/var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_trusty-updates_main_binary-amd64_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_trusty_main_binary-amd64_Packages
MD5: a31c67d540f86442c895f2663cb4d5c9
Description Language: de
File: /var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-de
MD5: a31c67d540f86442c895f2663cb4d5c9
Description Language: en
File: /var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-en
MD5: a31c67d540f86442c895f2663cb4d5c9
1:4.9-20140406-0ubuntu1 (/var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_trusty_main_binary-amd64_Packages)
Description Language:
File: /var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_trusty_main_binary-amd64_Packages
MD5: a31c67d540f86442c895f2663cb4d5c9
Description Language: de
File: /var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-de
MD5: a31c67d540f86442c895f2663cb4d5c9
Description Language: en
File: /var/lib/apt/lists/de.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-en
MD5: a31c67d540f86442c895f2663cb4d5c9
Reverse Depends:
nvidia-352-updates,lib32gcc1
nvidia-352,lib32gcc1
nvidia-340-updates,lib32gcc1
nvidia-340,lib32gcc1
nvidia-304-updates,lib32gcc1
nvidia-304,lib32gcc1
fglrx-updates-core,lib32gcc1
fglrx-core,lib32gcc1
libx32go5,lib32gcc1 1:4.1.1
libx32gcc-4.8-dev,lib32gcc1 1:4.8.4-2ubuntu1~14.04.3
lib32stdc++6-4.8-dbg,lib32gcc1 1:4.1.1
lib32stdc++6,lib32gcc1 1:4.1.1
lib32objc4,lib32gcc1 1:4.1.1
lib32go5,lib32gcc1 1:4.1.1
lib32go4,lib32gcc1 1:4.1.1
lib32gfortran3,lib32gcc1 1:4.4.0
lib32gcc1-dbg,lib32gcc1 1:4.9.3-0ubuntu4
lib32gcc-4.8-dev,lib32gcc1 1:4.8.4-2ubuntu1~14.04.3
lib32asan0,lib32gcc1 1:4.1.1
brother-lpr-drivers-extra,lib32gcc1 1:4.1.1
lib32stdc++6-4.6-dbg,lib32gcc1 1:4.1.1
lib32stdc++6-4.4-dbg,lib32gcc1 1:4.1.1
lib32objc3,lib32gcc1 1:4.1.1
lib32go0,lib32gcc1 1:4.1.1
gcc-4.6-multilib,lib32gcc1 1:4.6.4-6ubuntu2
gcc-4.4-multilib,lib32gcc1 1:4.4.7-8ubuntu1
nvidia-331-updates,lib32gcc1
nvidia-331,lib32gcc1
nvidia-304-updates,lib32gcc1
nvidia-304,lib32gcc1
fglrx-updates,lib32gcc1
fglrx,lib32gcc1
libx32go5,lib32gcc1 1:4.1.1
libx32gcc-4.8-dev,lib32gcc1 1:4.8.2-19ubuntu1
libx32gcc-4.7-dev,lib32gcc1 1:4.7.3-12ubuntu1
lib32stdc++6-4.8-dbg,lib32gcc1 1:4.1.1
lib32stdc++6-4.7-dbg,lib32gcc1 1:4.1.1
lib32stdc++6,lib32gcc1 1:4.1.1
lib32objc4,lib32gcc1 1:4.1.1
lib32go5,lib32gcc1 1:4.1.1
lib32go4,lib32gcc1 1:4.1.1
lib32gfortran3,lib32gcc1 1:4.4.0
lib32gcc1-dbg,lib32gcc1 1:4.9-20140406-0ubuntu1
lib32gcc-4.8-dev,lib32gcc1 1:4.8.2-19ubuntu1
lib32gcc-4.7-dev,lib32gcc1 1:4.7.3-12ubuntu1
lib32asan0,lib32gcc1 1:4.1.1
Dependencies:
1:4.9.3-0ubuntu4 - gcc-4.9-base (5 4.9.3-0ubuntu4) libc6-i386 (2 2.2.4)
1:4.9-20140406-0ubuntu1 - gcc-4.9-base (5 4.9-20140406-0ubuntu1) libc6-i386 (2 2.2.4)
Provides:
1:4.9.3-0ubuntu4 -
1:4.9-20140406-0ubuntu1 -
Reverse Provides:
Необходимо также знать, что я не добавил их Depends:
к моему пакету вручную. debhelper
сделал. И я знаю, что это не может быть непосредственно Вашей проблемой, но если Вы, оказывается, знаете, кто парень, который имел изумительную идею добавить: суффикс к "внешним" пакетам, суньте нос в это, в то время как я ищу обходное решение!
Или, может просто случиться так, что я получаю эту вещь смешанной дуги полностью неправильно...
Спасибо и удачи!
И здесь прибывает мое обходное решение (я действительно полагаю, что это обходное решение и не решение!):
Это - то, как информация об управлении моего пакета смотрела первоначально:
$ dpkg -I ../nd-tcms-agent_1.1-1_i386.deb
new debian package, version 2.0.
size 248492 bytes: control archive=624 bytes.
410 bytes, 10 lines control
315 bytes, 4 lines md5sums
Package: nd-tcms-agent
Version: 1.1-1
Architecture: i386
Maintainer: my@email-address.com
Installed-Size: 929
Depends: lib32gcc1 (>= 1:4.1.1), lib32stdc++6 (>= 4.4.0), libc6-i386 (>= 2.17), libcurl3-gnutls (>= 7.16.2), libzmq3 (>= 3.2.3+dfsg)
Section: utils
Priority: optional
Homepage: [...]
Description: [...]
я подчеркиваю: Depends:
там были добавлены к нему debhelper
, на основе информации, которую это собрало само во время создания пакета.
Так, то, что я сделал, должно было попытаться переопределить их сам путем добавления debian/shlibs.local
файл:
libgcc_s 1 libgcc1 (>= 1:4.1.1)
libstdc++ 6 libstdc++6 (>= 4.4.0)
libm 6 libc6 (>= 2.17)
libpthread 0 libc6 (>= 2.17)
libc 6 libc6 (>= 2.17)
(я не буду вдаваться в подробности того, что там, существует много информации о тот онлайн и в руководствах)
И теперь, чтения информации об управлении моего пакета:
$ dpkg -I ../nd-tcms-agent_1.1-1_i386.deb
new debian package, version 2.0.
size 248320 bytes: control archive=620 bytes.
401 bytes, 10 lines control
315 bytes, 4 lines md5sums
Package: nd-tcms-agent
Version: 1.1-1
Architecture: i386
Maintainer: my@email-address.com
Installed-Size: 929
Depends: libc6 (>= 2.17), libcurl3-gnutls (>= 7.16.2), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.4.0), libzmq3 (>= 3.2.3+dfsg)
Section: utils
Priority: optional
Homepage: [...]
Description: [...]
Теперь, если все зависимости от освобождения, упомянутого в debian/shlibs.local, на самом деле разрешены правильно на основе корректной дуги, или нет, оставлен для Вашего/вз лучшего предположения (возможно, я, возможно, просто поместил что-либо там, которое решило к пакету, который имеет a: вариант i386 - вот почему я полагаю, что это обходное решение и не решение!); то, что является бесспорным, - то, что теперь мой пакет действительно устанавливает (и Ваш желание также, вероятно, при направлении с той же проблемой)...
За Ваше здоровье!