![由于“校验和不匹配”错误,无法将包上传到 Launchpad](https://linux22.com/image/1110534/%E7%94%B1%E4%BA%8E%E2%80%9C%E6%A0%A1%E9%AA%8C%E5%92%8C%E4%B8%8D%E5%8C%B9%E9%85%8D%E2%80%9D%E9%94%99%E8%AF%AF%EF%BC%8C%E6%97%A0%E6%B3%95%E5%B0%86%E5%8C%85%E4%B8%8A%E4%BC%A0%E5%88%B0%20Launchpad.png)
我在将我的 showdown 项目上传到 PPA 时遇到了很多问题。
我已经正确设置了 PGP 密钥和我的公共 SSH 密钥到 Launchpad。我已经使用 debuild 打包了我的 C++ 项目,生成了一个源包,lintian 只给了我两个警告,我认为这两个警告对于 showdown 规则来说是可以接受的:
W: massren source: native-package-with-dash-version
W: massren source: binary-nmu-debian-revision-in-source 1.0-0extras12.04.1~ppa2
生成二进制包也行得通,并且包在我的 Ubuntu 12.04“Precise”机器上安装没有问题。我只收到了一些关于我将文件安装到/opt/extras.ubuntu.com/<packagename>
.
我正在使用以下命令上传:
dput ppa:gabrielegreco/massren massren_1.0-0extras12.04.1~ppa2_source.changes
当我使用 dput 上传时,没有出现任何错误,签名似乎没问题,公钥似乎也被接受了(因为上传无需输入密码即可进行……)。这是来自的输出dput
:
$ dput ppa:gabrielegreco/massren massren_1.0-0extras12.04.1~ppa2_source.changes
Checking signature on .changes
gpg: Signature made Mon 02 Jul 2012 10:00:38 AM CEST using RSA key ID 49982576
gpg: Good signature from "Gabriele Greco <[email protected]>"
Good signature on /home/gabry/no-backup/massren_1.0-0extras12.04.1~ppa2_source.changes.
Checking signature on .dsc
gpg: Signature made Mon 02 Jul 2012 10:00:33 AM CEST using RSA key ID 49982576
gpg: Good signature from "Gabriele Greco <[email protected]>"
Good signature on /home/gabry/no-backup/massren_1.0-0extras12.04.1~ppa2.dsc.
Uploading to ppa (via ftp to ppa.launchpad.net):
Uploading massren_1.0-0extras12.04.1~ppa2.dsc: done.
Uploading massren_1.0-0extras12.04.1~ppa2.tar.gz: done.
Uploading massren_1.0-0extras12.04.1~ppa2_source.changes: done.
Successfully uploaded packages.
目前我没有收到来自 Launchpad 网站的回复,但上传内容未显示在 PPA 页面上。
之前的尝试给我的回复电子邮件包含不同类型的错误:
File massren_1.0-0extras12.04.1~ppa1.tar.gz mentioned in the changes has a checksum
mismatch. 1503fa155226cbc4aba2f8ba9aa11a75 != 294a5e0caf3fe95b0b007a10766e9672
File massren_1.0-0extras12.04.1~ppa1.tar.gz mentioned in the changes has a checksum
mismatch. 1503fa155226cbc4aba2f8ba9aa11a75 != 294a5e0caf3fe95b0b007a10766e9672
或者更隐晦地说:
GPG verification of
/srv/launchpad.net/ppa-queue/incoming/upload-ftp-20120629-163320-001135/~gabrielegreco/massren/ubuntu/massren_1.0-0extras12.04.1~ppa1.dsc
failed: Verification failed 3 times:
["(7, 58, u'No data')", "(7, 58, u'No data')", "(7, 58, u'No data')"]
Further error processing not possible because of a critical previous error.
有什么办法可以解决这个问题吗?我是 Ubuntu 打包新手,所以可能会错过一些步骤……有没有其他方法dput
(又称手动上传)?
答案1
问题似乎出在我和 launchpad 之间的 untangle 防火墙上。我在家里手动上传了文件,并通过 FTP 将它们发送到 launchpad。
我使用命令行“ftp”客户端,因为我无法在 OSX 上使用“dput”,并且 ncftp 不起作用(可能是因为它没有将正确的电子邮件设置为匿名用户的密码)?
无论如何,这是手动上传的顺序:
- 通过 FTP 连接到 ppa.launchpad.net
- 使用匿名用户
- 使用您注册 launchpad 时使用的邮箱地址作为密码
- 将目录更改为 ~yourlaunchpadusername/yourppa/ubuntu
- 上传文件 packagename_version.dsc、packagename_version.tar.gz、packagename_version_source.changes
- 退出 FTP 并等待电子邮件确认。
如果您的构建没有正确完成(在我的情况下问题是一个未满足的依赖关系)您必须上传不同版本的文件,否则您会收到错误(我最终将~ppa2 更改为~ppa3)。
答案2
~/.dput.cf
在文本编辑器中打开并添加以下文本:
[your-ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~<your_launchpad_id>/<ppa_name>/ubuntu/
login = your_launchpad_id
allow_unsigned_uploads = 0
保存文件,退出文本编辑器,然后运行:
dput your-ppa *_source.changes