Debian/Ubuntu打包工具入门指南

在">Ubuntusci的一部分努力之下,许多没有被Ubuntu软件仓库收录的软件包被添加到了仓库中。把其他类UNIX系统上的软件(或者其他Linux发行版上的软件)移植到Ubuntu Linux中是一件复杂的事情,需要的时间和努力会比预期更多。

不考虑Ubuntu软件仓库,任何已经出现在Debian软件仓库中至少4至5年的软件都将可能成为我们移植打包工作可能面临的困难。这还是个保守的假设。如果仅仅只是将源代码拷贝过来,简单地为Ubuntu(或者Debian)编译一下就可以,相信很多人早就做过了。那些特定的、一直以来没有人移植打包的软件主要是因为他们在Debian/Ubuntu上不能完美编译。

这份文档针对那些从未试过给Debian/Ubuntu制作软件包的读者。因为我们发现,即使软件编译和运行无错,打包的实际过程仍然可能会让人感到困惑。希望随着项目的推进,社区把更多的精力花费在软件包检查上,使我们制作的软件包质量过硬。

工具

Ubuntu/Debian的开发新手经常会对“source”这个词感到困惑。“Source-code”通常指某个程序(program),或者某个应用(application),或者软件包的源代码。当我们说“Sources”的时候,指的是用于构建软件包的文件。例如,软件包“Foo”的“source-code”(源代码)是一个或者一堆文本文件,通过GCC编译连接之后可以产生二进制可执行文件;而我们所说的“Foo”软件包的“sources”,指的是所有用于构建Foo.deb这个debian包的文件,其中包括源代码文件。

构建deb软件包的基本过程如下:

* 下载软件的源码包;
   * 把源码包解压缩到某个目录;
   * 在源码目录内创建debian化目录 (./debian).
   * 修改./debian目录内的文件,如包维护者的详细信息、包描述,等等;
   * 在本机编译源代码;
   * 在本机生成.deb包;
   * 把经过我们修改后能成功编译生成deb包的sources上传到Launchpad PPA[1]。

当软件成功地上传到Launchpad,并在Launchpad上成功编译生成deb包后,我们的工作就基本上完成了。我们的Launchpad PPA源地址可以分享给其他想使用我们的deb包的人。我们甚至可以申请把我们的deb包移入Ubuntu的官方主软件仓库中。

这过程中需要用到的工具至少有:

* 浏览器,或者类似的软件——用于下载软件的源代码包;
   * 解压缩软件——用于解压下载回来的源代码包;
   * dh_make(dh-make包的一部分)——用于自动创建./debian目录和其他用于创建.deb包的骨架模板文件;
   * make(Gnu make)——构建过程中要用到的工具;
   * debchange/dch(devscripts包的一部分)——用于编辑包的版本号;
   * debuild(devscripts包的一部分)——运行构建过程,包括编译连接,以及生成deb包;
   * fakeroot(fakeroot包的一部分)——这个东西是必须的;
   * dput——上传经过签名的deb文件。

建议所有打包工作都在较新的Ubuntu系统下进行,这样可以大大方便和简化整个过程。

时间: 2024-09-19 09:00:46

Debian/Ubuntu打包工具入门指南的相关文章

MaxCompute(原ODPS)开发入门指南——数据开发工具篇

MaxCompute(原ODPS)开发入门指南--数据开发工具篇 写在最前面 >>>进入了解更多>>>阿里云数加·MaxCompute大数据计算服务. 大家在使用大数据计算服务MaxCompute时,最头疼就是我现在已有的数据如何快速上云?我的日志数据如何采集到MaxCompute上?等等...具体详见<MaxCompute(原ODPS)开发入门指南--数据上云篇>. 但是数据在MaxCompute上了之后,问题又来了,我怎么基于上面进行快速的数据开发,构建

我的碎碎念:Docker入门指南

本文讲的是我的碎碎念:Docker入门指南,[编者的话]之前曾经翻译过很多Docker入门介绍的文章,之所以再翻译这篇,是因为Anders的角度很独特,思路也很调理.你也可以看下作者的演讲稿<Docker, DevOps的未来>.本文介绍了Docker的一些基本概念.诱人的特性.Docker的工作原理.日常管理基本操作,以及一些Docker的问题的解决方案. 什么是Docker,你应该知道些什么? 相比很多人的解释,我相信说Docker是一个轻量级的虚拟机更容易理解.另外一种解释是:Docke

使用libFuzzer fuzz Chrome V8入门指南

本文讲的是使用libFuzzer fuzz Chrome V8入门指南, 什么是V8?  V8(也称为Chrome V8)是由Chromium Project开发的用于Google Chrome浏览器的开源JavaScript引擎.使用V8的其他项目包括Couchbase,MongoDB和Node.js.等.在本文的帮助下,可能您会对其有更为深入的了解. 众所周知Google做事情总是会有点不一样,所以它不会像./configure && make那么简单.但是一旦您找出正确的过程,这其实

Mesosphere入门指南(一)

本文讲的是Mesosphere入门指南(一),[编者的话]本文为Mesosphere官方博客中发布的系列文章的第一部分,Mesosphere在本篇系列文章中分享了DC/OS的入门指南,并且做了演示. 在Mesosphere,大家都爱用Mesos.显而易见地,这是一个被数以百计的公司成功证明可以运行容器在生产环境中的技术.但是作为我们通常所说的"可扩展"技术,Mesos并不是用于部署的最简单的系统. 假设你想要使用Mesos去用于你的新的微服务架构的宿主系统.在之前老版本的Mesos里,

SQLite快速入门指南_数据库其它

1. 介绍 SQLite 是一个开源的嵌入式关系数据库,实现自包容.零配置.支持事务的SQL数据库引擎. 其特点是高度便携.使用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保SQLite的二进制文件存在即可开始创建.连接和使用数据库.如果您正在寻找一个嵌入式数据库项目或解决方案,SQLite是绝对值得考虑. 2. 安装 SQLite on Windows     进入 SQL 下载页面:http://www.sqlite.

Debian/Ubuntu系统中安装和配置UFW-简单的防火墙

自从计算机互连后,各种服务迅速发展.用户使用的电子邮件.社交媒体.在线商城.即时聊天甚至网络会议等服务如雨后春笋般涌现.但从另一方面来说,这些连接服务也具有双刃剑,比如它们当中的病毒.恶意软件.特洛伊木马等会向计算机发送恶意消息. 安装 UFW 防火墙 作为最大的计算机网络,互联网上可并不都是善意的用户.因此,为了确保我们的计算机或服务器安全,我们需要进行保护. 在你的计算机或服务器上一个必须有的组件就是防火墙.在维基百科中,其定义是: 防火墙是计算机中一款应用软件或基于硬件的网络安全系统.它根

你所不知道的21个云服务器应用实践———云计算综合入门指南

摘要:如今,基于互联网的服务和交互已经越来越深入我们的生活,"云计算"也成为了不折不扣的高频词汇.并以其快捷.按需调用网络资源的优势为我们的日常生活带来了诸多便利和改变.之前,我们基于云服务器的多种利用方法制作了"云计算的1024种玩法"的零基础入门专题,现在,我们对这一专题进行扩展和整合,制作出了这份云计算综合入门指南.   它分为两个部分,分别是云计算基础和云计算实践.在基础篇中,我们能学习到关于云服务器远程控制搭建,数据管理使用,以及建站环境扩展等工具性内容:

MySQL入门指南

mysql MySQL入门指南推荐:圆梦   发表日期:2000年10月10日   阅读次数:2039 Miles Tsai(net-bull@126.com)  songzy@mailcity.com 2000.2  一.SQL速成  结构查询语言(SQL)是用于查询关系数据库的标准语言,它包括若干关键字和一致的语法,便于数据库元件(如表.索引.字段等)的建立和操纵.  以下是一些重要的SQL快速参考,有关SQL的语法和在标准SQL上增加的特性,请查询MySQL手册.    1.创建表  表是

WalkThrough : SharePoint WebPart入门指南全5辑

web <WalkThrough : SharePoint WebPart 入门指南>全部完成了,它基本上涵盖了WebPart编程入门所需要了解的内容. 第一辑:在VS.NET中"可视化"的创建WebPart,并将其简单部署到SPS页面上. 第二辑:在WebPart中创建可由用户调整的自定义属性:在WebPart中访问SharePoint Object Model. 第三辑:讲解了如何在WebPart中如何使用Code-Behind方式编写的User Control,并演示