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

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

Алгоритм создан на базе статьи https://www.dmosk.ru/ miniinstruktions.php?mini=gradle-build
Там же все пояснения.
Имя пакета "samba-fix" меняете на нужное для Вас. Список зависимостей и архитектуру выставляете сами.
Смотивировавший меня на создание видео канал:    / @-critical_thinking-  

Ютуб рубит ссылки, если что инструкция здесь:
https://disk.yandex.ru/d/5Qc6IGcWDlJQXA

Создаём свой DEB или RPM пакет, с комплектом нужных программ на примере Samba-fix

Открываем терминал

Зайдите под администратором.

apt install default-jdk wget unzip -y

Для Ubuntu 23.10 и ниже
wget https://services.gradle.org/ 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/

Комментарии

Информация по комментариям в разработке