Как исправить нерабочую иконку Dropbox на Xubuntu 14.04 LTS 64?

92

Несколько часов назад значок Dropbox в Xubuntu 14.04 прекратил работать. Значок черный с красным носом. Я не могу нажать на него, чтобы открыть меню Dropbox. Я считаю, что до этого произошло обновление. Я переустановил, затем очистил Dropbox. Я даже удалил все связанные файлы и скрытые папки и после того, как я их снова установил. Тем не менее, значок не работает. Пытался остановиться и начать службу ... снова ничего.     

задан user505080 12.02.2016 в 23:48
источник

10 ответов

97

Просто получил эту ошибку на моем Xubuntu 15.10, сломанной иконке и не открывал меню. Я думаю, что ошибка связана с Dropbox, которая начинает использовать «область индикатора» для своего значка в трее вместо «области уведомлений», и sudo-fix просто работает, потому что некоторые переменные среды не используются с сеансами sudo.

По крайней мере, для меня эта проблема может быть устранена путем запуска:

dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start

Кажется, это переместит значок обратно в «область уведомлений», в которой исправлены как значок, так и меню. Таким образом, демон запускается как обычный пользователь, а не как root.

EDIT: если вы создаете свой собственный сценарий запуска для Dropbox на основе этого исправления, не забудьте отключить сценарий запуска по умолчанию с помощью команды « dropbox autostart n » (спасибо StockBreak за это, я спал мне некоторое время этим утром).

EDIT2: ... и по какой-то причине мне все еще пришлось удалить настройку автозапуска из Dropbox GUI (щелкните значок > > Предпочтения > > Начало Dropbox при запуске системы). Надеюсь, он останется после этого.

EDIT: для реализации этого исправления в скрипте, который запускается каждый раз, когда запускается сеанс, попробуйте это решение: Ссылка

    
ответ дан kk78 18.02.2016 в 12:16
источник
83

A новое обходное решение , предложенное Файл C. , is " dbox-launch dropbox start -i ".

Пользователи сообщают о том, что пользователи работают, по крайней мере, в дистрибутивах Linux Fedora, Gentoo, Kubuntu, Linux Mint, openSUSE, Slackware, Ubuntu, Xubuntu ... и средах рабочего стола Cinnamon, KDE 4, KDE 5, Mate , Unity, Xfce ...

Это новое решение dbus-launch работает немного быстрее, с большей надежностью и в большинстве случаев, чем предыдущий способ DBUS_SESSION_BUS_ADDRESS .

В качестве командной строки:

dropbox stop && dbus-launch dropbox start

Или как файл сценария оболочки:

#!/bin/bash

dropbox stop && dbus-launch dropbox start
    
ответ дан Juan M. Gonzalez 25.02.2016 в 17:01
26

В отличие от решения, предложенного kk78, следующий метод решает проблему раз и навсегда:

  1. Закрыть Dropbox.

  2. Откройте файл /usr/bin/dropbox с текстовым редактором (в качестве администратора). Например, в терминальном прогоне

    gksudo gedit /usr/bin/dropbox
    
  3. Создайте новую строку после import os и добавьте следующее:

    os.environ['DBUS_SESSION_BUS_ADDRESS'] = ""
    
  4. Сохраните и перезапустите

Теперь Dropbox будет работать нормально:

    
ответ дан darl 22.02.2016 в 08:18
22

Благодаря решению kk78 я сделал это полное обходное решение (см. также мой другое сообщение ):

I скопировано * моя запись на рабочем столе:

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 заменяет файл каждый раз, когда вы входите в систему.

    
ответ дан StockBreak 18.02.2016 в 18:40
8

[Это мой устаревший ранний ответ, теперь он исследует эти и связанные с ним ошибки; для более новых и улучшенных обходных решений, без неудобства изменения файла или восстановления sudo, см. ответ kk78 или командной строки "dropbox stop && dbus-launch dropbox start" в другом ответе]

Этот значок значка в Dropbox, похоже, связан с разрешениями.

Пока он не будет исправлен, временное обходное решение из командной строки (Konsole, Terminal и т. д.), которое работает в эти дни для пользователей Xubuntu, Linux Mint и т. д.:

dropbox stop
sudo dropbox start

Примечание:

О «sudo» , запуск Dropbox с правами root устраняет ошибку разрешения, а значок в трее снова работает правильно.

Однако у него есть небольшой вторичный эффект наличия нескольких файлов в скрытой папке ~ / .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

Update:

Извините, я только что видел что-то, что делает этот временный обходной путь все еще работоспособным, но менее удобным: не только те немногие уже упомянутые файлы в скрытой папке ~ / .dropbox становятся принадлежащими root, файлы, загруженные с серверов Dropbox, в папку Dropbox (обычно ~ / Dropbox ) на компьютере, на котором запущен Dropbox с правами root.

Итак, я все еще использую этот обходной путь до исправления ошибки, но если мы хотим его использовать, мы должны применить линию восстановления разрешений также к папке Dropbox, по крайней мере, когда мы хотим отредактировать наши загруженные документы. Например:

sudo chown -R USER:GROUP /home/USER/Dropbox

Чтобы сэкономить время и применить его при запуске компьютера, мы можем включить его в простой сценарий оболочки, например. a dropbox.sh с исполняемым свойством, которое мы можем запустить из командной строки или щелчком мыши:

#!/bin/bash

dropbox stop
sudo dropbox start
sudo chown -R USER:GROUP /home/USER/Dropbox

Простой альтернативный способ:

Вместо всех предыдущих процедур, если изменения файлов и восстановления файлов и т. д. слишком неудобны, самой простой альтернативой является, вероятно, просто ждать исправления ошибок Dropbox без использования значка и просто проверить статус Dropbox с время от времени, используя командную строку:

dropbox status

В результате, если Dropbox запущен, большую часть времени будет: «Обновить» .

Позже, возможно, вы можете использовать стрелку вверх, чтобы быстро запустить эту строку из небольшого окна командной строки, которое вы можете сохранить открытым.

См. дополнительную помощь в командной строке, просто набрав:

dropbox

Как уже было сказано, прекратить использование другого обходного пути (sudo), восстановить нормальное владение файлами и снова запустить Dropbox снова, как обычный пользователь вместо root, использовать только один раз (заменяя 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.

Он также может использоваться как сценарий оболочки:

#!/bin/bash

dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start
    
ответ дан Juan M. Gonzalez 15.02.2016 в 13:46
4

Вместо того, чтобы оставаться на более старой версии или заниматься другими аспектами, я решил использовать этот скрипт вместо маленькой иконки. Он выводит результат из команды dropbox status прямо на вашу панель. Однако, когда он синхронизируется или обновляется, есть небольшая галочка или синхронизирующий символ.

Установите общий монитор, вставив в терминал следующее:

sudo apt-get install xfce4-genmon-plugin

Задайте следующий сценарий для запуска с помощью плагина панели общего монитора. Я пошел без лейбла и установил его каждые пять секунд.

#!/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 не работает, вы можете загрузить сценарий python Dropbox здесь . (В моем случае я не использую расширение * .py для имени сценария на Python Dropbox.)

    
ответ дан jbrock 19.02.2016 в 18:11
3

Я изменил скрипт ~/.dropbox-dist/dropboxd следующим образом и перезагрузился и получил значок назад. Поскольку этот файл перезаписывается обновлениями, я думаю, что мне не придется ничего отменить, если они исправят проблему при следующем обновлении.

#!/bin/sh
export DBUS_SESSION_BUS_ADDRESS=""
PAR=$(dirname "$(readlink -f "$0")")
exec "$PAR/dropbox-lnx.x86-3.14.7/dropboxd" "[email protected]"

Обновление: когда я попробовал это на своем ноутбуке, сначала это не сработало. Я понял, что у меня была та же проблема, что и у меня с «Копировать», когда сохранение сеанса XFCE4 начиналось с Dropbox до того, как был запущен официальный файл запуска. Я изменил файл ~ / .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

Используя «System / Session и Startup», на вкладке «Session» я вижу, что двоичный файл отображается и будет перезагружен, если я не удалю файлы * session и *.

В качестве эксперимента я попытался использовать 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 создает новую приватную шину BUSUS, DropBox никогда не найдет сервис appindicator, поскольку он будет единственным процессом на этой шине (кроме DBUS), так что примерно то же самое, что и export DBUS_SESSION_BUS_ADDRESS="" . Оба решения DropBox для возврата в API панели задач. Это называется «Область уведомлений» на вкладке «Элементы панели XFCE». Убедитесь, что он не был удален с панели.

Используя d-feet и dbus-monitor , я обнаружил, что проблема заключается в том, что DropBox не смог реализовать интерфейсы «Menu» на несуществующем пути «/ MenuBar» DBUS. Вентиляторы DBUS могут изучить org.kde.StatusNotifierWatcher с d-feet , чтобы узнать больше. Поскольку двоичный файл dropbox отвечает за поддержку этих интерфейсов, нечего делать, кроме как ждать следующего обновления. BTW, все необходимые QT5.5 библиотеки включены в программу. Нет необходимости загружать пакеты разработки.

Я также обнаружил, что только диалоговое окно GUI, похоже, надежно сохраняет файл запуска от переустановки. После того, как «Начать DropBox при запуске системы» не был отмечен, он остался таким.

    
ответ дан user411778 21.02.2016 в 05:09
2

Я запускаю ту же ОС, Xubuntu 14.04 x64, и вижу этот значок, который не реагирует на клики (без меню):

Примечанияквыпускудля 3.14.5 (который появился с 9 февраля 2016 года и был установлен на моей машине), укажите, что Dropbox обновлен для использования Qt 5.5 в Linux.

Выполнение следующего дает версию 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.

  1. Снимите плагин индикатора
  2. ~? dropbox stop && dropbox start

Затем неожиданно на панели уведомлений появляется значок дикого сброса!

Кажется,чтозначокDropboxнравитсяпроживатьвпанелиуведомлений,ноневплагинеиндикатора.

Но...МненравитсяплагинIndicator,таккакондаетмнеоповещенияпоэлектроннойпочтеиконтрольуровнягромкости.Итак,ясновадобавилеговпанель.Покачтотакхорошо.

Нопослеповторногозапускасеансаясноваполучаюэтуерунду:

Итак, теперь я застрял. Я не знаю, как сделать значок Dropbox отображаться в панели уведомлений вместо панели индикаторов, и я уверен, что не повторю эти шаги каждый раз, когда я вхожу в систему!

    
ответ дан sharky 13.02.2016 в 05:48
2

Это исправляет это.

В меню «Dropbox» перейдите в «Настройки». Снимите флажок «Начать Dropbox при запуске системы»

Переход к сеансу и началу работы > Автозапуск приложения и добавьте следующий элемент запуска:

bash -c 'export DBUS_SESSION_BUS_ADDRESS="" && dropbox start -i'
    
ответ дан jbrock 19.02.2016 в 19:16
0

(проверено на xbuntu 17.04)

Чтобы перезапустить dropbox с правильным значком в трее: 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
    
ответ дан tekumara 06.10.2017 в 01:55