欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


Apache遇到的问题 APR not found问题的解决方法
Centos6.0 x64下搭建LAMP环境
如何实现在空间主机下CMS系统和wordpress同时使用
如何在Ubuntu下启动Apache的Rewrite功能
rsync详解之exclude排除文件
rsync命令排除文件和文件夹(exclude-from)
几个常用的Linux操作系统监控脚本代码
Linux shell脚本基础学习详细介绍(完整版)
Magento 后台不能登录
Ubuntu下分区格式化U盘(fdisk&&mkfs)
打deb包、创建 apt源仓库
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

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

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

  deb 软件包里面的结构,它具有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

  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?

  这个可以参考deb 檔的包装

  如何制作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://cydia.reyo.cn,其互联网访问的路径为http: //cydia.reyo.cn/BioinfoServDeb/Version1.1-Xubuntu6.06,那么在/etc/apt /spurce.list中添加:

  deb http://cydia.reyo.cn/BioinfoServD … buntu6.06/ /

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

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站