Skip to content

Как собрать пакет в ubuntu

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

Прежде чем собирать пакет надо решить какой файл мы будем собирать в пакет. Предположим у нас есть файл, который называется devblogs с баш-скриптом, который выводит текст:

echo "This is devblogs app"

Сделаем его исполняемым и запустим для проверки:

sudo chmod +x devblogs
./devblogs
This is devblogs app

Сборка пакета

А теперь давайте его запакуем в пакет и проинсталлируем, чтобы после инсталяции при вводе в командной строке devblogs, нам возвращался текст This is devblogs app.
Для того чтобы собрать пакет нам надо сначала создать каталог с такой структурой:

app
 ├──usr
 │   └─bin
 │       └─devblogs
 └──DEBIAN
     └─control

В этой структуре путь usr/bin/ это то место куда будет устанавливаться наш исполняемый файл относительно корня. В данном случае исполняемый файл это devblogs. В качестве исполняемого файла может быть вообще любой исполняемый файл, например исполняемый файл, который был скомпилирован из c++ кода.
Далее нам нужно создать файл control где будет описание пакета:
Добавьте в control такое содержание:

Package: devblogs
Version: 0.1
Section: utils
Architecture: all
Depends:
Maintainer: We
Description: It's just test package

Создадим каталог repo куда мы поместим созданный деб-пакет:

mkdir repo

Соберем .deb файл из каталога app:

dpkg --build app

На выходе будет файл app.deb
Переместим файл app.deb в каталог repo:

mv app.deb repo

Соберем архив из содержимого каталога repo и положим его (архив) в каталог repo:

dpkg-scanpackages repo /dev/null | gzip -9c > repo/Packages.gz

Перейдем в каталог /etc/apt/sources.list.d где лежат файлы в которых описаны репозитории
В каталоге /etc/apt/sources.list.d создадим файл myrepo.list с описанием своего репозитория:

cd /etc/apt/sources.list.d
touch myrepo.list

Укажем в нем путь к нашему репозиторию:

echo 'deb file:/path/to/repo/catalog/ repo/' >> myrepo.list

Выше указанный путь /path/to/repo/catalog/ указывает непосредственно в тот каталог в котором находится каталог repo
В данном случае мы указали путь к локальному репозиторию, можно так же запустить апач, положить это все дело в каталог /var/www и вместо deb file:/path/to/repo/catalog/ repo/ прописать deb http://host repo/

Установка пакета

Теперь все готово для установки пакета, нам осталось обновить информацию из всех видимых репозиторием командой apt-get update и произвести установку обычным убунтовским способом.

sudo apt-get udpate
sudo apt-get install devblogs

Теперь можно проверить как встал наш пакет:

./devblogs
This is devblogs app

Можно еще убедиться, что пакет devblogs действительно присутствует в каталоге /usr/bin:

ls /usr/bin | grep devblogs
devblogs

Удаление пакета

Для того чтобы удалить пакет введите команду:

sudo dpkg -P devblogs

Поделиться в социальных сетях

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий

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