Найти тему
Linux code

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

{package} = "package-name"
{version} = "0.0.01"
{deb_name} = {package}_{version}
{autor} = "Autor Name"

Файловая структура пакета:

mkdir ~/package
cd ~/package
mkdir -p ./build/
{deb_name}/DEBIAN
mkdir -p ./build/
{deb_name}/usr/bin
mkdir -p ./package/build/
{deb_name}/usr/share/doc/{package}
mkdir -p ./build/
{deb_name}/usr/share/man/man1
mkdir -p ./build/
{deb_name}/usr/share/applications

Файл ./build/{deb_name}/DEBIAN/control:

Package: {package}
Version:
{version}
Architecture: amd64
Maintainer:
{autor} <{mail}>
Depends:
{depends}
Section: x11
Priority: optional
Homepage:
{url}
Description:
{description}

Файл ./build/{deb_name}/usr/share/doc/{package}/changelog:

[PACKAGE_NAME] ([PACKAGE_VERSION]) stable; urgency=low

* New release. Closes: #99999.

--
[AUTOR] <[MAIL]> [WEEK], [DAY] [MONTH] [YEAR] 09:54:00 -0800

сжать файл:

gzip -9 -n ./build/{deb_name}/usr/share/doc/{package}/changelog"

Файл ./package/build/{deb_name}/usr/share/doc/{package}/copyright:

Format: https://dep.debian.net/deps/dep5
Upstream-Name:
[PACKAGE_NAME]
Source:
[PACKAGE_SOURCE]

Files: *
Copyright:
[YEAR] [AUTOR] <[MAIL]>
License: GPL-3.0+

License: GPL-3.0+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
.
On Debian systems, the complete text of the GNU General
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".

Файл ./package/build/{deb_name}/usr/share/man/man1/{package}.1:

.TH [PACKAGE_TITLE] 1
.SH NAME
[PACKAGE_NAME] \- [PACKAGE_ABOUT]
.SH DESCRIPTION
[PACKAGE_FULL_DESCRIPTION]

сжать файл:

gzip -9 -n ./package/build/{deb_name}/usr/share/man/man1/{package}.1

Создать файл ./package/build/{deb_name}/DEBIAN/md5sums

Скрипт запуска ./package/build/{deb_name}/usr/bin/{package}:

#!/bin/bash
python3 /usr/share/
{pathdir}/main.py

права на файл:

chmod +x ./package/build/{deb_name}/usr/bin/{package}

Файл ./package/build/{deb_name}/usr/share/applications/{name}.desktop:

[Desktop Entry]
Type=Application
Name=
{APPLICATION_NAME}
Icon=
{APPLICATION_ICON}
Exec=/usr/bin/
{package}
Comment=
{APPLICATION_ABOUT}
Version=
{APPLICATION_VERSION}
Keywords=
{APPLICATION_KEYWORDS}
Terminal=false

Скопировать исходники в ./package/build/{deb_name}/usr/share/{pathdir}

Скопировать иконку в ./package/build/{deb_name}/usr/share/icons/

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

fakeroot dpkg-deb --build ./package/build/{deb_name}

Проверить пакет на ошибки:

lintian -i -I --show-overrides {deb_file}

Пакет можно разместить на Github. Как это сделать, можно прочитать здесь.