Несколько часов назад значок Dropbox в Xubuntu 14.04 прекратил работать. Значок является черным с красным разрезанным нулем. Я не могу нажать на него для перевода в рабочее состояние меню Dropbox. Я полагаю, что было обновление прямо, прежде чем это произошло. Я переустановил, затем произвел чистку Dropbox. Я даже удалил все связанные файлы и скрытые папки и после того, как я установил его снова. Однако, значок не работает. Попробованный, чтобы остановиться и запустить сервис... снова ничто.
Только что получил эту ошибку на моем 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
В отличие от решения, предложенного kk78, следующий метод решает проблему раз и навсегда:
Закройте Dropbox.
Откройте ] / usr / bin / dropbox
файл с текстовым редактором (от имени администратора). Например, в терминале запустите
gksudo gedit / usr / bin / dropbox
Создайте новую строку после import os
и добавьте следующее:
os.environ ['DBUS_SESSION_BUS_ADDRESS'] = ""
Сохранить и перезапустить
Теперь Dropbox будет работать нормально:
Новое обходное решение , предложенное файлом 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
Благодаря решению 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, Терминал и т. Д.), Который сейчас работает для пользователей 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
Вместо того, чтобы оставаться на старой версии или возиться с другими аспектами, я решил использовать этот сценарий вместо маленького значка. Вывод команды 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.)
Я запускаю ту же ОС, 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.
~? dropbox stop && dropbox start
Затем на панели уведомлений внезапно появляется дикий значок dropbox!
Похоже, что значок Dropbox предпочитает находиться на панели уведомлений, но не в подключаемом модуле индикатора.
Но ... Мне нравится подключаемый модуль индикатора, поскольку он дает мне уведомления по электронной почте и позволяет регулировать уровень громкости. Итак, я повторно добавил его на панель. Пока все хорошо.
Но после перезапуска сеанса я снова получаю эту чушь:
Итак, теперь я застрял. Я не знаю, как сделать так, чтобы значок Dropbox отображался на панели уведомлений вместо панели индикаторов, и я уверен, черт возьми, не собираюсь повторять эти шаги каждый раз, когда я вхожу в систему!
Это исправляет.
В меню Dropbox перейдите в «Настройки». Снимите флажок «Запускать Dropbox при запуске системы».
Перейдите в раздел «Сеанс и запуск»> «Автозапуск приложения» и добавьте следующий элемент для запуска:
bash -c 'export DBUS_SESSION_BUS_ADDRESS="" && dropbox start -i'
(проверено на 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
Поскольку мой Dropbox является запускаемым приложением, найдите Dash по запросу Startup Application
, затем нажмите «Изменить» в записи Dropobox и замените
старый
dropbox start -i
новый
] env XDG_CURRENT_DESKTOP = Unity dropbox start -i
, чтобы задействовать проблему: alt-F2, затем введите r, нажмите Enter
Это работает для Ubuntu 18.10 и выше
Я изменил сценарий ~ / .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 /
В качестве эксперимента я попытался использовать 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 при запуске системы» был снят, он остался прежним.
Это не ответ сам по себе, но, учитывая, что у нас достаточно большое сообщество: ЗДЕСЬ - прямая ссылка на страницу поддержки клиентов Dropbox по электронной почте. Если мы все спросим их об этом, возможно, они исправят это сами.