Подготовка файла
Прежде чем собирать пакет надо решить какой файл мы будем собирать в пакет. Предположим у нас есть файл, который называется 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 devblogsdevblogs
Удаление пакета
Для того чтобы удалить пакет введите команду:
sudo dpkg -P devblogs