Как закрепить не рабочий значок Dropbox на Xubuntu 14.04 LTS 64?

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

92
задан 20 November 2017 в 08:40

12 ответов

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

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

dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start

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

РЕДАКТИРОВАТЬ: Если вы создаете свой собственный сценарий запуска для Dropbox на основе этого исправления, не забудьте отключить сценарий запуска по умолчанию с помощью " автозапуск dropbox n "(спасибо StockBreak за это, сэкономило мне время этим утром).

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

РЕДАКТИРОВАТЬ: Чтобы реализовать это исправление в сценарии, который запускается каждый раз при запуске сеанса, попробуйте следующее решение: https://askubuntu.com/a/795864/496493

96
ответ дан 22 November 2019 в 23:07

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

  1. Закройте Dropbox.

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

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

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

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

Gif tutorial

26
ответ дан 22 November 2019 в 23:07

Новое обходное решение , предложенное файлом 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-launch , кажется, работает немного быстрее, с большей надежностью и в большем количестве случаев, чем предыдущий обходной путь DBUS_SESSION_BUS_ADDRESS .

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

dropbox stop && dbus-launch dropbox start

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

#!/bin/bash

dropbox stop && dbus-launch dropbox start
82
ответ дан 22 November 2019 в 23:07

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

21
ответ дан 22 November 2019 в 23:07

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

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

Пока она не будет исправлена, временный обходной путь из командной строки (Konsole, Терминал и т. Д.), Который сейчас работает для пользователей Xubuntu, Linux Mint и т. Д. :

dropbox stop
sudo dropbox start

Примечание:

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

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

Новое обновление:

См. kk 78 ответ на этот вопрос с гораздо лучшим решением, чем у меня, и с иконкой Dropbox в трее как обычный пользователь, а не root. Он работает, по крайней мере, для Xubuntu и Linux Mint.

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

#!/bin/bash

dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start
8
ответ дан 22 November 2019 в 23:07

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

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

sudo apt-get install xfce4-genmon-plugin

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

#!/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 для имени сценария Dropbox python.)

3
ответ дан 22 November 2019 в 23:07

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

Dropbox icon on Xfce4-Panel

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

Dropbox icon appears

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

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

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

Dropbox icon on Xfce4-Panel

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

2
ответ дан 22 November 2019 в 23:07

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

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

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

bash -c 'export DBUS_SESSION_BUS_ADDRESS="" && dropbox start -i'
2
ответ дан 22 November 2019 в 23: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
ответ дан 22 November 2019 в 23:07

Поскольку мой Dropbox является запускаемым приложением, найдите Dash по запросу Startup Application , затем нажмите «Изменить» в записи Dropobox и замените

старый

dropbox start -i

новый

] env XDG_CURRENT_DESKTOP = Unity dropbox start -i

, чтобы задействовать проблему: alt-F2, затем введите r, нажмите Enter

Это работает для Ubuntu 18.10 и выше

0
ответ дан 22 November 2019 в 23:07

Я изменил сценарий ~ / .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*

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

/ home / /.dropbox-dist/dropbox-lnx.x86-3.18.1/dropbox[12274 sizesUsing " Система / Сеанс и запуск "на вкладке" Сеанс "я вижу, что двоичный файл виден и будет перезапущен, если я не удалю файлы * сеанса и * состояния.

В качестве эксперимента я попытался использовать 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 не может реализовать интерфейсы «Меню» на несуществующем пути DBUS '/ MenuBar'. Поклонники DBUS могут изучить org.kde.StatusNotifierWatcher с d-feet , чтобы узнать больше. Поскольку двоичный файл dropbox отвечает за поддержку этих интерфейсов, ничего не остается, кроме как ждать следующего обновления. Кстати, все необходимые библиотеки QT5.5 включены в программу. Нет необходимости загружать пакеты разработки.

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

3
ответ дан 22 November 2019 в 23:07

Это не ответ сам по себе, но, учитывая, что у нас достаточно большое сообщество: ЗДЕСЬ - прямая ссылка на страницу поддержки клиентов Dropbox по электронной почте. Если мы все спросим их об этом, возможно, они исправят это сами.

0
ответ дан 22 November 2019 в 23:07

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

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