Control文件编写及相关格式

DEBIAN目录下的control文件编写,格式及注意的地方

必须是UTF-8,Unix编码,Unix/Linux换行符(LF)
,不符合规范的control会导致Cydia无法打开。文件末尾需有一个空行。 1. Package: 软件包标识符。
类似于身份证,一个软件包必须要有一个唯一的标识符。通常是用com.xxx.abc这样的形式来命名。
  1. Architecture: 架构。

    用于标识运行的系统,iPhone上为iphoneos-arm。

  2. Version: 版本号。
    不能用下划线和逗号和空格。格式有(以逗号分隔) 1.0,1.0f,0-1,1:1.0,其中1:1.0这种格式比较特殊,在Cydia中,1:1.0仍然会显示为1.0,但版本号实际是高于1.0的。

以上3项是必须的,缺了任何一项deb打包就不能成功。 以下均为可选项:

  1. Name: 软件包在Cydia中的显示名称。
    中英文不限,也可以用空格,但不宜过长(长了显示不完全)。
  1. Author: 软件作者。

  2. Maintainer: 维护者。

    一般是软件源的拥有者。

  3. Sponsor: 负责人。

    可以是个人也可以是网站。

  4. Author,Maintainer,Sponsor 的格式相同。均为“名称+空格+<邮件地址或网址>”。

    经测试,如果名称为中文的话,即使写了邮件地址和网址,在Cydia中点击也不会跳转。如果没有邮件地址或网址,则不需要“<>”及“<>”中的内容。中文名或未提供邮件/网址,无“>”符号 。

  5. Icon: 指定软件包的图标显示。
    当无Icon设定时,Cydia会显示该软件包所在的分类的图标。
    格式:在线地址,如
    http://www.abc.com/abc.png

    本地地址:file://+路径,如
    file:///Applications/Cydia.app/Sources/app.weiphone.com.png

    注:在软件页面(非列表页面),自定义的图标是不会显示的,显示的是分类图标。

  6. Section: 软件分类。
    中英文无限制,排列顺序是 英文->中文。
    另外,如果在分类加上“[ ]”,比如 [工具],那么这个是排在最前面的。

  7. Installed-Size: 解包后的文件大小。

    可以有小数位,以kb为单位,不需要注明kb,这个不需要很精确,而且小数位在Cydia里显示不出来(不是四舍五入,全部舍了)。至于文件大小是否包含DEBIAN目录中的内容就随意了。

  8. Priority: 优先级。可填
    Required,
    Important,
    Standard,
    Optional,
    Extra。
    依次为
    必须,
    重要,
    一般,
    可选,
    次要。
    虽然没有什么实际作用,但优先级为Required和Important的软件包在卸载时会有警告,这样可以避免删除一些系统必须的软件。但Required和Important不要滥用,一般用Standard,Optional或Extra即可。优先级在Cydia中是不会显示的

  9. Essential: 是否必须软件包,可填 yes 和 no, 填yes则为必须软件包,卸载时Cydia会有警告。卸载Essential标记为yes的软件包可能会导致系统问题。当然此功能需慎用,不要因为不希望用户删除自己的软件而加入Essential: yes。如果没有Essential这项的话默认就是非必须的,相当于Essential: no。

  10. Depends: Depends 字段应该包含您的软件包正常工作绝对必需的任何软件包的名称。

  11. Pre-Depends: "Pre-Depends"是为特例而保留的。当某个软件包被作为"Pre-Depends"列出时,它强制系统在试图安装您的软件包之前完全安装所指定的软件包。

  12. Conflicts: 冲突软件包。比如软件包A和B有冲突,不能同时安装。比如说A和B冲突,当系统已经安装了A的时候尝试安装B,则不能继续。

  13. Provides: 提供的软件包,比如说软件包A包含B的全部功能,那么则是A provides B,因此可以在安装了A的前提下不安装B。但此功能在非Cydia的软件管理工具中可能会无法识别(实际是这些软件不合deb标准)

  14. Replaces: 替换软件包,安装A会替换B。


    以上5项的格式相同,直接填软件包的Package标识即可,如果需要加入版本号,则为 软件表标识+空格+(判断符号 版本号)。 比如 Depends: apt-key, firmware (>=3.0), 这表示依赖于apt-key,不限版本,firmware,且版本大于或等于3.0。

判断符号:

远远低于(<<)、
低于(<)、
低于或等于(<=)、
仅等于(=)、
等于或高于(>=)、
大于(>)、
以及远远高于(>>)。

表示多个软件包,以英文逗号分隔。表示“或”关系,用 | 分隔。比如软件包C依赖于A或B,可写Depends: A | B。 但“或”关系要慎用。原因是,当不存在“或”关系的时候,假设B依赖于A,且系统并未安装A,那么在Cydia中安装B的时候会自动下载安装A。而假如说C依赖于A或B,且A与B都未安装,那么在安装C的时候就会失败,因为系统无法判断是应该下载A还是B。除非系统已经安装了A或B,否则C不能安装。一个特殊的依赖:firmware。这个Package记录了固件版本,在对固件版本有要求的软件包上特别重要。假设B依赖于A,那么在卸载A的时候也会一起卸载B.

  1. Description: 软件描述,不能在control里直接换行,如果需要实现换行显示,可以使用
    代码。当指定了Depiction时,在软件查看页面不会显示Description。

  2. Depiction: 功能类似于软件描述,链接到一个网页,以网页的内容代替软件描述。只在软件查看页面显示,在软件包列表页面不显示。 可以使用本地网页,格式同Icon。 注意:此功能可能会消耗大量网络流量。

  3. Homepage: 链接到页面,Cydia中显示为More Information。 页面不会主动加载。

  4. Tag: 标签,用于分类软件包信息。 purpose:: 软件包类型,比如软件源,命令行,库等等。purpose::console表示该软件为命令行界面。可选项有
    commercial,
    console,
    daemon,
    extension,
    library,
    uikit,
    x,
    对应图标文件在 /Applications/Cydia.app/Purposes 目录下。也可以自行添加 purpose 分类,并加入同名图标即可。

  5. role:: 软件包使用者归类。
    developer开发者,
    hacker骇客,
    enduser普通用户。
    该标签用于Cydia中软件包显示过滤。 cydia::commercial Cydia Store软件。

添加新评论

返回顶部