Правильный способ создания пакета deb - это использование dpkg-buildpackage
, но иногда это немного сложно.Вместо этого вы можете использовать dpkg -b <folder>
, и он создаст ваш пакет Debian.
Это основные принципы создания пакета Debian с dpkg -b <folder>
с любым двоичным файлом или с любым видом сценария, который запускается автоматически без необходимости ручной компиляции.(Python, Bash, Pearl, Ruby):
- Создайте файлы и папки, чтобы воссоздать следующую структуру:
ProgramName-Version/
ProgramName-Version/DEBIAN
ProgramName-Version/DEBIAN/control
ProgramName-Version/usr/
ProgramName-Version/usr/bin/
ProgramName-Version/usr/bin/your_script
Сценарии, размещенные на /usr/bin/
вызываются напрямую из терминала, обратите внимание, что я не добавил расширение в скрипт.Также вы можете заметить, что структура пакета deb будет структурой программы после ее установки.Таким образом, если вы следуете этой логике, если ваша программа имеет один файл, вы можете непосредственно поместить его в ProgramName-Version/usr/bin/your_script
, но если у вас есть несколько файлов, вы должны поместить их в ProgramName-Version/usr/share/ProgramName/all your files
и поместить только один файл в /usr/bin/
, который будетвызывайте свои скрипты от /usr/share/ProgramName/
Изменить все права доступа к папке на root:
chown root:root -R /path/to/ProgramName-Version
Изменить разрешения скрипта:
chmod 0755 /path/to/the/script
Наконец, вы можете запустить: dpkg -b /path/to/the/ProgramName-Version
и ваш пакет deb будет создан!(Вы также можете добавить сценарии post / pre inst и все, что вам нужно, он работает как обычный пакет Debian)
Вот пример файла control
.Вам нужно только скопировать и вставить его в пустой файл с именем «control» и поместить в папку DEBIAN
Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description. This is the short Description.
Here you put the long description, indented by 1 space.