什么是最简单的Debian包装指南?


150

我去了Ubuntu Wiki,但是很困惑,方法太多了。请告诉我有关Debian包装的简单指南。


3
您要创建供自己使用,在特定计算机上还是供其他人使用的软件包?
andol 2010年

1
您要打包哪种软件?
乌曼格2010年

4
我有同样的问题。大多数教程和指南都是从“获取上游压缩包”开始的。从这一点开始,我们迷路了。我们想部署一个简单的东西,没有上游的tarball,没有源代码。它只是一个war文件,一些脚本和一些jar文件。上游的tar球到底是什么,有没有人看到过不使用指南的指南,该指南是全面的(例如,处理用户问题)
John Little

2
我会去一个我贴过计算器。

如果您想创建“虚拟包”(组依赖关系在一起),则值得一看Equivs-build
Rolf

Answers:


103

是用于创建基本.deb文件的好方法。它适合于创建.deb供个人使用的文件,但是如果您想要将该软件包包含在Debian / Ubuntu中,则不够严格-为此,您应该阅读《Debian新维护人员指南》和/或《Ubuntu包装指南》(我相信您已经ve已经尝试过)。

(可以从存储库中安装)一个很好的工具来检查您的.deb文件是否符合要求lintian

Ask Ubuntu聊天室中有两个会话。

Ubuntu上打包的基础知识(打包:第1部分)

适用于Launchpad PPA的Ubuntu打包(打包:第2部分)


这很好地编译了从打包开始所需的内容,但是在HOWTO中,我错过了将应用程序图标包含在deb文件中的信息(并且在其他地方未找到有关此内容的任何信息)。关于如何做的任何提示?
nightcod3r

14

您在哪些方面遇到问题?尽管很复杂,但是当我关注它时,该指南似乎很清晰。

快速摘要:

  • 提取来源 .tar.gz
  • dh_make
  • 编辑Debian文件
  • 运行debuild

3
让我感到困惑的是,无论源语言还是目录结构,该过程都一样吗?
塞斯

9
问题是,我们没有.tar.gz。我们想打包我们编写的应用程序。似乎没有指南涵盖这方面,它们都以我们没有的“上游压缩包”开头。
John Little

@JohnLittle这个答案可能有帮助:askubuntu.com/a/27731/5
Nathan Osman

1
长期重复包装呢?我是否每次都要进行如此漫长而复杂的包装过程?
克拉韦米尔

如果用户没有GPG密钥,debuild则将失败并显示“ debsign:发生gpg错误!正在中止...。 ”。
agc


5

打包某些东西的最简单方法是使用checkinstall


4
checkinstall提供了一种从源安装方法构建debin二进制软件包(.deb)的快速方法。但是,它没有提供适当的debian软件包(从debian源软件包构建)。
若奥·平托

哦,我在编译之前就不得不使用它。
Piotr Kula 2015年

5

该指南最初发布在StackOverFlow上,适用于预编译或解释的软件:

使用正确的方法构建deb软件包,dpkg-buildpackage但有时会有些复杂。相反,您可以使用dpkg -b <folder>,它将创建您的Debian软件包。

这些是dpkg -b <folder>使用任何二进制文件或任何类型的可自动运行而无需手动编译(Python,Bash,Pearl,Ruby)的脚本创建Debian软件包的基础:

  1. 创建文件和文件夹以重新创建以下结构:

    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/

  2. 将所有文件夹权限更改为root:

     chown root:root -R /path/to/ProgramName-Version  
    
  3. 更改脚本的权限:

     chmod 0755 /path/to/the/script
    
  4. 最后,您可以运行: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.

3

不,这个世界上最简单,最清晰的包装指南是

打包适用于Ubuntu和其他Debian的Java应用程序

几天前,对于我的第一个应用程序,我按照本教程创建了DEB包。非常清楚,我的应用程序打包成功。是的,至少对我来说这是最简单的。

您可以将其与《 Debian包装指南》进行比较。


3
“简单”并不意味着“完整”。基本的.deb打包教程不会针对不同类型的程序提供很多政策,因此打包并不像“简单教程”那样简单。
托马斯·沃德

绝对简单。它使我开始工作,并且能够在几分钟内创建我的第一个debian软件包。仍然有很多细节需要处理(林田包装质量差的消息),但起点很高。
atmelino
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.