Я создал deb пакет для приложения, созданного в QT. Я включал все библиотеки, что приложение зависит от, чтобы быть установленным в папке рядом с самим приложением:
/usr/share/MyCompany/MyProduct/executable
/usr/share/MyCompany/MyProduct/Frameworks
Затем экспортируемый LD_LIBRARY_PATH
указывая Frameworks
каталог.
Все совершенствуют... Пока я не должен был добавлять спокойный Помощник, который требует дополнительных библиотек.
После проверки зависимостей для спокойного Помощника я добавил все необходимые библиотеки, включая libQtHelp.so.4
и libQtWebKit.so.4
, в том же каталоге.
Мой deb очень прост, я создаю структуру, желаемую, затем устанавливает "установку" для копирования моих файлов в целевые каталоги.
blah_1/* /usr/share/MyCompany/MyProduct/
Для создания пакета я создаю tar затем
dh_make --copyright gpl -f ../blah-1.0.tar.gz
dpkg-buildpackage -rfakeroot -me@mycompany.com
При запуске установщика на чистом (никакой QT) система, я получаю ошибки зависимости:
me:~$ sudo dpkg -i /path/blah_1.0-1_i386.deb
Selecting previously unselected package blah.
(Reading database ... 141841 files and directories currently installed.)
Unpacking blah (from .../blah_1.0-1_i386.deb) ...
dpkg: dependency problems prevent configuration of blah:
blah depends on libqt4-help (>= 4:4.8.0); however:
Package libqt4-help is not installed.
blah depends on libqtwebkit4 (>= 2.2~2011week36); however:
Package libqtwebkit4 is not installed.
dpkg: error processing blah (--install):
dependency problems - leaving unconfigured
Processing triggers for shared-mime-info ...
Processing triggers for desktop-file-utils ...
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for gnome-menus ...
Errors were encountered while processing:
blah
К сожалению, система, которую я устанавливаю, не имеет (и не будет иметь), доступ в Интернет. Как я могу обеспечить требуемые пакеты в том же deb установщике?
Или, как я могу отключить проверку зависимости, так как я обеспечиваю, необходимое освобождает?
(Ubuntu 12.04, если это релевантно),
Обновление: Я работал
sudo dpkg -i --ignore-depends=libqt4-help,libqtwebkit4 /path/blah_1.0-1_i386.deb
Программа, установленная правильно и, работала отлично.
В пакете, в /DEBIAN/control
, я вижу, перечислил нежелательные зависимости.
После вызова dh_make у меня не было зависимостей в файле управления.
dpkg-buildpackage, должно быть, поместил зависимости после проверки (вероятно, для помощника).
Я могу удалить их так или иначе? Я могу поместить флаг где-нибудь для не включения зависимостей?
Или... все еще.... я могу добавить в своей упаковочной вещи deb пакеты и являюсь там командой, которую я могу дать, чтобы предварительно установить как часть установки пакета?
Если нет никакого решения.... Я предполагаю, что могу предоставить сценарий для выполнения команды dpkg, поскольку выше, с игнорируют - зависит, но затем он пакет не может быть установлен от Центра программного обеспечения...
Согласно man dpkg-source
:
-Dfield=value
Override or add an output control file field.
И от man dpkg-buildpackage
:
--source-option=opt
Pass option opt to dpkg-source.
Поэтому, возможно, Вы могли переопределить Depends
поле таким образом:
dpkg-buildpackage --source-option='-DDepends=...' ...