由于"校验和不匹配"错误,无法将软件包上传到Launchpad的问题。

我在将我的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机器上无问题安装,只是有一些关于我安装在/opt/extras.ubuntu.com/目录下的lintian警告。
我使用以下命令进行上传:
dput ppa:gabrielegreco/massren massren_1.0-0extras12.04.1~ppa2_source.changes
当我使用dput上传时,没有出现错误,签名似乎也没问题,而且公钥也被接受了(因为上传过程中没有要求输入密码)。
dput ppa:gabrielegreco/massren massren_1.0-0extras12.04.1~ppa2_source.changes 检查.changes文件的签名 gpg: 使用RSA密钥ID 49982576于2012年7月2日上午10:00:38 CEST进行签名 gpg: 来自"Gabriele Greco "的有效签名 /home/gabry/no-backup/massren_1.0-0extras12.04.1~ppa2_source.changes的签名有效。 检查.dsc文件的签名 gpg: 使用RSA密钥ID 49982576于2012年7月2日上午10:00:33 CEST进行签名 gpg: 来自"Gabriele Greco "的有效签名 /home/gabry/no-backup/massren_1.0-0extras12.04.1~ppa2.dsc的签名有效。 通过ftp上传到ppa.launchpad.net: 正在上传massren_1.0-0extras12.04.1~ppa2.dsc:完成。 正在上传massren_1.0-0extras12.04.1~ppa2.tar.gz:完成。 正在上传massren_1.0-0extras12.04.1~ppa2_source.changes:完成。 成功上传软件包。

目前我无法从launchpad网站收到回应,但上传并未显示在ppa页面上。

之前的尝试给我发送了不同类型错误的响应邮件:

在更改中提到的文件massren_1.0-0extras12.04.1~ppa1.tar.gz的校验和不匹配。1503fa155226cbc4aba2f8ba9aa11a75 != 294a5e0caf3fe95b0b007a10766e9672
在更改中提到的文件massren_1.0-0extras12.04.1~ppa1.tar.gz的校验和不匹配。1503fa155226cbc4aba2f8ba9aa11a75 != 294a5e0caf3fe95b0b007a10766e9672

或者更加晦涩:

/srv/launchpad.net/ppa-queue/incoming/upload-ftp-20120629-163320-001135/~gabrielegreco/massren/ubuntu/massren_1.0-0extras12.04.1~ppa1.dsc的GPG验证失败:验证失败3次:["(7, 58, u'无数据')", "(7, 58, u'无数据')", "(7, 58, u'无数据')"] 由于之前发生了关键错误,无法进行进一步的错误处理。
你有什么办法解决这个问题吗?我对Ubuntu打包还不熟悉,可能会漏掉一些步骤... 是否有dput的替代方法(也就是手动上传)?
2个回答

似乎问题出在我和launchpad之间的untangle防火墙上。我已经在家里手动上传了文件,并通过FTP发送到launchpad。
由于我无法在OSX上使用"dput",而ncftp也无法正常工作(可能是因为它没有将正确的电子邮件设置为匿名用户的密码),所以我使用了命令行的"ftp"客户端。
无论如何,以下是手动上传的步骤:
- 使用FTP连接到ppa.launchpad.net - 使用anonymous作为用户名 - 使用您在launchpad注册时使用的邮箱地址作为密码 - 切换到~yourlaunchpadusername/yourppa/ubuntu目录 - 上传文件packagename_version.dsc、packagename_version.tar.gz、packagename_version_source.changes - 退出FTP并等待电子邮件确认
如果构建过程未正确完成(在我的情况下,问题是未满足的依赖关系),您必须使用不同的版本上传文件,否则会出现错误(我在最后将~ppa2更改为~ppa3)。

打开文本编辑器,然后在其中打开~/.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