利用checkinstall制作deb或rpm工具包

1. 概述

有时候我们向用户提供软件时,并不希望提供源码(虽然这挺狗的...),而是只希望提供一些可执行文件。小程序还好说,可以轻易地提取有用的信息出来。

但对于一些比较庞大的程序,尤其是需要配置文件,并且需要内核的支持等条件的时候,就会因为程序内部各个文件与程序的复杂性,在搞清其中关系上花上不少的时间了。

这样就需要一个办法将其中的可执行文件提取出来并且能够保证其能够正常执行,当然,你可以将你编译源代码的目录中的代码都删掉,只留下中间产物和可执行文件,是可以的。但这里我们讨论的是如何通过制作deb软件包来达到目的。

而做成deb包还有另一个好处,就是方便软件的安装与卸载,这是源码安装的很多软件无法做到的。

2. 需要工具

完成刚才所描述的操作只需要一个工具:checkinstall,是一个将源码转化成deb或者rpm包的工具,操作也比较简单。

而完成安装包并不是最终目的地,我们有时还需要对安装包进行适当的修改,此时则需要dpkg,debian下强大的包管理工具。

有的系统可能会不提供checkinstall在线安装的,下载地址如下:http://asic-linux.com.mx/~izto/checkinstall/。但是我真没搞明白怎么用,应该是直接用的,但会报错,也没系想去深究,不要鄙视我。

我在debian上直接用apt-get装的。

==== 操作流程 ====

3. 制作包过程

我们在正常编译软件源码是通过 ./configure ; make ; make install 来完成的。

而我们要做的就是用checkinstall去替换make install这步,然后我们就会得到一个deb包了...

整个过程将像如下显示

在通过./configure && make之后,输入sudo checkinstall命令
经过很短时间的初始化之后,系统会提示你

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]:

选择y

然后会让你对包做一定的描述,以空行结尾

Please write a description for the package.
End your description with an empty line or EOF.
>> i am description
>> 

然后会提示你完成一些描述性的输入

This package will be built according to these values:

0 - Maintainer: [ [email protected] ]
1 - Summary: [ i am the summary ]
2 - Name: [ name ]
3 - Version: [ 1.0 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ amd64 ]
8 - Source location: [ nameofthesrc ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ command ]
12 - Conflicts: [ ]
13 - Replaces: [ ]

此处的requires可以指定所需要的包

比如,我需要libxml2-dev,pkg-config的支持,输入

10 #回车
>> libxml2-dev,pkg-config #回车

当然,你也可以在适用checkinstall命令的时候加一个参数

checkinstall --requires="libxml2-dev,pkg-config"

这里,如果你加了要求,别人在安装你的包的时候,如果没有相应的库,或者软件,程序就检查并提示,否则不会检查的,直接去安装,最后程序没法用,而且谁也不知道为什么。除非你能够提供一个说明。

如果没有这里直接回车就好了,然后就可以完成deb包的创建了。

正常情况下,此时这个deb包就可以拿去给别人装软件了,安装过程需要使用命令

sudo dpkg -i name.deb

4. 通过dpkg管理deb包

有时我们可能需要对这个deb先进行一定的处理,因为制作包的过程是通过替换make install过程完成的,可能有些东西我不想放在包里,我要把它删除。我也希望向里面添加一些其它的东西。比如是两个不同系统的程序,你希望你的系统同时拥有他们,但不希望通过多个步骤。

这个过程需要dpkg命令来实现,dpkg的一些基本功能如下所示

dpkg -i name.deb #安装软件包
dpkg -I name.deb #从包里获取deb包的信息
dpkg -i name #移出所安装的软件包,名字可以通过查看包信息得到
dpkg -c name.deb #查看包内的内容,看起来就跟压缩包一样
dpkg -s name #查看已安装的包裹信息
dpkg -r name #删除一个已安装的包裹
dpkg -P name #删除一个已安装的包裹,包括配置文件

其实就是重新组装一下目录,大概就是这个意思。

其实dpkg已经强大到无以复加的地步,如果想了解更详细的信息,请看这里
http://www.debian.org/doc/manuals/debian-faq/ch-pkgtools.zh-cn.html
http://www.debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html

这里向说明的是dpkg的一些其他功能,解包和重新打包

dpkg -x name.deb name #得到包内的文件
dpkg -e name.deb name/DEBIAN #得到包内的控制信息
dpkg -b name name.deb #创建一个deb包
时间: 2024-11-01 19:33:58

利用checkinstall制作deb或rpm工具包的相关文章

ubuntu上利用checkinstall制作deb或rpm包

1.安装checkinstall sudo apt-get install checkinstall 2.编译源码 通常的源码编译需要经过configure或cmake,之后再通过make编译. configure or cmake make 3.打包 make后执行 sudo checkinstall 随后跟随系统提示操作: 第一步,是否生成文档,选"yes" The package documentation directory ./doc-pak does not exist.

linux下使用checkinstall 制作zabbix的rpm包

目前,想要在所有的client端安装zabbix client,因为想要指定预定义的路径,通过zabbix资源制作rpm包,制作rpm包的方式有多种 一种是:rombuild的方式,主要是编写spec的文件 一种是:checkinstall 开源的 一种是:fpm,ruby写的,也是开源的 学习通过checkinstall 的方式,制作rpm包 1.下载安装 wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkin

Centos6.5利用RubyGems的fpm制作zabbix_agent的rpm包,并使用ansible批量部署

一. 搭建rpm包制作环境 安装gcc [[email protected] ~]# yum install gcc 安装make [[email protected] ~]# yum install make 安装ruby源(ruby版本必须要在1.9.3以上,centos自带的是1.8的版本,需要自己编译安装) [[email protected] ~]# yum install ruby rubygems ruby-devel 查看ruby源 [[email protected] ~]# 

利用ADK制作Windows PE来实现系统的备份与还原

一.概述 Windows? 评估和部署工具包 (Windows ADK) 是用于自定义.评估以及向新计算机部署 Windows 操作系统的各种工具的集合. Windows ADK 中可用的功能包括: ? 应用程序兼容性工具包(ACT) ? 部署工具 ? 用户状态迁移工具 (USMT) ? 批量激活管理工具 (VAMT) ? Windows 性能工具包 (WPT) ? Windows 评估工具包 ? Windows 评估服务 ? Windows 预安装环境 (Windows PE)-------à

使用Alien将RPM从DE转换为DEB和DEB转换为RPM包

我相信您已经知道,有很多方法可以在Linux中安装软件:使用您的发行版提供的软件包管理系统(aptitude,yum或zypper,举几个例子),从源代码编译(尽管有些这些天很少见,它是Linux早期唯一可用的方法,或者分别使用dpkg或rpm等低级工具和.deb和.rpm独立的预编译软件包.      使用Alien将RPM转换为DEB和DEB转换为RPM包 在本文中,我们将向您介绍alien,一种在不同Linux包格式之间进行转换的工具,使用.rpm到.deb(反之亦然)是最常用的用法. 这

ArcGIS利用DEM制作简单三维

利用DEM数据镶嵌后,矢量数据裁剪得到研究范围的DEM数据,在ARCScene中进行三维制作 ArcGIS利用DEM制作简单三维 点击学习我的系统教程哦

【PhotoShop】利用PS制作唯美咖啡泡

难得喝杯咖啡,怎么能不拍张了(黑咖啡太苦经常喝实在受不了!) 得到如下图 看着还不错,可是总感觉空空荡荡的,所以就拿来PS练手了.最终效果图如下: 下面讲下制作过程: 首先是给照片加下咖啡泡的效果,找一张有咖啡泡的咖啡~然后选区把咖啡泡部分抠出来 把图片抠出来调整大小适应杯子,然后自然是选择混合选项让他更逼真了. 我这里选择的是点光,当然可以根据个人图片效果选择了.为了让图片更加逼真,我为该图层创建蒙版,并且用黑色画笔涂抹阴暗处(让阴暗处更阴暗)而显得有层次感.效果如图: 现在在加点文字吧.下面

利用CSS制作静态网页的注意事项

利用CSS制作静态网页主要是在<head>里面使用外联CSS文件来赋予网页样式 首先用div分区块,了解网页布局,脑子里面有个大概的页面布局 目前学习写的几种的网页布局可以分为以下几种情况: 1.页面中间 centen ,两边留白 :直接测量 centen 内容的宽度和高度,利用 maigin:auto 让内容居中即可: 2.页面顶部 head 满页面内容 ,下面centen 居中 ,两边留白:head 宽度设为100%,中间centen 内容的宽度和高度,利用 maigin:auto 让内容

利用replaceChild制作简单的吞噬效果【jsDEMO】

[功能说明] 利用replaceChild制作简单的吞噬效果 [HTML代码说明] <ul class="list" id="list"> <li class="in">1</li> <li class="in">2</li> <li class="in">3</li> <li class="in"