Как исправить неработающий значок Dropbox на Xubuntu 14.04 LTS 64?
Несколько часов назад перестала работать иконка Dropbox в Xubuntu 14.04. Значок черный с красным косым нулем. Я не могу щелкнуть по нему, чтобы вызвать выпадающее меню. Я считаю, что было обновление прямо перед тем, как это произошло. Я переустановил, а затем очистил Dropbox. Я даже удалил все связанные файлы и скрытые папки и после того, как установил его снова. Тем не менее, значок не работает. Пытался остановить и запустить сервис... опять ничего.
12 ответов
Только что получил эту ошибку на моем Xubuntu 15.10, сломанный значок и нет возможности открыть меню. Я думаю, что ошибка связана с Dropbox, который начинает использовать "область индикатора" для иконки в трее вместо "области уведомлений", и sudo-fix просто работает, потому что некоторые переменные окружения не используются с сессиями sudo.
По крайней мере, для меня эту проблему можно решить, запустив:
dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start
Это, кажется, перемещает значок обратно в "область уведомлений", которая исправляет значок и меню. Таким образом, демон работает как обычный пользователь, а не как root.
РЕДАКТИРОВАТЬ: Если вы создаете свой собственный скрипт запуска для Dropbox на основе этого исправления, не забудьте отключить скрипт запуска по умолчанию с помощью "dropbox autostart n
msgstr "Команда (спасибо StockBreak за это, спасла меня сегодня утром).
РЕДАКТИРОВАТЬ 2: ... и по какой-то причине мне все равно пришлось удалить настройку автозапуска из Dropbox GUI (нажмите значок >> Настройки >> Запуск Dropbox при запуске системы). Надеюсь, что после этого.
РЕДАКТИРОВАТЬ: Чтобы внедрить это исправление в сценарий, который запускается при каждом запуске сеанса, попробуйте следующее решение: /questions/262209/kak-ispravit-otsutstvuyuschij-znachok-paneli-v-okne-zapuska/262225#262225
Новый обходной путь, предложенный File 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, кажется, работает немного быстрее, с большей надежностью и в большем количестве случаев, чем предыдущий обходной путь DBUS_SESSION_BUS_ADDRESS.
Как командная строка:
dropbox stop && dbus-launch dropbox start
Или как файл сценария оболочки:
#!/bin/bash
dropbox stop && dbus-launch dropbox start
В отличие от решения, предложенного kk78, следующий метод решает проблему раз и навсегда:
Закрыть Dropbox.
открыто
/usr/bin/dropbox
файл с текстовым редактором (в качестве администратора). Например, в терминале запуститьgksudo gedit /usr/bin/dropbox
Создать новую строку после
import os
и добавьте следующее:os.environ['DBUS_SESSION_BUS_ADDRESS'] = ""
Сохранить и перезапустить
Теперь Dropbox будет работать нормально:
Благодаря решению 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, 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
Обновить:
Извините, я только что увидел что-то, что делает этот временный обходной путь еще работоспособным, но менее удобным: не только те несколько уже упомянутых файлов в скрытой папке ~ /.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
Вместо того, чтобы остановиться на более старой версии или возиться с другими аспектами, я решил использовать этот скрипт вместо маленькой иконки. Ставит вывод из команды dropbox status
прямо в вашей панели. Однако при синхронизации или обновлении появляется небольшая галочка или символ синхронизации.
Установите универсальный монитор, вставив в терминал следующее:
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 для имени сценария Python Dropbox.)
Я модифицировал ~/.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 начиналось с выпадающего списка до запуска официального файла запуска. Я изменил свой файл ~/.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
Используя "Система / Сеанс и запуск", на вкладке "Сеанс" я вижу, что двоичный файл видим и будет перезапущен, если я не удаляю файлы * session и * state.
В качестве эксперимента я попытался использовать 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 перейдите в "Настройки". Снимите флажок "Запуск Dropbox при запуске системы"
Перейдите в раздел Сеанс и автозагрузка> Автозапуск приложения и добавьте следующий элемент автозагрузки:
bash -c 'export DBUS_SESSION_BUS_ADDRESS="" && dropbox start -i'
Я использую ту же операционную систему, 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 появлялся на панели уведомлений вместо панели индикаторов, и я уверен, что он не будет повторять эти шаги каждый раз, когда я вхожу!
(протестировано на 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=Unbox start -i запускается -i
чтобы заняться вопросом: alt-F2 затем введите r нажмите enter
Это работает для Ubuntu 18.10 и выше