分支Launchpad仓库时出现了Bazaar错误。

我尝试按照这个指南在Ubuntu 12.04中安装Ubuntu电视。

一切都很顺利,直到我在终端执行bzr branch lp:~s-team/ubuntutv/trunk ubuntu-tv时。我收到以下错误信息:

权限被拒绝(publickey)。读取'BzrDir.open_2.1'的响应时连接重置,正在重试权限被拒绝(publickey)。bzr:错误:连接关闭:意外的消息结束。请检查连接性和权限,并在问题持续存在时报告错误。

3个回答

似乎你的bzr配置有问题。我以前也因为网络防火墙而遇到过这些问题,只需要清除我的bzr配置就可以解决。
你可以尝试以下步骤,看看是否有效:
mv .bazaar .bazaar.backup/

这样做会为您提供一个全新的bzr配置设置,然后您可以尝试再次分支ubuntu-tv。
bzr branch lp:~s-team/ubuntutv/trunk ubuntu-tv

谢谢!但是现在,当我运行相同的命令时,我得到了这个错误信息:权限被拒绝(公钥)。 读取'BzrDir.open_2.1'响应时连接重置,正在重试。 权限被拒绝(公钥)。 bzr:错误:连接关闭:意外的消息结束。请检查连接和权限,并且如果问题持续,请报告错误。 - Aleksi Kinnunen
@AleksiKinnunen 你确定你执行了第一个命令吗?如果你执行了,就不会出现任何错误。如果你还是有错误,检查一下是否有网络防火墙。 - jokerdino
我下载了gufw防火墙管理器,但是防火墙却被禁用了。我已经运行了所有必要的操作。 - Aleksi Kinnunen
如果你在执行 mv .bazaar .bazaar.backup/ 之后还执行了 bzr launchpad-login myusername,那么这个解决方案就不会起作用。要解决 OP 中的问题,你需要确保你有一个有效的 SSH 密钥(本地和在 Launchpad 上都需要)。请查看 其他答案 - landroni

你似乎在通过SSH连接到Launchpad时遇到了问题。请确保你在Launchpad上注册了一个公共SSH密钥,并且本地有相应的私钥可用,同时检查Launchpad是否知道你的用户名(bzr lp-login <username>)。
创建一个SSH密钥,你可以:
ssh-keygen

然后您可以轻松地将您的SSH公钥上传到Launchpad(通常是~/.ssh/id_dsa.pub~/.ssh/id_rsa.pub)。
另外,由于您只需要访问公共分支(不需要身份验证),您也可以通过运行bzr config --remove launchpad_username来强制使用http。

你绝对不需要在Launchpad上注册来分支项目。是的,Bazaar会警告你无法向Launchpad写入,但这并不妨碍你进行分支或检出操作。 - janos
这确实是一直困扰着我的问题。仅仅为Launchpad设置GPG密钥是不够的,你还需要设置SSH密钥!特别是如果你已经通过 bzr launchpad-login myusername 命令告知Launchpad你的用户名。或者如果你想提交代码的话。 - landroni

看起来从你的电脑无法访问Launchpad。
如果你的网络中有代理服务器,你需要设置https_proxy环境变量的格式为http://[user[:pass]@]server[:port]/[path],例如:
https_proxy=http://jack:badpass@our.intranet.com:8080/proxy.js

你对这个命令的输出是什么?
bzr resolve lp:~s-team/ubuntutv/trunk ubuntu-tv

还有这个:
python -c "import socket; socket.gethostbyname('code.launchpad.net')

这个:
env | grep https_proxy