当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 再发,转载: deb 文件打包, 创建 apt 源仓库
帖子发表于 : 2008-10-07 18:30 
头像

注册: 2007-03-13 17:26
帖子: 2254
送出感谢: 0 次
接收感谢: 1
http://www.bioinfoserv.org/BioLinux/mod ... opic_time=



有很多人再问,如何制作Deb包和相应的软件仓库,其实这个很简单。这里推荐使用dpkg来进行deb包的创建、编辑和制作。

首先了解一下deb包的文件结构:

deb 软件包里面的结构如附件图(deb-structure.JPG),它具有DEBIAN和软件具体安装目录(如etc, usr, opt, tmp等)。在DEBIAN目录中起码具有control文件,其次还可能具有postinst (postinstallation)、postrm (postremove)、preinst(preinstallation)、prerm (preremove)、copyright (版权)、changlog (修订记录)和conffiles等,如附件图形。

control: 这个文件主要描述软件包的名称(Package),版本(Version)以及描述(Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引。同时为了能将软件包进行充分的管理,可能还具有以下字段:

Section: 这个字段申明软件的类别,常见的有`utils', `net', `mail', `text', `x11' 等;

Priority: 这个字段申明软件对于系统的重要程度,如`required', `standard', `optional', `extra' 等;

Essential: 这个字段申明是否是系统最基本的软件包(选项为),如果是的话,这就表明该软件是维持系统稳定和正常运行的软件包,不允许任何形式的卸载(除非进行强制性的卸载)

Architecture:申明软件包结构,如基于`i386', `m68k', `sparc', `alpha', `powerpc' 等构建,选项 为;

Source: 软件包的源代码名称;

Depends: 软件所依赖的其他软件包和库文件。如果是依赖多个软件包和库文件,彼此之间采用逗号隔开;

Pre-Depends: 软件安装前必须安装、配置依赖性的软件包和库文件,它常常用于必须的预运行脚本需求;

Recommends: 这个字段表明推荐的安装的其他软件包和库文件;

Suggests: 建议安装的其他软件包和库文件。

对于control,这里有一个完整的例子,:


Package: bioinfoserv-arb
Version: 2007_14_08
Section: BioInfoServ
Priority: optional
Depends: bioinfoserv-base-directories (>= 1.0-1), xviewg (>= 3.2p1.4), xfig (>= 1:3), libstdc++2.10-glibc2.2
Suggests: fig2ps
Architecture: i386
Installed-Size: 26104
Maintainer: Mingwei Liu <lmingwei@gmail.com>
Provides: bioinfoserv-arb
Description: The ARB software is a graphically oriented package comprising various tools for sequence database handling and data analysis.
If you want to print your graphs you probably need to install the suggested fig2ps package.


preinst: 这个文件是软件安装前所要进行的工作,工作执行会依据其中脚本进行;

postinst这个文件包含了软件在进行正常目录文件拷贝到系统后,所需要执行的配置工作。

prerm :软件卸载前需要执行的脚本

postrm: 软件卸载后需要执行的脚本

现在来看看如何修订一个已有的deb包软件

假如您已经从本BioInfoServ Deb仓库中获取了bioinfoserv-base-directories_1.1-22_i386.deb,采用dpkg -x bioinfoserv-base-directories_1.1-22_i386.deb bioinfoserv-base-directories
这样,您就可以将已经打包好的bioinfoserv-base- directories_1.1-22_i386.deb解开在bioinfoserv-base-directories的目录中,此时解开的软件包在 bioinfoserv-base-directories目录中就是一些文件目录和相应的文件。

采用dpkg -e bioinfoserv-base-directories_1.1-22_i386.deb bioinfoserv-base-directories/DEBIAN

此时,就可以将bioinfoserv-base-directories_1.1-22_i386.deb软件包的规则文件解开,可以看见control、postrm等包含脚本的文件,如果要修改软件的信息和安装行为,那么就打开这些文件,进行修改。

修改完成,可以采用dpkg -b bioinfoserv-base-directories bioinfoserv-base-directories_1.1-22_i386.deb重新包装这个软件包。

如何从源码打包deb?

这个可以参考http://www.study-area.org/tips/opentools/opentools/x1425.html

如何制作deb仓库?
一个简单的deb仓库可以采用apt-get install *的方式来进行快速软件安装。制作软件包仓库其实很简单:

首先, 将制作好的deb包放在一个目录下,当然您也可以依据软件名称建立子目录,再存放deb包,如您建立一个Version1.1-Xubuntu6.06的目录存放已经建立的软件包

随后,采用sudo dpkg-scanpackages Version1.1-Xubuntu6.06 /dev/null | gzip -9c >Packages.gz建立仓库索引文件

然后,解开Packages.gz以便编辑:gzip -d Packages.gz, 此时得到Packages文件

编辑,nano Packages,采用替换功能去掉Packages里面的Version1.1-Xubuntu6.06/字段,然后保存

重新打包gzip Packages Packages.gz放到目录Version1.1-Xubuntu6.06中。

现在设定/etc/apt/sources.list中的仓库源,如果Version1.1-Xubuntu6.06目录在你系统中的/var/www/Version1.1-Xubuntu6.06下的话,可在/etc/apt/sources.list加入:
deb file:////var/www/Version1.1-Xubuntu6.06/ /

保存后,采用apt-get update更新,此时就可以采用apt-get install bioinfoserv-base-directories_1.1-22_i386.deb安装你创建好的deb软件了。

当然如果您需要将这个软件仓库发布到互联网上,假定您的网络地址为http://www.bioinfoserv.org,其互联网访问的路径为http://www.bioinfoserv.org/BioinfoServDeb/Version1.1-Xubuntu6.06,那么在/etc/apt/spurce.list中添加:

deb http://www.bioinfoserv.org/BioinfoServD ... buntu6.06/ /

此时,其他人就可以采用互联网使用您的deb软件仓库了。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 再发,转载: deb 文件打包, 创建 apt 源仓库
帖子发表于 : 2008-10-07 20:15 
头像

注册: 2008-02-17 23:47
帖子: 22108
地址: 美丽富饶的那啥星球
送出感谢: 11
接收感谢: 82
收藏!
:em11


_________________
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 再发,转载: deb 文件打包, 创建 apt 源仓库
帖子发表于 : 2008-10-07 21:18 
头像

注册: 2008-07-21 9:44
帖子: 2371
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
mark,留待以后学习


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 再发,转载: deb 文件打包, 创建 apt 源仓库
帖子发表于 : 2008-10-16 8:50 

注册: 2008-08-04 15:16
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
好贴,内容集中,^_^ :em09


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 再发,转载: deb 文件打包, 创建 apt 源仓库
帖子发表于 : 2008-10-17 17:18 

注册: 2008-08-26 17:10
帖子: 89
送出感谢: 0 次
接收感谢: 0 次
:em20 收藏以后看


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 再发,转载: deb 文件打包, 创建 apt 源仓库
帖子发表于 : 2009-03-09 19:23 

注册: 2008-06-10 18:15
帖子: 20
送出感谢: 0 次
接收感谢: 0 次
Thanks a lot for LZ's working hardly.


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 再发,转载: deb 文件打包, 创建 apt 源仓库
帖子发表于 : 2009-03-10 11:28 

注册: 2008-08-22 20:04
帖子: 62
送出感谢: 0 次
接收感谢: 0 次
收藏 :em11


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:MSNbot Media 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译