77范文网 - 专业文章范例文档资料分享平台

超详细制作deb(2)

来源:网络收集 时间:2019-04-02 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

要保证Cydia能正确获取deb的相关数据,除了以上3个deb文件信息以为,还必须保证至少有以下两项:

? ?

Package(软件标识符,相当于身份证号码,用于识别唯一的软件) Version(软件版本号)

这里重点关注的是Filename。Filename项决定了在服务器上deb文件的存放位置。如果没有上级目录,即deb文件和Packages文件处于同一目录,那么只需要一个单独的文件名就可以了,不需要加上目录名,即xxxx.deb。但这样在软件数量多的时候会导致管理上的混乱。

假设deb文件存放在debs目录下,那么Filename就应该是 debs/xxx.deb 这样的格式。

其余项会在二楼deb制作教程中介绍。

一个软件包的全部信息在Packages文件中是以连续的一段存在,每一行是不同的信息。不同软件之间以空行做分隔。

如何生成Packages文件

方法一: 引用

环境:任何支持dpkg命令的unix系统

工具:dpkg及相关组件。

? ? ? ? ?

iPhone OS(已越狱):自带dpkg-deb命令,无dpkg-scanpackages命令 Debian/Ubuntu:自带dpkg-deb和dpkg-scanpackages命令 Fedora: 无dpkg相关命令

Mac OS X:无任何dpkg相关命令 Windows:非unix系统,无dpkg相关命令

以上系统中,Fedora不支持dpkg,也无法通过安装系统组件来支持dpkg,因此Fedora系统不能用于生成Packages文件。

而对于Mac OS X系统,本身虽然不支持dpkg,但可以通过安装一个叫 Fink 的软件来获得dpkg命令。

Fink 下载页面:http://www.finkproject.org/download/ 如何安装请见官网说明。

对于Windows系统,可以通过安装 Cygwin + dpkg 来获取dpkg命令。 Cygwin下载地址: http://www.cygwin.com/setup.exe dpkg命令可以直接在Cygwin中获取。

但个人不推荐在Windows下使用dpkg,因为Cygwin体积很大,与其安装这个,还不如直接安装个Ubuntu来的简单。

各个系统下生成Packages的方法基本一样。

最简单的方法是利用dpkg-scanpackages命令来制作Packages文件。

iPhone OS 不适用(因为没有这个命令)

1. 2. 3.

将需要发布的deb文件放在一个目录,比如说debs下 命令行里进入到debs目录的上级目录 执行命令 复制代码

1. dpkg-scanpackages debs > Packages

,其中debs为deb存放目录。运行该命令可能需要root权限,可以使用root帐户登录,login root 或 su root 或使用sudo 4. 如图所示

Packages存放于当前目录

如果指定的文件夹不存在,则提示 dpkg-scanpackages: error: Binary dir ebs not found 如果在指定的文件夹内没有deb文件,则提示 Wrote 0 entries to output Packages file.

注意:Debian/Ubuntu系统下的dpkg-scanpackages命令不会输出Name,Author,Sponsor,Depiction

等信息不会自动添加进去,所以需要手动加入这些数据。Mac OS X下无此问题。

以dpkg-scanpackages命令来生成Packages文件有一个很大的限制,就是必须保留全部要发布的和已经发布的deb文件,在deb数量多的情况下会浪费大量磁盘空间。

因此可以使用改进命令: 复制代码

1. dpkg-scanpackages debs >> Packages ,这样不会每次都重新生成Packages文件,而是将debs目录下的deb信息添加到已有的Packages文件末尾。在新增软件的时候没什么问题,但如果是软件更新,那么就会出现重复条目的问题,这时候需要手动删除旧的软件包信息。 方法二 引用

上面的方法里也提到过,可以直接编辑Packages文件,因此用文本编辑器将相关数据写入Packages也是可以的,只是这样工作量会比较大,但这种方法没有系统的限制,任何系统下,不管有没有dpkg相关命令都可以使用。格式也是一样的,每项之间只要把Packages放在第一个就可以了,其余项没有顺序要求。

由于绝大部分数据可以从control里直接复制,需要自己获取的就只有Filename,Size和MD5sum。

在Unix系统下,包括Mac OS X和Linux,以及iPhone OS,获取文件大小可以使用命令 ls -l ;获取MD5值可以使用命令 md5sum

另外,在Windows下要解包deb文件可以使用7-zip,control 文件位于 control.tar.gz 下

方法三 (2010/03/23更新scandebs脚本) 引用

生成Packages和Release文件只是最基础的步骤,实际还需要压缩Packages文件,有时候还需要签名Release文件,为了简化操作,我自己写了一个脚本,具有以下功能:

? ? ? ? ? ? ?

自动从服务器上获取 Packages 文件,不需要每次都事先准备 自动生成Release文件

自动生成Packages,Packages.bz2和Packages.gz 在生成Packages文件之后无需保留deb文件 保留control里的全部信息 不会出现重复条目 自动签名Release文件

http://app.weiphone.com/files/scandebs.tar.gz

更新记录 (8/11 v1.3):

1. 修正grep命令精确匹配问题

2. 若不存在debs目录或debs目录下无deb文件,退出 3. 现在可以在Linux和BSD(iPhone和Mac)系统下使用了 4. 其它优化

更新记录 (5/13 v1.2):

1. 针对mac系统下无md5sum命令的问题,用openssl md5 FILE来获取文件MD5值 2. 规范control文件格式(强制将Package项放在第一行)

3. 完全自动模式,无需用户在签名Release时输入密码(需自行修改一下脚本,方法见下文)

更新记录 (3/23 v1.1):

1. 修正了Release中Packages.gz项的拼写错误

2. 增加参数功能,可以显示帮助,版本号,自选是否签名Release 3. 每次生成Packages时会按Package标识排序

使用之前需要先修改下脚本(只需修改一次即可)【因为更新过,所以图片所示的行数已不匹配了,但是

内容基本还是一样的。】 1.

第46行,将wget后的地址改为自己源的Packages的地址

另外,因为iPhone OS本身没有wget这个命令,可以去Cydia安装一个wget。使用此命令需要联网,否则请事先准备好Packages文件。 2.

第132,136,140这三行,将Packages,Packages.bz2和Packages.gz根据需要自己修改(如果需要指定这几个文件的存放位置)

3.

第151-158行,引号内的内容根据需要自己来修改(此部分用于生成Release文件)

4.

第166行,引号内的内容修改为自己的私匙的用户名和密

码 5. 6.

Ubuntu 用户请注意:Ubuntu下的 GPG 默认开启了use-agent功能,所以在签名Release的时候会弹出一个提示框,而这个提示框根本就没用,所以要禁用。

禁用方法:打开 ~/.gnupg/gpg.conf (~表示当前用户)或者直接用命令

复制代码

1. gedit ~/.gnupg/gpg.conf

搜索 use-agent,将其注释掉(即修改为 #use-agent)

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库超详细制作deb(2)在线全文阅读。

超详细制作deb(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/568025.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: