几个小时前,Xubuntu 14.04中的保管箱图标停止工作。图标为黑色,红色斜线为零。我无法单击它来调出保管箱菜单。我相信在此之前有一个更新。我重新安装然后清除了保管箱。我什至删除了所有关联的文件和隐藏的文件夹,然后再次安装它们。仍然,该图标不起作用。试图停止并启动服务……再也没有。
几个小时前,Xubuntu 14.04中的保管箱图标停止工作。图标为黑色,红色斜线为零。我无法单击它来调出保管箱菜单。我相信在此之前有一个更新。我重新安装然后清除了保管箱。我什至删除了所有关联的文件和隐藏的文件夹,然后再次安装它们。仍然,该图标不起作用。试图停止并启动服务……再也没有。
Answers:
刚在我的Xubuntu 15.10上看到此错误,图标已损坏,无法打开菜单。我认为该错误已连接到Dropbox,开始将“指示器区域”用作其托盘图标而不是“通知区域”,并且sudo修复正好起作用,因为某些环境变量未在sudo会话中使用。
至少对我来说,这个问题可以通过运行来解决:
dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start
这似乎将图标移回了“通知区域”,该区域同时修复了图标和菜单。这样,守护程序将以普通用户而不是root用户身份运行。
编辑:如果您基于此修复程序为Dropbox创建自己的启动脚本,请记住使用“ dropbox autostart n
”命令禁用默认启动脚本(感谢StockBreak,今天早上为我节省了一些时间)。
EDIT2:...由于某种原因,我仍然必须从Dropbox GUI中删除自动启动设置(在系统启动时单击图标>>首选项>>启动Dropbox)。希望它在此之后保持不变。
编辑:要在每次会话启动时运行的脚本中实现此修复,请尝试以下解决方案:https : //askubuntu.com/a/795864/496493
indicator-applet
面板(除了已经可用和present的面板之外indicator-applet-complete
),否则就没有出现保管箱图标。这是在新安装的Ubuntu 16.04 x86(在非常老的东芝笔记本电脑上)上运行的,该gnome-fallback
会话与metacity
。
dropbox stop && dbus-launch dropbox start
。我一直在我的笔记本电脑(目前为Xubuntu 17.04)上使用它,没有遇到任何问题。如果Dropbox修复此问题,那就太好了……
File C.提出的一种新的解决方法是“ dbus-launch dropbox start -i”。
用户报告以下改编版本至少可以在Linux发行版Fedora,Gentoo,Kubuntu,Linux Mint,openSUSE,Slackware,Ubuntu,Xubuntu ...以及桌面环境Cinnamon,KDE 4,KDE 5,Mate,Unity, Xfce ...
与以前的DBUS_SESSION_BUS_ADDRESS解决方法相比,这种新的dbus启动解决方法似乎工作更快,可靠性更高,并且在更多情况下。
作为命令行:
dropbox stop && dbus-launch dropbox start
或作为shell脚本文件:
#!/bin/bash
dropbox stop && dbus-launch dropbox start
dbus-launch dropbox start
到会话和启动>应用程序自动启动。这对我在Xubuntu 16.04 LTS上非常有效。
dbus-launch dropbox start -i
(此命令适用于Ubuntu(GNOME)Flashback 16.10,idk是否也适用于Xubuntu)
DBUS_SESSION_BUS_ADDRESS=""
解决方案对我没有任何帮助,但此解决方案有效!运行Linux Mint 17.3。
与kk78提出的解决方案不同,以下方法可以彻底解决该问题:
关闭Dropbox。
/usr/bin/dropbox
使用文本编辑器(以管理员身份)打开文件。例如在终端运行
gksudo gedit /usr/bin/dropbox
之后创建新行,import os
并添加以下内容:
os.environ['DBUS_SESSION_BUS_ADDRESS'] = ""
保存并重启
现在,Dropbox可以正常工作:
/usr/bin
。这是Dropbox中的一个错误,最终应予以修复,而您的此变通办法可能会破坏Dropbox的修复,留下一个非常困惑的用户。最好使用变通办法,例如编辑启动Dropbox的自动启动文件。
感谢kk78的解决方案,我完成了这个完整的解决方法(另请参见我的其他文章):
我复制*了我的桌面条目:
cp ~/.config/autostart/dropbox.desktop ~/.config/autostart/start_dropbox.desktop
像这样更改条目(请注意env
单词):
[Desktop Entry]
Name=Dropbox
GenericName=File Synchronizer
Comment=Sync your files across computers and to the web
#Exec=dropbox start -i
Exec=env DBUS_SESSION_BUS_ADDRESS="" dropbox start -i
Terminal=false
Type=Application
Icon=dropbox
Categories=Network;FileTransfer;
StartupNotify=false
并禁用Dropbox的自动启动功能:
dropbox autostart n
*您不能只编辑它,因为Dropbox每次登录时都会替换文件。
[这是我不建议使用的早期答案,现在继续研究此错误和相关的错误;有关更新和更好的解决方法,而又没有sudo的文件所有权更改/恢复带来的不便,请改用kk78的答案,或"dropbox stop && dbus-launch dropbox start"
在其他答案中使用命令行]
此Dropbox托盘图标错误似乎与权限有关。
在修复之前,可以从命令行(Konsole,Terminal等)使用临时解决方法,目前,这种方法适用于Xubuntu,Linux Mint等用户:
dropbox stop
sudo dropbox start
注意:
关于“ sudo”,以root身份运行Dropbox克服了权限错误,并且托盘图标再次正常工作。
但是,它具有次要的作用,即在隐式文件夹〜/ .dropbox /中拥有一些文件,而不是用户(现在可以由root拥有)(如通过Dolphin这样的文件管理器可以看到),因此具有root密码启动Dropbox时需要输入。
可以使用临时解决方法来使Dropbox托盘图标在Linux上完全正常运行,直到有希望通过下一次更新修复该错误为止,但是,如果该修复程序无法恢复正确的权限,则在这种情况下,可以在该错误之后迅速解决该问题。解决方法是:
sudo dropbox stop
sudo chown -R USER:GROUP /home/USER/.dropbox
dropbox start
当然,替换USER和GROUP。例如,如果您是Unix,UTF-8,Go语言等的共同创建者;),它将类似于:
sudo chown -R ken:ken /home/ken/.dropbox
更新:
抱歉,我刚刚看到一些使此临时解决方案仍然可行但不太方便的东西:不仅隐藏的〜/ .dropbox文件夹中的那些已经提及的文件都归root所有,而且从Dropbox服务器下载到Dropbox的文件也都拥有在以root用户身份运行Dropbox的计算机上的文件夹(通常是〜/ Dropbox)。
因此,在错误修复之前,我仍将使用此变通方法,但是,如果要使用它,则必须将权限恢复行也应用于Dropbox文件夹,至少在我们要编辑下载的文档时。例如:
sudo chown -R USER:GROUP /home/USER/Dropbox
为了节省时间并在启动计算机时应用它,我们可以将其包含在简单的Shell脚本中,例如,具有dropping.sh文本文件的可执行文件属性,可以从命令行或通过鼠标单击来运行:
#!/bin/bash
dropbox stop
sudo dropbox start
sudo chown -R USER:GROUP /home/USER/Dropbox
简单的替代解决方法:
如果处理文件所有权的更改和恢复等非常不便,则可以代替最前面的所有步骤,最简单的选择可能是仅等待Dropbox错误修复而无需使用图标,并不时检查一下Dropbox的状态使用命令行:
dropbox status
结果,如果Dropbox正在运行,则大多数时间将是:“最新”。
稍后,可能您可以使用向上箭头从可以保持打开状态的小型命令行窗口再次快速运行此行。
只需键入以下内容,即可查看其他命令行帮助:
dropbox
如已经建议的那样,要停止使用其他解决方法(sudo),恢复普通文件的所有权并以普通用户(而非root)的身份再次开始运行Dropbox,请仅使用一次(替换USER和GROUP):
sudo dropbox stop
sudo chown -R USER:GROUP /home/USER/Dropbox
sudo chown -R USER:GROUP /home/USER/.dropbox
sudo chown -R USER:GROUP /home/USER/.dbus
dropbox start
新更新:
请参阅kk78对这个问题的回答,其解决方法比我的好得多,并且使用Dropbox托盘图标作为普通用户,而不是root用户。它至少适用于Xubuntu和Linux Mint。
它也可以用作shell脚本:
#!/bin/bash
dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start
我决定使用此脚本而不是小图标,而不是使用较旧的版本或烦恼其他方面。它将命令的输出dropbox status
直接放在面板中。但是,当它正在同步或最新时,会出现一个小的复选标记或同步字符。
通过在终端中粘贴以下内容来安装通用监视器:
sudo apt-get install xfce4-genmon-plugin
设置以下脚本以使用“通用监视器”面板插件运行。我没有Label并将其设置为每五秒钟运行一次。
#!/bin/bash
status=$(dropbox status)
if [ "$status" = "Up to date" ]; then
echo "✔"
elif [[ "$status" == "Syncing"* ]] || [[ "$status" == "Indexing"* ]] || [[ "$status" == "Downloading"* ]]; then
echo "⟲"
else
echo "$status"
fi
您需要运行以下命令,以便在登录时不显示密码提示(无论如何都可以忽略):
sudo chown -R USER:GROUP ~/.dropbox
USER:GROUP
通常是您的用户名两次。
当我需要更改设置时,我将使用启动Dropbox sudo
来更改设置。如本页所述,sudo
通过启动带有,可以显示小图标和菜单。
此外,如果愿意,您可以回显自己的Dropbox图标或图像。如果您的Dropbox命令行不起作用,则可以在此处下载Dropbox python脚本。(就我而言,我没有在Dropbox python脚本名称中使用* .py扩展名。)
bash -c
而不仅仅是dropbox status
?
$(dropbox status)
。但是,由于某些原因,它$(bash -c 'dropbox status')
确实起作用了。$(dropbox status)
现在可以使用了,因此我已经相应地更新了脚本。谢谢你让我知道。
我~/.dropbox-dist/dropboxd
按如下所示修改了脚本,然后重新启动并恢复了图标。由于此文件被更新覆盖,因此我认为如果他们在下一个更新中解决了问题,则无需撤消任何操作。
#!/bin/sh
export DBUS_SESSION_BUS_ADDRESS=""
PAR=$(dirname "$(readlink -f "$0")")
exec "$PAR/dropbox-lnx.x86-3.14.7/dropboxd" "$@"
更新:当我在笔记本电脑上尝试此操作时,它一开始无法正常工作。我意识到我遇到了与“复制”相同的问题,即在执行正式启动文件之前,XFCE4会话保存正在启动保管箱。我修改了〜/ .profile文件以擦除其中的任何* .state和* session *文件~./cache/sessions
rm -f /home/jhm/.cache/sessions/*.state
rm -f /home/jhm/.cache/sessions/*session*
更新#2:所以现在使用版本3.18.1,问题仍然存在。我知道,因为正如我所预料的那样,~/.dropbox-dist/dropboxd
每次更新都会覆盖脚本,从而导致问题每次都返回。上面的修复在Xubuntu 14.04引导上可靠地起作用,前提是会话还原不能直接启动二进制文件:
/home/<user>/.dropbox-dist/dropbox-lnx.x86-3.18.1/dropbox
使用“系统/会话和启动”,在“会话”选项卡下,我可以看到该二进制文件是可见的,如果不删除* session和* state文件,它将重新启动。
作为实验,我尝试在会话跟踪开始之前使用Upstart启动Dropbox。首先,我创建了/home/jhm/.init
文件夹,然后将一个名为的文件dropbox.conf
添加到其中,其中包含:
description "Dropbox"
start on desktop-start
expect daemon
exec /usr/bin/dropbox start
我在Dell Laptop Xubuntu 14.04上使用了这种方法,该程序现在已从会话跟踪中隐藏了,因此不需要删除文件。
由于dbus-launch
创建了新的专用DBUS会话总线,DropBox将永远找不到该appindicator服务,因为它将是该总线上的唯一进程(DBUS除外),因此与export DBUS_SESSION_BUS_ADDRESS=""
这两种解决方案相同,这两种解决方案都会导致DropBox退回到系统任务栏API。在“ XFCE面板项目”选项卡中,这称为“通知区域”。确保尚未将其从面板中删除。
使用d-feet
和dbus-monitor
,我发现问题是DropBox无法在不存在的'/ MenuBar'DBUS路径上实现'Menu'接口。DBUS球迷可以探索org.kde.StatusNotifierWatcher
与d-feet
发现更多。由于Dropbox二进制文件负责支持这些接口,因此无需等待下一次更新。顺便说一句,所有需要的QT5.5库都包含在程序中。无需下载开发包。
我还发现,只有GUI对话框似乎可以可靠地阻止启动文件的重新安装。一旦取消选中“在系统启动时启动DropBox”,它将保持这种状态。
sed -i.bak '/#!\/bin\/sh/a export DBUS_SESSION_BUS_ADDRESS=""' ~/.dropbox-dist/dropboxd; dropbox stop && dropbox start
/usr/share/upstart/sessions
我运行相同的操作系统Xubuntu 14.04 x64,并且看到此图标对单击无响应(无菜单):
3.14.5的发行说明(于2016年2月9日到来并已安装在我的计算机上)指出,Dropbox已更新为在Linux上使用Qt 5.5。
运行以下命令将在我的计算机上提供Qt版本:
~$ qmake -v
QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu
因此,我按照此处的说明升级到了Qt 5.5。
这些是我采取的步骤:
sudo apt-add-repository ppa:beineri/opt-qt551-trusty
sudo apt-get update
sudo apt-get install qt-latest qtcreator-latest
然后,在其中设置以下内容~/.bashrc
并重新启动会话:
export QT_SELECT=opt-qt55
我确认我已经安装了Qt 5.5:
~$ qmake -v
QMake version 3.0
Using Qt version 5.5.1 in /opt/qt55/lib
然后,重新安装Dropbox并重新启动会话:
sudo apt-get remove dropbox
sudo apt-get install nautilus-dropbox
不幸的是,这行不通,并且托盘图标显示相同。
然后,我想知道是否可以从Xfce4-面板中删除指标插件。
~? dropbox stop && dropbox start
然后,突然,一个通配的保管箱图标出现在通知面板中!
似乎Dropbox图标喜欢驻留在“通知面板”中,而不喜欢驻留在指示器插件中。
但是...我喜欢指示器插件,因为它为我提供了电子邮件警报和音量控制。因此,我将其重新添加到面板中。到现在为止还挺好。
但是,在重新启动会话后,我又得到了这个废话:
所以,现在我被卡住了。我不知道如何使Dropbox图标出现在“通知面板”而不是“指示器面板”中,并且我确定每次登录时都不会重复这些步骤!
dropbox start
与之一起运行DBUS_SESSION_BUS_ADDRESS=""
不足以使Dropbox脱离指标插件。
DBUS_SESSION_BUS_ADDRESS=""
吗?
这样就解决了。
在“ Dropbox”菜单上,转到“首选项”。取消选择“系统启动时启动Dropbox”
转到会话和启动>应用程序自动启动,然后添加以下启动项:
bash -c 'export DBUS_SESSION_BUS_ADDRESS="" && dropbox start -i'
env DBUS_SESSION_BUS_ADDRESS="" dropbox start -i
DBUS_SESSION_BUS_ADDRESS= dropbox start -i
。但是有人报告说dbus-launch dropbox start -i
效果更好。
name=value
语法设置变量,因此必须使用env
。使用env
无处不在。
(在xbuntu 17.04上测试)
要使用正确的托盘图标重新启动保管箱: dropbox stop && dbus-launch dropbox start
Dropbox的替换自动启动文件~/.config/autostart/dropbox.desktop
上启动/usr/share/applications/dropbox.desktop
。要使此修复程序永久生效,请修改后者:
sudo sed -i 's/Exec=dropbox start -i/Exec=dbus-launch dropbox start -i/' /usr/share/applications/dropbox.desktop
您可能还需要修改主菜单启动器:
sed 's/Exec=dropbox start -i/Exec=dbus-launch dropbox start -i/' ~/.local/share/applications/dropbox.desktop
这本身并不是答案,但是鉴于我们是一个足够大的社区: HERE是指向保管箱电子邮件客户支持页面的直接链接。如果我们都问他们这个问题,也许他们会自己解决。