我希望在我的 11.10 服务器上安装 Ubuntu One,但每次我尝试运行命令时似乎都会遇到错误http://manpages.ubuntu.com/manpages/lucid/man1/u1sdtool.1.html
例如,当我尝试运行时 u1sdtool --start
遇到以下错误:
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
我刚刚安装了 Ubuntu One,迄今为止没有对其进行任何更改。
答案1
Ubuntu One 需要 X 和 dbus 会话。您可以按照以下说明使其无头运行:https://wiki.ubuntu.com/UbuntuOne/Headless
在无头模式下运行 Ubuntu One
安装 ubuntuone-client 包:
sudo apt-get install ubuntuone-client
设置用户目录:
mkdir -p ~/.config/ubuntuone ~/bin
如果您登录时没有 ~/bin,则您的路径不包含它,请纠正运行(或者简单地注销并再次登录,ubuntu 将为您设置它):
export PATH=$HOME/bin:$PATH
获取您帐户的 OAuth 密钥:
cd /tmp wget http://people.canonical.com/~roman.yepishev/us/ubuntuone-sso-login.py python ubuntuone-sso-login.py Ubuntu SSO Login: **your Ubuntu SSO Login** Password: **your Ubuntu SSO Password** oauth=hPQWPsH:rhOokmNiRuuoiHe...
将以 oauth= 开头的行复制到 ~/.config/ubuntuone/syncdaemon.conf 作为 oauth 参数主要的部分(这是 ini 样式的文件):
[__main__] oauth=hPQWPsH:rhOokmNiRuuoiHe...
(您最好删除 oauth 字符串中的前两个字段,即 oath=aaa:bbb:ccc:ddd => oath=ccc:ddd )
下载 u1sdtool 包装器,它将在需要时启动 dbus。默认情况下,Ubuntu 会将 ~/bin/ 添加到您的路径中,因此当您运行 u1sdtool 时,您将运行包装器。
wget http://people.canonical.com/~roman.yepishev/us/u1sdtool-wrapper -O ~/bin/u1sdtool chmod +x ~/bin/u1sdtool
启动 Ubuntu One,检查 Ubuntu One 状态并连接(从 Oneiric 开始 Ubuntu One 启动时会自动连接):
u1sdtool --start u1sdtool --status State: READY connection: Not User With Network description: ready to connect is_connected: False is_error: False is_online: False queues: IDLE u1sdtool --connect
如果您遇到显示管理器错误,请尝试在 u1sdtool 前面添加 ~/bin/,因为最可能的原因是您的 PATH 中上述问题。
查看“connection”后面的字符串。如果显示“Not User”,则表示您的凭据尚未处理,请停止并启动 syncdaemon:
u1sdtool --quit u1sdtool --start
然后再试一次。
如果显示“无网络”,则表明您未连接到互联网,我必须通过安装 nmcli(sudo apt-get install network-manager --no-install-recommends)并摆弄 nmcli 来解决这个问题。您可能还需要安装 consolekit。
开始将文件添加到
~/Ubuntu One
目录并使用 u1sdtool 添加 UDF、发布文件等。
答案2
我刚刚遇到了这个问题。
事实证明这是因为我正在使用 screen+ssh 连接。
http://www.rootninja.com/dbus-session-bus-address-with-applications-using-ssh/
运行这个可以为我解决这个问题:
eval `dbus-launch --sh-syntax`
答案3
看来 ubuntuone-syncdaemon 只能与托管接口一起使用,因此您需要确保 NetworkManager 正在运行并且至少连接了一个托管网络。
$ sudo nmctl con
如果你的服务器和我的一样,配置了静态 IP 地址,则需要/etc/NetworkManager/NetworkManager.conf
按照此处的说明进行修改: http://wiki.debian.org/NetworkManager#Enabling_Interface_Management