Ошибка Nautilus-dropbox в меню [dубликат]

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

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

66 ответов

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

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

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

26
ответ дан 14 August 2018 в 19:21
  • 1
    Завершите свой ответ, как добавить строки, почему это работает. – DnrDevil 22 February 2016 в 20:19
  • 2
    DnrDevil, он работает так же, как DBUS_SESSION_BUS_ADDRESS = & quot; & quot; 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

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

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

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

bash -c 'export DBUS_SESSION_BUS_ADDRESS="" && dropbox start -i'
2
ответ дан 14 August 2018 в 19:21
  • 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

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

Эта ошибка с иконкой в ​​Dropbox для связи с разрешениями.

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

dropbox stop
sudo dropbox start

Примечание:

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

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

Это нормально в качестве временного обходного пути, чтобы полностью открыть иконку Dropbox в Linux, пока ошибка, как мы надеемся, не будет исправлена следующий u pdate, но если исправление не восстанавливает правильные разрешения, в этом гипотетическом случае быстрое решение после исправления ошибок будет:

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.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
8
ответ дан 14 August 2018 в 19:21
  • 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 & quot; обходной путь с иконкой. – Juan M. Gonzalez 17 February 2016 в 13:13
  • 5
    Новое: см. Ответ kk78 с гораздо лучшим обходом, чем мой. – Juan M. Gonzalez 19 February 2016 в 01:04

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

Release примечания для 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, поскольку он дает мне оповещения по электронной почте и контроль уровня громкости. Итак, я снова добавил его в панель. Пока что, хорошо.

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

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

2
ответ дан 14 August 2018 в 19:21
  • 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

(проверено на 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
ответ дан 14 August 2018 в 19:21

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

#!/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, похоже, надежно сохраняет файл запуска от переустановки. После того, как «Начать DropBox при запуске системы» был снят, он остался таким.

3
ответ дан 14 August 2018 в 19:21
  • 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

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

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