Ручная сборка deb-пакета

В случае когда нужно свои уже скомпилированные или скриптовые программы упаковать в deb-пакет, можно не пользоваться специализированным софтом (кстати я его не нашёл :) ), а собрать пакет в ручную.

Для этого нужно:

  • Наличие архиватора
  • Наличие текстового редактора.

Подготовка файлов

Создадим каталог в домашней директории:

mkdir debpack

Создание data.tar.gz

  • Например ваша программа называется install.sh и Вы хотите, чтобы она установилась в директорию /usr/bin/, то внутри каталога создадим папку usr, а в ней bin и положим в неё вашу программу.

Теперь эту папку нужно запаковать в data.tar.gz:

tar czf data.tar.gz usr

Создаём control.tar.gz

  • Создаём файл control:
echo > control
  • Отредактируем его, для вноса параметров:
nano control
  • Пример control
Package: test
Version: 0.1
Architecture: all
Maintainer: Developers <admin@admin.ru>
Original-Maintainer: Vasya Pupkin
Depends: dialog
Description:Program for testing.

Разберёмся подробнее:

Package: <----------- Название пакета

Version: 0.1 <-------Версия

Architecture: all <--Архитектура, может быть на пример i386, в моём случае 'all' - любая.

Maintainer: Developers <admin@admin.ru> <-----Создатель пакета

Original-Maintainer: Vasya Pupkin <--------- Разработчик программы

Depends: dialog <--- Зависимости через запятую

Description:Program for testing. <----------Описание программы

Теперь этот файл нужно запаковать в control.tar.gz:

tar czf control.tar.gz control

Создаём debian-binary

echo 2.0 > debian-binary

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

ar -r test.deb debian-binary control.tar.gz data.tar.gz

После этой команды у вас в каталоге появится deb-пакет готовый к установке.

Ссылки

deb-control на русском языке

Теги: , ,

Дата: 3 ноября 2010

Автор: ignusius

Комментарии: 3

Комментарии: 3

  1. Спасибо. Очень помогло.

  2. А как дать root права файлам добавленным в архив?

  3. Большущее спасибо за материал. очень пригодилось. Однако возник вопрос. После установки пакета с моей программой, она нигде не появилась. Как я понял, ей надо прописать зависимости, чтоб она лежала в нужной категории (ubuntu 10.04).
    Мне надо, чтоб она лежала в Education. Помогите пожалуйста.

Оставить комментарий

*

Комментарий:

Ваш e-mail не будет опубликован.
Обязательные поля помечены *

Разрешенные HTML теги:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>