Усіх вітаю на продовженні теми роботи зі snap пакетами.
Дуже часто буває так, що розробнику потрібно дізнатися про всі залежності програми. І це не просто дізнатися, чи має одна бібліотека залежно від іншої.
А для того, щоб зібрати снап пакет із усіма залежностями, що дуже важливо.
І зараз я вам продемонструю роботу цікавої програми під назвою cqtdeployer. Принцип роботи такий, що йому потрібно згодувати бінарник програми та шлях до каталогу з qml, а cqtdeployer збере вам усі його qt залежності.
Даний проект є на гіті, але оскільки він вже зібраний і є в снап пакеті, то немає сенсу його з гіта копіювати.
Установка (--classic даний ключ як я писав раніше говорить про те, що програма має, як і deb пакет, доступ до системи)
snap install cqtdeployer --classic
Клонуємо тестовий проект, за допомогою якого отримаємо його залежності, та зберемо свій снап пакет
git клон 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