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

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

1
задан 20 November 2017 в 19:40

9 ответов

Новое решение, предлагаемое файлом C., представляет собой «запуск dbox-запуска dropbox -i».

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

Этот новый "dbus- запускать dropbox start -i ", кажется, работает немного быстрее, с большей надежностью и в большинстве случаев, чем предыдущий обходной путь DBUS_SESSION_BUS_ADDRESS.

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

dropbox stop && dbus-launch dropbox start

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

#!/bin/bash

dropbox stop && dbus-launch dropbox start
81
ответ дан 23 May 2018 в 13:34
  • 1
    Команда командной строки отлично работает, но работает только для этого сеанса. Чтобы сделать исправление постоянным, после выполнения этой команды следует перейти к индикатору Dropbox & gt; Предпочтения ... & gt; снимите флажок «Начать Dropbox при запуске системы». Затем добавьте dbus-launch dropbox start в Session и Startup & gt; Автозапуск приложения. Это отлично работает для меня на Xubuntu 16.04 LTS. – Ads20000 26 April 2016 в 15:06
  • 2
    Это был единственный способ заставить меня работать в Ubuntu Mint xenial 16.04 LTS. – allebone 13 May 2016 в 15:34
  • 3
    Раздражающе, я не могу отредактировать свой комментарий. Возможно, команда autostart приложения должна быть dbus-launch dropbox start -i (это работает в Ubuntu (GNOME) Flashback 16.10, idk, работает ли она на Xubuntu) – Ads20000 18 May 2016 в 13:22
  • 4
    Это работает в lubuntu 16.4 – jumpnett 30 June 2016 в 01:29
  • 5
    Решение DBUS_SESSION_BUS_ADDRESS="" ничего не сделало для меня, но это сработало! Запуск Linux Mint 17.3. – Sampo 19 July 2016 в 11:03

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

Закрыть Dropbox. Откройте файл /usr/bin/dropbox с помощью текстового редактора (в качестве администратора). Например, в терминальном прогоне
gksudo gedit /usr/bin/dropbox
Создайте новую строку после import os и добавьте следующее:
os.environ['DBUS_SESSION_BUS_ADDRESS'] = ""
Сохраните и перезапустите

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

[ ! d11]

25
ответ дан 23 May 2018 в 13:34
  • 1
    Завершите свой ответ, как добавить строки, почему это работает. – DnrDevil 22 February 2016 в 20:19
  • 2
    DnrDevil, он работает так же, как DBUS_SESSION_BUS_ADDRESS = " " dropbox start, просто более прямой путь. – darl 24 February 2016 в 07:22
  • 3
    @DnrDevil Было бы глупо писать новое объяснение того, как редактировать текстовый файл каждый раз, когда вы отвечаете на вопрос, требующий редактирования текстового файла. – blujay 11 March 2016 в 04:30
  • 4
    @darl Это интересная идея, однако я бы вообще не советовал редактировать вещи в /usr/bin. Это ошибка в Dropbox, которая в конечном итоге должна быть исправлена, и это обходное решение может сломать исправление из Dropbox, оставив очень запутанного пользователя. Лучше использовать обходной путь, например, редактирование файла автозапуска, запускающего Dropbox. – blujay 11 March 2016 в 04:32
  • 5
    @blujay Я полностью согласен, если вы не ответите на вопрос новому пользователю, что они не могут ничего использовать в терминале – DnrDevil 11 March 2016 в 04:33

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

20
ответ дан 23 May 2018 в 13:34
  • 1
    Это сделало это для меня, хотя для уточнения: вы редактируете файл start_dropbox.desktop (с помощью коврика для мыши или что-то еще) – dez93_2000 29 March 2016 в 17:44
  • 2
    другое примечание: в menulibre (или в вашей системе меню) вам нужно изменить ввод команды из «startbox -box» -box " к "env DBUS_SESSION_BUS_ADDRESS =" " dropbox start -i " поэтому правый запускается при запуске из меню. – dez93_2000 6 April 2016 в 19:14

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

Ошибка этого значка в окне Dropbox, похоже, связана с Разрешения.

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

dropbox stop
sudo dropbox start

Примечание:

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

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

Это нормально в качестве временного обходного пути, чтобы полностью использовать иконку 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 (обычно ~ / Dropbox) на компьютере, на котором запущен Dropbox, как root.

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

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

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

#!/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
8
ответ дан 23 May 2018 в 13:34
  • 1
    Это обходное решение работает на моем Xubuntu 14.04 64. Все, пожалуйста, обратите внимание на «sudo». Спасибо, Хуан М. Гонсалес – user505080 15 February 2016 в 21:13
  • 2
    @ user505080, тогда вы должны щелкнуть по серой галочке, чтобы отметить этот ответ как действующее решение ; -) – Wayne_Yux 16 February 2016 в 01:53
  • 3
    Однако мы должны помнить, что мое предложение работать как root только для этих дней - это действительно временное решение, и реальное решение должно исходить от быстрого исправления ошибок Dropbox. – Juan M. Gonzalez 16 February 2016 в 02:00
  • 4
    На практике я нахожу, что простой «статус Dropbox» обходной путь без значка лучше и удобнее, чем другой "sudo dropbox start " обходной путь с иконкой. – Juan M. Gonzalez 17 February 2016 в 13:13
  • 5
    Новое: см. Ответ kk78 с гораздо лучшим обходом, чем мой. – Juan M. Gonzalez 19 February 2016 в 01:04

Вместо того, чтобы оставаться на более старой версии или заниматься другими аспектами, я решил использовать этот скрипт вместо маленькой иконки. Он выводит результат из команды 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.)

4
ответ дан 23 May 2018 в 13:34
  • 1
    Довольно круто, я никогда не знал, что смогу это сделать! Полезно для многих других вещей. Приветствия. – sharky 20 February 2016 в 02:57
  • 2
    Очень круто! Спасибо, что поделились этим. Я не знал о Generic Monitor. – blujay 11 March 2016 в 04:28
  • 3
    Почему bash -c, а не только dropbox status? – jarno 4 October 2016 в 08:31
  • 4
    У вас все еще есть красный значок, отображаемый на панели? – jarno 4 October 2016 в 10:06
  • 5
    @jarno У меня слабое воспоминание, что изначально это не сработало, только положив $(dropbox status). Однако по какой-то причине $(bash -c 'dropbox status') действительно работал. Использование $(dropbox status) теперь работает, поэтому я обновил свой сценарий соответственно. Спасибо, что дали мне знать. – jbrock 4 October 2016 в 20:28

Я изменил сценарий ~/.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 начиналось с Dropbox до того, как был запущен официальный файл запуска. Я изменил файл ~ / .profile, чтобы стереть любые файлы * .state и * session * в ~./cache/sessions

rm -f /home/jhm/.cache/sessions/*.state
rm -f /home/jhm/.cache/sessions/*session*

Update # 2: Итак, теперь, используя версию 3.18.1, проблема все еще существует. Я знаю, потому что, как я и предсказывал, сценарий ~/.dropbox-dist/dropboxd был перезаписан каждым обновлением, в результате чего проблема возвращалась каждый раз. Исправление выше работает надежно при загрузке Xubuntu 14.04, при условии, что восстановление сеанса напрямую не запускает двоичный файл:

/home/<user>/.dropbox-dist/dropbox-lnx.x86-3.18.1/dropbox

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

В качестве эксперимента я попытался использовать Upstart для запуска Dropbox до начала отслеживания сеанса. Сначала я создал папку /home/jhm/.init, затем к ней был добавлен файл с именем dropbox.conf, содержащий:

description "Dropbox"
start on desktop-start
expect daemon
exec /usr/bin/dropbox start

Я использую этот метод на своем ноутбуке Dell Xubuntu 14.04, и теперь программа скрыта от отслеживание сеанса, поэтому мне не нужно удалять файлы.

Поскольку dbus-launch создает новую приватную шину сеанса DBUS, 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, похоже, надежно сохраняет файл запуска от переустановки. После того, как «Start DropBox при запуске системы» был снят, он остался таким.

3
ответ дан 23 May 2018 в 13:34
  • 1
    Вышеупомянутый метод работы работал на всех моих машинах. Спасибо. – rstreeter78 23 February 2016 в 18:07
  • 2
    Вот однострочное решение для этого исправления: sed -i.bak '/#!\/bin\/sh/a export DBUS_SESSION_BUS_ADDRESS=""' ~/.dropbox-dist/dropboxd; dropbox stop && dropbox start – bmaupin 27 February 2016 в 15:46
  • 3
    Я предполагаю, что это может быть применено и в Xubuntu 16.04, но по умолчанию используется systemd вместо выскочки. – jarno 4 October 2016 в 09:10
  • 4
    См. мой ответ . К моему удивлению, скрипт init работал и в Xubuntu 16.04, даже если он использует systemd вместо выскочки. – jarno 4 October 2016 в 15:35
  • 5
    Я где-то читал, что выскочка по-прежнему будет использоваться для служб режима пользователя после того, как будет выпущена система systemd, что объясняет, почему сценарий все еще работает. Список услуг находится в /usr/share/upstart/sessions – user411778 7 October 2016 в 02:39

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

Примечания к выпуску для (который появился с 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

К сожалению, это не сработало, и значок в трее появился

Затем я задался вопросом, будет ли удаляться плагин Indicator с панели Xfce4.

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

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

обновлен до Qt 5.5, используя инструкции здесь

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

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

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

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

2
ответ дан 23 May 2018 в 13:34
  • 1
    Как вы сказали, «Кажется, что значок Dropbox нравится жить в панели уведомлений, но не в плагине индикатора». Я думаю, что вы были на правильном пути, как показывает обход kk78. – Juan M. Gonzalez 19 February 2016 в 02:31
  • 2
    Удаление плагина индикатора было для меня ключом - просто запустить dropbox start с DBUS_SESSION_BUS_ADDRESS="" было недостаточно, чтобы выпустить Dropbox из плагина индикатора. – BSchlinker 22 February 2016 в 00:08
  • 3
    @BSchlinker, возможно, Dropbox работает уже до того, как вы попытаетесь запустить его с помощью DBUS_SESSION_BUS_ADDRESS=""? – jarno 4 October 2016 в 09:13

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

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

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

bash -c 'export DBUS_SESSION_BUS_ADDRESS="" && dropbox start -i'
2
ответ дан 23 May 2018 в 13:34
  • 1
    Упрощение: env DBUS_SESSION_BUS_ADDRESS="" dropbox start -i – blujay 11 March 2016 в 04:33
  • 2
    @blujay или даже DBUS_SESSION_BUS_ADDRESS= dropbox start -i. Но некоторые люди сообщают, что dbus-launch dropbox start -i работает лучше. – jarno 4 October 2016 в 08:35
  • 3
    @jarno Не каждый использует оболочку в стиле Bash. Например, я использую Fish как мою интерактивную оболочку, а переменные не заданы синтаксисом name=value, поэтому необходимо использовать env. Использование env работает повсеместно. – blujay 8 October 2016 в 06:07

(проверено на 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
0
ответ дан 23 May 2018 в 13:34

Другие вопросы по тегам:

Похожие вопросы: