Всех приветствую на продолжении темы работы со snap пакетами.
Очень часто бывает так, что разработчику требуется узнать все зависимости приложения. И это не просто узнать, имеет ли одна библиотека в зависимости другую.
А для того чтобы собрать снап пакет со всеми зависимостями, что очень важно.
И сейчас я вам продемонстрирую работу интересного приложения под названием cqtdeployer. Принцип работы таков, что ему нужно скормить бинарник приложения и путь к каталогу с qml, а cqtdeployer соберет вам все его qt зависимости.
Данный проект есть на гите, но так как он уже собран и есть в снап пакете то нету смысла его с гита копировать.
Установка (--classic данный ключ как я писал ранее говорит о том, что приложение имеет, как и deb пакет, доступ к системе)
snap install cqtdeployer --classic
Клонируем тестовый проект, с помощью которого получим его зависимости, и соберём свой снап пакет
git clone https://github.com/QuasarApp/Console-QtDeployer.git Console-QtDeployer/examples/TestQMLWidgets (заходим в каталог проекта)
Собираем проект TestQMLWidgets.pro (или через консоль, или из Qt Creator)
Теперь начинаем сбор всех зависимостей данного приложения
cqtdeployer -bin ./build/TestQMLWidgets -qmake /path/to/your/qmake/bin/qmake -qmlDir ./ -targetDir ./distro
cqtdeployer имя самого снап пакета (а далее скармливаем ему аргументы)
- -bin : после путь до бинарника программы
- -qmake : путь к qmake именно той версии, которой мы собирали данное приложение
- -qmlDir : путь куда складывать деплой. Если указать ./ то около бинарника проекта появится каталог с тем, что нам нужно
- -targetDir : имя каталога, куда складывать зависимости
После всех манипуляций выполняем команду для сборки снап пакета
snapcraft
и его установки
snap install cqtdeployerexample_0.1_amd64.snap --dangerous
Запуск снап пакета
cqtdeployerexample
Вот в принципе и всё. Теперь, если вы пишите ваши приложения на Qt, то без проблем сможете понять и получить все нужные либы и плагины.
Всем спасибо и оставайтесь с нами.
Отдельную благодарность разработчику данного приложения.
QuasarApp
По поводу установки
Разработчики snap отключили возможность устанавливать приложение в класическом режиме и из-за этого утилита может работать не правельно.
до тех пор пока билд в snapstore не будет обновленн, можно использовать сборку из gitHub
CQDeployer обновился и работает корректно. теперь можно пользоватся сборкой с snap store