转载:网上对ios插件的介绍
转载内容,比较详细
Cydia中的软件源地址保存在 /etc/apt/sources.list.d/ 目录下,分为两种:
- 以软件包形式安装的软件源,如Cydia默认的软件源,Modmyi、BigBoss等,该类软件源是以独立的.list文件记录软件源地址。
- 由用户在Cydia里输入地址添加的软件源,该类软件源全部保存在 cydia.list中。
以上两种形式的软件源本质没有差别,但只软件源的文件存放位置上是有不同的。
以Saurik自己的软件源为例。打开 saurik.list文件, 可以看到有以下内容 (以#开头的行属于注释,没有实际用途)
deb http://apt.saurik.com/ tangelo-3.7 main
那么,软件源的 Release 文件的地址是 http://apt.saurik.com/dists/tangelo-3.7/Release
Cydia就是通过或许Release文件进而检测软件源的存在,然后再下载记录软件包相关信息的 Packages 文件。
而对于在Cydia中输入软件源地址进行添加的这种源,方法有些不同。因为默认情况下,输入地址以后,Cydia会认为Release文件存放于输入的地址所在的目录下。在list文件中的记录信息为:
deb http://www.xxx.com ./
并不会继续往子目录里检测Release文件。
因此,搭建Cydia软件源首先需要配置服务器上相关目录和文件的存放位置。
取决于软件源的添加方式,文件/目录的路径设置可以分为以下两种情况:
- 只公布软件源的地址,让用户手动输入地址来添加。这种方式的文件/目录设置最为简单。
以威锋源为例,威锋源的地址为 http://app.weiphone.com/cydia
那么在郁闷app.weiphone.com下,存在目录cydia。目录cydia即使软件源所在的目录。
将文件Release放置在cydia目录下即完成了软件源的搭建。
要注意,搭建软件源,必须保证至少有Release和Packages两个文件。- 以软件包的形式安装,即直接在 /etc/apt/source.list.d/ 目录以文件的形式添加,那么这个就没有什么固定的位置了。
基本上仿照Saurik和BigBoss的list文件的格式即可。
list文件格式:do not edit this file to add your own custom sources
this file is subject to be upgraded as part of a package
either add your own .list file to /etc/apt/sources.list.d
or add your entry to the global /etc/apt/sources.list file
deb 软件源地址 项目名 类型
文件名任意
其中,Release文件应放置于 软件源地址/项目名/ 这个目录下,Packages文件放置位置由Release文件来决定(详情见后文)。
之前提到过,搭建软件源必须要有Release和Packages两个文件。前者的作用是记录软件源本身的相关信息,而后者的作用则是记录具体软件包的存放位置和安装信息等数据。
以下是Release文件的格式:
Origin: BigBoss
Label: BigBoss
Suite: stable
Version: 1.0
Codename: BigBoss
Support: http://cydia.saurik.com/support/*
Architectures: darwin-arm iphoneos-arm
Components: main
Description: Apps & Themes! We host your apps. Email me.
MD5Sum:
be8806290d5904cdf45b542706f6a3ad 165020 main/binary-darwin-arm/Packages
03026ac993187b0eecae50466f64fb3c 35049 main/binary-darwin-arm/Packages.gz
93091f5ca485e066d5fc32ca1327830c 3031061 main/binary-iphoneos-arm/Packages
d7aec18dee5b627339b77a9d91e3f92f 368222 main/binary-iphoneos-arm/Packages.bz2
其中红字部分是必填内容,紫色部分是可选内容。
每项的作用:
Origin: 软件源名称,可以使用中文(Cydia的软件源列表中显示的标题)
Label: 同上,也可以使用中文
Suite: 软件源的类型,比如正式源,测试源等,可以分别用stable, beta, unstable等来表示,一般填 stable就可以了
Version: 版本号,这个其实不重要,随便填,一般都是写1.0
Codename: 代码代号,比如BigBoss的就写BigBoss,威锋的就写WeiPhone,也没什么限制,只能用英文
Architectures: 结构。iPhone平台统一写 iphoneos-arm
Components: main
Description: 软件介绍,可以使用中文和html代码,具体能使用哪些代码在下面会介绍。
可选
Support: 支持,没什么作用,除非特别需要,否则可以不要这个。
MD5Sum: 不是必须的,但如果Packages文件位置不与Release文件在同一目录下,则必须有此项。另外,如果需要签名Release文件,也必须有这个。关于MD5Sum的格式,在下文也会介绍。
Description格式
显示在Cydia中每个软件页面最下方。
不能直接换行,如果要实现显示换行显示,可以使用
代码。
要加粗显示,可以使用代码
可以使用html代码设置字体颜色。
不能使用超链接代码。
代码: Description: WeiPhone-威锋网为您提供iPhone所需软件/补丁。
联系我们: weip.com@ gmail.com
实际显示效果如下:
MD5Sum格式
MD5Sum是用来记录Packages即相关文件的文件大小,存放路径和MD5值。
MD5Sum: 之后另起一行,开头要空一格(论坛里用quote或code代码之后都不显示开头的空格)
每行格式是:
空格+文件MD5值+空格+文件大小(以字节为单位)+文件路径 (全部没有+)
而文件路径的格式则有文件存放位置来决定。
如果是没有设置Release文件的路径,那么Release和Packages同在根目录,则路径为 Packages,直接就是文件名,没有其它路径。
如果在之前设置了Release文件的路径,如Saurik和BigBoss,那么Packages 的路径为 main/binary-iphoneos-arm/Packages,起始文件夹,即main,要与Release文件同在一个目录下。main和binary-iphoneos-arm要与Releases中的对应信息相匹配。
对于Packages.gz和Packages.bz2,格式相同,也记得要另起一行。
因此,Packages文件的保存位置就是 软件源地址/dists/main/Codename(与Release文件中一致)/main/binary-iphoneos-arm下。
Release文件的示例可以参看以下几个地址:
http://app.weiphone.com/cydia/Release
http://apt.saurik.com/dists/tangelo-3.7/Release
http://apt.bigboss.us.com/repofiles/cydia/dists/stable/Release
以下是生成Packages文件的方法:
Packages文件格式
Package: 3proxy
Version: 0.5.3k-2
Architecture: iphoneos-arm
Maintainer: Jay Freeman (saurik)
Installed-Size: 1208
Filename: debs/3proxy_0.5.3k-2_iphoneos-arm.deb
Size: 416318
MD5sum: f84cb6764a9df30ab326c17f51de15fd
Section: Networking
Priority: optional
Homepage: http://3proxy.ru/download/
Description: tiny free proxy server
Name: 3proxy
Depiction: http://cydia.saurik.com/info/3proxy/
Tag: purpose::daemon, role::hacker
Packages实质上是deb文件的control信息集合,另外多了deb文件本身的信息。(control文件是记录软件包本身的信息,但没有deb文件本身)
多出的deb文件信息为:
Filename(deb文件位置与文件名)
Size(deb文件大小,字节为单位)
MD5sum(deb文件MD5值) 要保证Cydia能正确获取deb的相关数据,除了以上3个deb文件信息以为,还必须保证至少有以下两项:
Package(软件标识符,相当于身份证号码,用于识别唯一的软件)
Version(软件版本号) 这里重点关注的是Filename。Filename项决定了在服务器上deb文件的存放位置。如果没有上级目录,即deb文件和Packages文件处于同一目录,那么只需要一个单独的文件名就可以了,不需要加上目录名,即xxxx.deb。但这样在软件数量多的时候会导致管理上的混乱。
假设deb文件存放在debs目录下,那么Filename就应该是 debs/xxx.deb 这样的格式。
其余项会在二楼deb制作教程中介绍。
一个软件包的全部信息在Packages文件中是以连续的一段存在,每一行是不同的信息。不同软件之间以空行做分隔。