Cоздание deb пакета и репозитория

  • Для чего - например опакетить свои скрипты.
  • Т.к. используются только ar tar gz - работать будет в любом линуксе
  • С бинарниками сложнее - необходима проверка зависимостей в deb дистрибутиве

Создание пакета

  1. mkdir tmp
  2. Копируем в tmp свои файлы (иерархия от корня)
  3. deb-make tmp - создает шаблон файла описания 'control'
  4. Редактируем control (описание пакета)
  5. deb-make tmp - получаем то_что_написали_в_control.deb

Скрипт deb-make

#!/bin/sh
#170519 sfs
#http://webhamster.ru/mytetrashare/index/mtb0/2046
#https://debian-handbook.info/browse/ru-RU/stable/packaging-system.html
[ ! -d "$1" ] && echo "Create .deb from directory
    Usage $o direttory_name" && exit 1 

if [ -f control ] ;then
    [ "`cat control |wc -m`" = "352" ] && echo "Edit file 'control'" && exit 1
else
 echo "\
Package: licq-plugin-icqnd
Architecture: i386
Depends: licq, adobe-flashplugin (= 1:20170509.1-0ubuntu0.14.04.1), libc6 (>= 2.7)
Provides: licq-plugin
Priority: optional
Version: 0.1.9.3
Maintainer: nobody care
Description: graphical user interface plug-in for Licq using GTK2
This package provides the GTK2-based graphical user interface to the Licq
" >control && echo "File 'control' created/ Edit it" && exit
fi
tar czf control.tar.gz control
echo 2.0 > debian-binary
cd "$1" && tar czf ../data.tar.gz *
cd ..
A(){ awk '/^'$1':/ {print $2}' control  ; }
ar -qS "`A Package`_`A Version`_`A Architecture`".deb debian-binary control.tar.gz data.tar.gz

То же самое с dpkg-deb

  • Создать новую директорию, например /tmp/package
  • Находясь в каталоге с исходниками, выполнить команду
make install DESTDIR=/tmp/package
dpkg-deb -b /tmp/package package_name.deb

Еще можно использовать checkinstall

Распаковка deb низкоуровневыми утилитами

Скрипт pkgextract из PRA. rpm тоже распаковывает

Просмотр control

#!/bin/sh
[ ! "$1" ] && echo "List 'control' from .deb
    Usage $o *.deb" && exit 1 
ar p "$1" control.tar.gz |tar -O -xzf -

Создание репозитория

В конце https://habrahabr.ru/post/78094/. reprepro - бинарник с небольшим количеством зависимостей

sfs 2017/05/19 14:33

Печать/экспорт