В этой статье описывается простой способ создать самодельный пакет debian с нуля и упаковать в него наше собственное приложение.
Из этого руководства вы узнаете:

  • Как создать простой пакет Debian
  • Установка локального файла .deb

Создание двоичного исполняемого файла

Первое, что нам нужно сделать, это создать простую программу на C ++, скомпилировать ее и протестировать. Для простого понимания приведенного ниже кода просто распечатайте сообщение на экране.

#include <iostream>
int main() {
    using namespace std;
    cout << "Custom package Build by Prashant Divate\n";
}

сохраните код как mypackage.cc и скомпилируйте его с помощью компилятора g ++.
ПРИМЕЧАНИЕ: Для использования компилятора g ++ необходимо предварительно установить пакет, необходимый для сборки, или вы можете установить его, запустив.

$ sudo apt-get install build-essential

Для компиляции и тестирования кода мы используем следующую команду linux:

$ g++ mypackage.cc -o mypackage
$ ./mypackage
Custom package Build by Prashant Divate

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

Для этого мы используем инструмент dpkg-deb. Прежде всего, нам нужно создать структуру пакета debian. Сначала создайте каталог с именем mypackage. В этом каталоге будут храниться все необходимые файлы пакетов:

$ mkdir mypackage

Затем создайте каталог DEBIAN и управляющий файл:

$ mkdir mypackage/DEBIAN
$ vim mypackage/DEBIAN/control

Внутри контрольного файла мы вводим следующую информацию:

Package: mypackage
Version: 1.0
Section: custom
Priority: optional
Architecture: all
Essential: no
Installed-Size: 1024
Maintainer: [email protected]
Description: Print simple custom message on the screen

Отлично, теперь внутри каталога mypackage мы создаем дерево каталогов, которое представляет путь, по которому двоичный файл нашего пакета будет установлен в системе, и копируем двоичный файл по этому пути.

$ mkdir -p mypackage/usr/bin/
$ cp /path/to/mypackage mypackage/usr/bin/

На этом этапе мы готовы создать пакет

$ dpkg-deb --build mypackage
dpkg-deb: building package `mypackage' in `mypackage.deb'.
$ ls
mypackage  mypackage.deb

Если вы хотите изменить имя пакета, чтобы оно включало версию программы и архитектуру пакета. Например:

$ mv mypackage.deb mypackage-1.0_amd64.deb

Все готово 👍 Наша посылка готова!

Чтобы установить наш пакет, теперь мы можем использовать команды dpkg как:

$ sudo chmod a+x mypackage-1.0_amd64.deb 
$ dpkg -i mypackage-1.0_amd64.deb 
Selecting previously unselected package mypackage.
(Reading database ... 288318 files and directories currently installed.)
Preparing to unpack mypackage-1.0_amd64.deb ...
Unpacking mypackage (1.0) ...
Setting up mypackage (1.0) ...
$ mypackage
Custom package Build by Prashant Divate

Проверьте путь к установленному пакету с помощью команды:

$ which mypackage
/usr/bin/mypackage

Чтобы удалить пакет из системы, просто запустите:

$ sudo apt remove mypackage
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  mypackage
0 upgraded, 0 newly installed, 1 to remove and 49 not upgraded.
After this operation, 1,049 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 288318 files and directories currently installed.)
Removing mypackage (1.0) ...

Если вам понравилась эта статья, порекомендуйте и поделитесь.