Я ищу советы о том, как упаковать мое приложение на основе Qt для дистрибутивов Ubuntu / Debian. Скажем, приложение (исполняемый файл) myapp
. Запустив objdump -p myapp | grep NEEDED
, я вижу, что у него следующие зависимости:
libicuuc.so.44
libicui18n.so.44
libicudata.so.44
libQtGui.so.4
libQtCore.so.4
libpthread.so.0
libstdc++.so.6
libm.so.6
libgcc_s.so.1
libc.so.6
Я просмотрел несколько онлайн-документов (перечисленных в конце этого вопроса), но мне все еще неясно, где установить фактические файлы.
Стандарт иерархии файловой системы Debian предлагает (я думаю) установить myapp
в /usr/local/bin
, но я не уверен насчет библиотек ICU и Qt. Важно, чтобы использовалась точная версия некоторых из этих библиотек. (У них есть черновики API, которые используются, которые могут выйти из строя в будущих версиях.)
- Я хочу избежать «ада совместно используемых библиотек», так что я склонен помещать их в каталог приложения (
/usr/local/bin
), но стандарт иерархии файловой системы Debian, похоже, не одобряет этого. - Я мог бы поместить их в
/usr/local/lib/myapp
, но тогда как я могу гарантировать, что правильная версия связана динамически? И если я это сделаю, что мне нужно сделать, чтобы добавить этот каталог вLD_LIBRARY_PATH
целевой системы?
Как вы понимаете, я новичок в упаковке для систем Ubuntu, поэтому направление, в котором я иду, может быть совершенно неправильным. Мне интересно услышать от других, кто делает это, о том, что, по их мнению, работает лучше всего, особенно с точки зрения стабильности и простоты обслуживания.
Вот некоторые из документов, которые я изучил до сих пор:
- Руководство по упаковке Ubuntu
- Создайте deb-пакет Ubuntu из приложения Qt
- Стандарт иерархии файловой системы Debian
- Руководство по политике Debian (в системе)
- Справочник разработчика Debian (в системе)
- Руководство нового сопровождающего Debian (в системе)