|
发表于 2025-5-12 00:11:25
手动修改Packages注意事项引用
前面说过,Packages文件可以手动编辑,有时候仅仅需要更改一些字段的内容,如果因为这个要重新打包deb,不一定合算,因此手动编辑Packages可以省下一些工作量。以下是一些注意事项:
- 以下字段不可修改:Package,Version,Size,MD5Sum,Depends,Pre-Depends,Provides,Conflicts,Replaces
- 其余字段可以任意修改,无需与deb里的control一致,因为Cydia本身不是读取的control的数据,而是从Packages中获取数据。
- 修改字段以后,如果以dpkg-scanpackages重新生成Packages,那么修改过的部分会被还原成control里的原始数据。
签名Release的方法
引用
- 获取用于签名的GPG密匙(方法见下文)
- 运行命令[url=]复制代码[/url]
- gpg -abs -r "HuangRui" -o Release.gpg Release
其中引号内的字符串为用于签名的密匙的用户名(用于区分不同的签名密匙) - 输入密码
- 完成

为什么要签名Release
虽然不签名Release文件也没什么大的问题,但是签名Release有以下几个用途:
- 解决Cydia刷新出现的 Wrong language code zh-Hans 或 Wrong language code zh-Hant 的问题(当然如果别的源有这个问题的话还是会报错)
- 所有源内的数据均经过验证,确保安全(见图)
上传至服务器
引用
- 将Packages文件压缩为Packages.bz2(压缩格式 bzip2)和Packages.gz(压缩格式:gz) (如果是用的我写的脚本则可省略自己压缩的这一部)
- 修改Release文件(主要是MD5值和文件大小)
- 【可选】签名Release文件,生成Release.gpg
- 将Release,Release.gpg,Packages,Packages.bz2和Packages.gz以及要更新的deb文件上传到服务器指定位置。
- 以上所有文件的属性需设为0755(在ftp上设置)
用于签名Release的密匙
生成密匙
可以看看这个页面 http://keyring.debian.org/creating-key.html
生成密匙的操作是在命令行下完成,其中还需要有人机交互,所以WinSCP的命令行是不能用的,如果需要使用iPhone来生成密匙,请使用Putty或者其它SSH终端工具来连接。
运行命令[url=]复制代码[/url]
提示引用
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之间的一个数值,数值越大,加密强度越高,但每次加密和解密需要的时间更多。
我这里输入的是2048
引用
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+回车(小写y,如果要重新做则是大写N)
Real name:
输入该密匙所有者的名称,例如 WEIP Tech Team
Email address:
密匙所有者邮件地址,自己输入
Comment:
注释,怕分不清楚的话可以加点内容进去
引用
You are using the `utf-8′ character set.
You selected this USER-ID:
“WEIP Tech Team <weip.com@gmail,com>
继续
引用
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
上面输错的话,名字错了就输入N,加上注释就输入C,邮件错误就输入E,不保存退出输入Q,确定输入O
引用
You need a Passphrase to protect your secret key.
设置密码,该密码在每次使用加密时都要使用,必须牢记。输入时不会明文显示,回车后会要你再输一遍以匹配。
设完密码之后就自动执行了。
注意,在结果里面有一句引用
gpg: key 0A02728F marked as ultimately trusted
public and secret key created and signed.
这串字符就是所谓的密匙标识了
如果需要为这个密匙添加另外的使用者,可以用以下命令
[url=]复制代码[/url]
- gpg --edit-key 0x0A02728F
密匙前面要加上数字0和字母x
command> 后输入
[url=]复制代码[/url]
之后的操作跟前面的一样,不过在要输密码的时候只是要验证身份,不是创建密码。
最后在command>后输入
[url=]复制代码[/url]
假设创建了两个用户,A和B,原本是A拥有最高权限,要改为B拥有最高权限
执行以下命令:
[url=]复制代码[/url]
- gpg --edit-key 0x0A02728F
command> 后输入
[url=]复制代码[/url]
然后输入[url=]复制代码[/url]
输入密码后在command>后输入
[url=]复制代码[/url]
经过以上操作就成功生成了一个可以用于签名的密匙。
导出公匙
引用
用于加密/签名的是刚刚申请到的私人密匙(Private Key),而要发布的是公匙(Public Key)
运行命令[url=]复制代码[/url]
- gpg --export 0A02728F > weiphone-keyring.gpg
文件名自己决定
之后将生成的公匙发布就可以了。
导入公匙
引用
需要导入公匙的是软件源的用户,下载公匙文件以后,让用户自己运行命令[url=]复制代码[/url]
- apt-key add weiphone-keyring.gpg
导出私人密匙
引用
有时候软件源不是一个人在维护,如果是多个人维护的话可能需要导出私人密匙以共其他人加密/签名。
运行命令[url=]复制代码[/url]
- gpg --export-secret-key -a "User Name" > private.key
User Name是自己在生成密匙的时候输入的用户名,最后生成的文件,文件名随意,但切记,这个密匙不要泄漏出去。
导入私人密匙
引用
得到私人密匙之后就是导入了,运行命令[url=]复制代码[/url]
- gpg --allow-secret-key-import --import private.key
|
|