一句话,就是教你怎么搭建自己的cydia源。
cydia源的文件结构包含:
- Release
- Release.gpg
- Packages
- Packages.bz2
- Packages.gz
- favicon.ico
- CydiaIcon.png
- debs (存放deb文件)
Release文件的格式
Origin: Cydia/Telesphoreo
Label: Cydia/Telesphoreo
Suite: stable
Version: 1.0r282
Codename: tangelo-3.7
Architectures: darwin-arm iphoneos-arm
Components: main
Description: Distribution of Unix Software for iOS
Support: https://cydia.saurik.com/api/support/*
必需
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代码设置字体颜色。 不能使用超链接代码。
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
生成Packages文件
Packages 实质上是deb文件的control信息集合,另外多了deb文件本身的信息。(control文件是记录软件包的信息,但没有deb文件本身)
环境:任何支持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。还是推荐在Debian/Ubuntu系统下生成Packages。
1.将需要发布的deb文件放在目录debs下
2.命令行里进入到debs目录的上级目录
3.执行命令
dpkg-scanpackages debs > Packages
tar zcvf Packages.gz Packages
bzip2 -k Packages Packages.bz2
这样Packages就完成了,另外,上面的三行代码可以保存为脚本,比如pack.sh,以后每次生成的时候在终端里执行 sudo ./pack.sh
然后输入密码。
Release文件签名
为什么要签名Release?
虽然不签名也是可以的,但是签名有几个用途:
- 解决Cydia刷新出现的
Wrong language code zh-Hans
或Wrong language code zh-Hant
文件 - 源内的数据均经过验证,确保安全
在Release文件填写之后,先生成一个密钥
在终端运行命令
gpg --gen-key
提示
Please select what kind of key you want:
(1) DSA and Elgamal (default)
(2) DSA (sign only)
(5) RSA (sign only)
Your selection?
选 1 ,默认即可。
确认后
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
输入1024~4096之间的一个数值,数据越大,加密强度越高,当然耗费的时间也越多。
默认即可。
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y
密钥有效时间,选0,默认即可,在输入‘y’确认后,需要填写身份信息。
Real name:输入密钥所有者的名称,
Email address :邮件地址,
Comment:可以不填,可以填写一些区分信息。
用生成的密钥
在终端里输入
gpg -abs -r "你刚才的密钥名字" -o Release.gpg Release
引号中的字符串为用于签名的密钥的用户名(区别不同的签名密钥)
上传到空间
现有文件如下
将所有文件上传到根目录或者二级目录下,把文件的权限为0755。
资料:
版权声明:本文为原创文章,版权归 neo 所有。
本文链接:https://idayer.com/how-to-host-a-cydia-repository/
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
0 条评论