Я ищу советы по упаковке моего приложения на 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
), но стандарт Heirarchy в файловой системе Debian, похоже, препятствует этому.
- Я мог бы поместить их в
/usr/local/lib/myapp
, но тогда как мне убедиться, что правильная версия связана динамически? И если я сделаю это, что мне нужно сделать, чтобы добавить этот каталог в LD_LIBRARY_PATH
в целевой системе?
Как вы можете сказать, я довольно плохо знаком с упаковкой для систем Ubuntu, поэтому направление, в котором я иду, может быть совершенно неверным. Мне интересно услышать от других, кто делает это, о том, что, по их мнению, работает лучше всего, особенно с точки зрения стабильности и простоты обслуживания.
Вот некоторые документы, которые я прошел до сих пор: