1. 云栖社区>
  2. 技术文集>
  3. 列表>
  4. 正文

打deb包、创建 apt源仓库

作者:用户 来源:互联网 时间:2016-07-09 09:04:39

软件文件package controldebversion仓库软件包buntu

打deb包、创建 apt源仓库 - 摘要: 本文讲的是打deb包、创建 apt源仓库,    如何制作Deb包和相应的软件仓库,其实这个很简单。这里推荐使用dpkg来进行deb包的创建、编辑和制作。   首先了解一下deb包的文件结构:   deb 软件包里面的结构,它具有DEB

   如何制作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软件仓库了。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有 的相关内容,欢迎继续使用右上角搜索按钮进行搜索软件 , 文件 , package control , deb , version , 仓库 , 软件包 buntu apt get deb、apt get install deb、apt get 安装deb、apt deb、apt 安装 deb,以便于您获取更多的相关知识。

ubuntu-Ubuntu apt安装图形界面

...reparing to replace ubuntu-docs 12.04.4 (using .../ubuntu-docs_12.04.4_all.deb) ... Unpacking replacement ubuntu-docs ... dpkg: error processing /var/cache/apt/archives/ubuntu-docs_12.04.4_all.deb (--unpack): symbolic link '/usr/share/help/ast/ubuntu-help/a11y-locate-pointer.page' size...

APT-mirror 配置 Ubuntu 本地软件仓库的简单四个步骤

...件包被镜像或下载。2. 配置 APT-Mirror 现在,在你的硬盘上创建一个目录来保存所有的软件包。例如,我们创建一个名为 /linoxide的目录,我们将在这个目录中保存所有的软件包:     $ sudo mkdir /linoxide 现在,打开文件 /etc/apt/mirror...

简易搭建Ubuntu源服务器

...将dists目录拷贝到Apache服务器根目录的ubuntu目录下,或者创建符号链接。 5、其它查看一个dpkg-scanpackages命令属于哪个软件包:apt-file search dpkg-scanpackages | grep bin 6、参考链接https://help.ubuntu.com/community/Debmirrorhttps://help.ubuntu.com/communi...

Linux(Ubuntu16.04)+MySQL Community Server 5.7.17安装(使用MySQL5.7deb安装包)

...urces.list文件      1.3 执行更新命令 2下载用于ubuntu16.04的deb安装包 3、执行安装      3.1解压缩      3.2执行升级并安装一些依赖      3.3按顺序安装一堆deb程序包      3.4执行修复依赖的命令继续安装deb程序包      4简单测试...

Linux常用命令大全

...tree 显示文件和目录由根目录开始的树形结构(2) mkdir dir1 创建一个叫做 'dir1' 的目录' mkdir dir1 dir2 同时创建两个目录 mkdir -p /tmp/dir1/dir2 创建一个目录树 rm -f file1 删除一个叫做 'file1' 的文件' rmdir dir1 删除一个叫做 'dir1' 的目录'...

前三篇
后三篇