Сборка своего собственного 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/