Сборка своего собственного DEB или RPM пакета, с нужными скриптами и зависимостями.

Поделиться
HTML-код
  • Опубликовано: 5 сен 2024
  • Алгоритм создан на базе статьи www.dmosk.ru/ miniinstruktions.php?mini=gradle-build
    Там же все пояснения.
    Имя пакета "samba-fix" меняете на нужное для Вас. Список зависимостей и архитектуру выставляете сами.
    Смотивировавший меня на создание видео канал: / @-critical_thinking-
    Ютуб рубит ссылки, если что инструкция здесь:
    disk.yandex.ru...
    Создаём свой DEB или RPM пакет, с комплектом нужных программ на примере Samba-fix
    Открываем терминал
    Зайдите под администратором.
    apt install default-jdk wget unzip -y
    Для Ubuntu 23.10 и ниже
    wget services.gradl... distributions/gradle-7.6.4-all.zip (уберите пробел между org/ и distributions, Ютуб он такой)
    unzip gradle-*.zip
    mv gradle-*/ /opt/gradle
    nano ~/.profile
    Добавим в конец:
    ===========================================================================
    export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
    export PATH=$PATH:/opt/gradle/bin
    ===========================================================================
    Сохраняем и закрываем
    source ~/.profile
    gradle -v
    mkdir -p /opt/mypkg/samba-fix
    nano /opt/mypkg/samba-fix/start.sh
    Вставить любой нужный Вам скрипт, я же вставлю просто вывод текста.
    ===========================================================================
    #!/bin/bash
    PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
    sudo apt update -y
    exit
    ===========================================================================
    Сохраните и выйдите
    nano /opt/mypkg/build.gradle
    Вставить это содержимое:
    ===========================================================================
    plugins {
    id "nebula.info" version "7.1.3"
    id 'nebula.ospackage' version '8.5.6' apply false
    }
    apply plugin: 'nebula.ospackage'
    ospackage {
    packageName = 'samba-fix'
    version = '1.0.0'
    release = '1'
    os = LINUX
    requires('gvfs')
    requires('gvfs-backends')
    requires('gvfs-common')
    requires('gvfs-daemons')
    requires('gvfs-fuse')
    requires('gvfs-libs')
    requires('wsdd')
    into '/opt/hello'
    user 'root'
    from('samba-fix/start.sh') {
    into '/opt/samba-fix/bin'
    fileMode = 0770
    }
    }
    buildRpm {
    link('/usr/local/bin/samba-fix', '/opt/samba-fix/bin/start.sh')
    }
    buildDeb {
    link('/usr/local/bin/samba-fix', '/opt/samba-fix/bin/start.sh')
    }
    ==========================================================================
    Сохраните и выйдите
    nano /opt/mypkg/settings.gradle
    Вставьте содержимое
    ==========================================================================
    include ':samba-fix'
    rootProject.name = 'samba-fix'
    project(':samba-fix').name = 'samba-fix'
    ==========================================================================
    Сохраните и выйдите
    cd /opt/mypkg
    gradle wrapper --warning-mode all
    Как пройдет проверку, можем собрать пакет.
    ./gradlew buildRpm buildDeb
    ls build/distributions/

Комментарии •