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.
#!/usr/bin/env python3
"""
This script is going to create a debian package
"""
import os
print('This script is going to create a debian package')
###### EDIT THIS SECTION WITH YOUR PACKAGE INFORMATION ######
include_hello_world_script = True # Set to False to manually copy your files and remove helloworld program
package_name = 'helloworld'
major_version = 1
minor_version = 0
package_revision = 1
section = 'base'
priority = ''
architecture = 'i386' #Change to armhf for Raspberry Pi
depends = '' #For example: libsomethingorrather (>= 1.2.13), anotherDependency (>= 1.2.6)
maintainer = 'Your Name <[email protected]>'
#The space before each line in the description is important
package_description = """Hello World
When you need some sunshine, just run this
small program!
"""
###### NO EDITING NEEDED BEYOND THIS LINE ######
version_name = str(major_version) + '.' + str(minor_version) + '-' + str(package_revision)
full_package_name = package_name + '_' + version_name
path = os.getcwd()
package_folder = os.path.join(path, full_package_name)
os.makedirs(package_folder, exist_ok=True)
os.makedirs(os.path.join(package_folder, 'DEBIAN'), exist_ok=True)
with open(os.path.join(package_folder, 'DEBIAN', 'control'), 'w') as file:
file.write("""Package: """ + package_name + """
Version: """ + version_name + """
Section: """ + section + """
Priority: """ + priority + """
Architecture: """ + architecture + """
Depends: """ + depends + """
Maintainer: """ + maintainer + """
Description: """ + package_description)
if include_hello_world_script:
script_destination = os.path.join(package_folder, 'usr/local/bin')
os.makedirs(script_destination, exist_ok=True)
helloworld_filename = os.path.join(script_destination, 'helloworld')
with open(helloworld_filename, 'w') as file:
file.write("""#!/usr/bin/env python3
print('Hello World!')""")
os.chmod(helloworld_filename, 0o755)
input("Put your files in the package structure and press Enter to continue...")
os.system('dpkg-deb --build ' + full_package_name)
这是创建基本
.deb
文件的好方法。它适用于创建.deb
供个人使用的文件,但如果您希望将软件包包含在 Debian / Ubuntu 中则不够严格 - 为此您应该阅读Debian 新维护者指南和/或Ubuntu 打包指南(我相信你已经试过了)。检查
.deb
文件是否合规的一个好工具是lintian
(可从存储库安装)。Ask Ubuntu 聊天室中有两个会议。
Ubuntu 上打包的基础知识(打包:第 1 部分)
Launchpad PPA 的 Ubuntu 打包(打包:第 2 部分)
您在哪些部分遇到问题?虽然很复杂,但当我按照指南进行操作时,它似乎很清楚。
快速总结:
.tar.gz
dh_make
您甚至可以
dpkg-deb
用于创建简单的包。这是来自Ubuntuforums的一个不错的教程。
本指南最初发布在StackOverFlow上,适用于预编译或解释的软件:
构建 deb 包的正确方法是使用
dpkg-buildpackage
,但有时它有点复杂。相反,您可以使用dpkg -b <folder>
它,它将创建您的 Debian 软件包。dpkg -b <folder>
这些是使用任何二进制文件或任何无需手动编译自动运行的脚本(Python、Bash、Pearl、Ruby)创建 Debian 软件包的基础知识:创建文件和文件夹以重新创建以下结构:
放置的脚本
/usr/bin/
是直接从终端调用的,注意我没有给脚本添加扩展名。您还可以注意到,deb 包的结构将是安装后程序的结构。因此,如果您的程序只有一个文件,则如果遵循此逻辑,则可以将其直接放在 . 下ProgramName-Version/usr/bin/your_script
,但如果您有多个文件,则应将它们放在下面ProgramName-Version/usr/share/ProgramName/all your files
,并且只在下面放置一个文件,/usr/bin/
该文件将从中调用您的脚本/usr/share/ProgramName/
将所有文件夹权限更改为root:
更改脚本的权限:
最后,您可以运行:
dpkg -b /path/to/the/ProgramName-Version
您的 deb 包将被创建!(你也可以添加 post/pre inst 脚本和你想要的一切,它就像一个普通的 Debian 包一样工作)这是该
control
文件的示例。您只需将其复制/粘贴到一个名为“control”的空文件中,并将其放入 DEBIAN 文件夹中。打包东西最简单的方法是使用checkinstall。
不,这个世界上最简单最清晰的包装指南是
为 Ubuntu 和其他 Debian 打包 Java 应用程序
几天前,对于我的第一个应用程序,我按照本教程创建了 DEB 包。非常清晰,我的应用程序打包成功。是的,至少它对我来说是最简单的。
您可以将其与 Debian 打包指南进行比较。
根据接受的答案,我制作了一个 Python 脚本,它将按照本教程
helloworld_1.0-1.deb
创建一个包。你可以为你的包修改它。复制脚本并使用 Python 3 运行它:
python3 create_debian_package.py