web-dev-qa-db-fra.com

Comment réparer une icône Dropbox non fonctionnelle sur Xubuntu 14.04 LTS 64?

Il y a quelques heures, l'icône de la liste déroulante dans Xubuntu 14.04 a cessé de fonctionner. L'icône est noire avec un zéro en rouge. Je ne peux pas cliquer dessus pour afficher le menu déroulant. Je crois qu'il y a eu une mise à jour juste avant que cela se produise. J'ai réinstallé puis supprimé la liste déroulante. J'ai même supprimé tous les fichiers associés et les dossiers cachés et après l'avoir réinstallé. Pourtant, l'icône ne fonctionne pas. J'ai essayé d'arrêter et de démarrer le service ... encore rien.

92
user505080

Je viens d'avoir ce bug sur mon Xubuntu 15.10, icône cassée et aucun moyen d'ouvrir le menu. Je pense que le bogue est lié au fait que Dropbox commence à utiliser "zone d'indicateur" pour son icône de barre d'état au lieu de "zone de notification" et que Sudo-fix fonctionne, car certaines variables d'environnement ne sont pas utilisées avec les sessions Sudo.

Au moins pour moi, ce problème peut être résolu en exécutant:

dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start

Cela semble déplacer l'icône vers la "zone de notification" qui corrige à la fois l'icône et le menu. De cette façon, le démon s'exécute en tant qu'utilisateur normal et non en tant que root.

EDIT: Si vous créez votre propre script de démarrage pour Dropbox basé sur ce correctif, n'oubliez pas de désactiver le script de démarrage par défaut à l'aide de la commande "dropbox autostart n" (Merci à StockBreak pour celui-ci, m'a fait gagner du temps ce matin).

EDIT2: ... et pour une raison quelconque, je devais toujours supprimer le paramètre de démarrage automatique de l'interface graphique de Dropbox (cliquez sur l'icône >> Préférences >> Démarrer Dropbox au démarrage du système). J'espère qu'il reste éteint après celui-ci.

EDIT: pour implémenter ce correctif dans un script qui s'exécute à chaque démarrage de session, essayez la solution suivante: https://askubuntu.com/a/795864/49649

97
kk78

Un nouvelle solution de contournement, proposé par fichier C. , est "dbus-launch dropbox start -i" .

Les utilisateurs ont indiqué que les adaptations suivantes fonctionnaient au moins sur les distributions Linux Fedora, Gentoo, Kubuntu, Linux Mint, openSUSE, Slackware, Ubuntu, Xubuntu ... et les environnements de bureau Cinnamon, KDE 4, KDE 5, Mate, Unity, Xfce ...

Cette nouvelle solution de contournement dbus-launch semble fonctionner un peu plus vite, avec plus de fiabilité et plus souvent que la précédente (# ++ DBUS_SESSION_BUS_ADDRESS .

En ligne de commande:

dropbox stop && dbus-launch dropbox start

Ou en tant que fichier script Shell:

#!/bin/bash

dropbox stop && dbus-launch dropbox start
83
Juan M. Gonzalez

Contrairement à la solution proposée par kk78, la méthode suivante résout le problème une fois pour toutes:

  1. Fermez Dropbox.

  2. Ouvrez le fichier /usr/bin/dropbox avec un éditeur de texte (en tant qu'administrateur). Par exemple, dans le terminal

    gksudo gedit /usr/bin/dropbox
    
  3. Créez une nouvelle ligne après import os et ajoutez ce qui suit:

    os.environ['DBUS_SESSION_BUS_ADDRESS'] = ""
    
  4. Sauvegarder et redémarrer

Maintenant, Dropbox fonctionnera correctement:

Gif tutorial

27
darl

Grâce à la solution de kk78, j'ai créé cette solution de contournement complète (voir aussi mon autre post ):

J'ai copié * mon entrée sur le bureau:

cp ~/.config/autostart/dropbox.desktop ~/.config/autostart/start_dropbox.desktop

Modification de l'entrée comme ceci (veuillez noter le mot 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

Et désactivé le démarrage automatique de Dropbox:

dropbox autostart n

* vous ne pouvez pas simplement le modifier car Dropbox remplace le fichier à chaque fois que vous vous connectez.

22
StockBreak

[Ceci est ma première réponse obsolète, maintenant réservée à la recherche de bogues connexes; pour des solutions de contournement plus récentes et améliorées, sans le désagrément de Sudo lié au changement de propriété/récupération de fichier, voir la réponse de kk78 à la place, ou la ligne de commande "dropbox stop && dbus-launch dropbox start" dans une autre réponse]

Ce bogue de l'icône de la barre des tâches Dropbox semble être lié aux autorisations.

En attendant que le problème soit résolu, une solution temporaire à partir de la ligne de commande (Konsole, Terminal, etc.) fonctionne pour les utilisateurs de Xubuntu, Linux Mint, etc.:

dropbox stop
Sudo dropbox start

Note:

À propos de "Sudo" , exécuter Dropbox en tant que root surmonte le bogue de permission et l’icône de la barre des tâches fonctionne à nouveau correctement.

Cependant, cela a le petit effet secondaire d'avoir quelques fichiers dans le dossier caché ~/.dropbox/ appartenant à la racine maintenant au lieu de l'utilisateur (comme vous pouvez voir avec par exemple un gestionnaire de fichiers tel que Dolphin), et donc le mot de passe root est demandé lors du démarrage de Dropbox.

C'est une solution de contournement temporaire pour que l'icône de la barre d'état Dropbox fonctionne pleinement sous Linux jusqu'à ce que le bogue soit corrigé, espérons-le, par une prochaine mise à jour, mais si le correctif ne restaure pas les autorisations appropriées, une solution rapide après le bogue dans ce cas hypothétique correctif sera:

Sudo dropbox stop
Sudo chown -R USER:GROUP /home/USER/.dropbox
dropbox start

Bien sûr, remplacer USER et GROUP. Par exemple, si vous êtes co-créateur d'Unix, UTF-8, langue Go, etc., cela ressemblerait à quelque chose comme:

Sudo chown -R ken:ken /home/ken/.dropbox

Mise à jour:

Désolé, je viens de voir quelque chose qui rend cette solution de contournement temporaire toujours réalisable mais moins pratique: pas seulement les quelques fichiers déjà mentionnés dans le fichier caché ~/.dropbox appartenant à la racine, ainsi que les fichiers téléchargés des serveurs Dropbox dans le dossier Dropbox (généralement ~/Dropbox ) sur l’ordinateur exécutant Dropbox en tant que root .

Donc, j'utilise toujours cette solution de contournement jusqu'à ce que le correctif soit corrigé, mais si nous voulons l'utiliser, nous devons également appliquer la ligne de récupération des autorisations au dossier Dropbox, du moins lorsque nous souhaitons modifier nos documents téléchargés. Par exemple:

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

Pour gagner du temps et l'appliquer lorsque nous démarrons l'ordinateur, nous pouvons l'inclure dans un simple script Shell, par exemple. un fichier texte dropbox.sh avec la propriété exécutable, que nous pouvons exécuter à partir de la ligne de commande ou par un clic de souris:

#!/bin/bash

dropbox stop
Sudo dropbox start
Sudo chown -R USER:GROUP /home/USER/Dropbox

Solution de rechange simple:

Au lieu de toutes les procédures précédentes, si traiter avec des modifications de propriété de fichier et des récupérations, etc. est trop gênant, l'alternative la plus simple est probablement d'attendre le correctif du bogue Dropbox sans utiliser l'icône, et de simplement vérifier le statut de Dropbox de temps en temps. en utilisant la ligne de commande:

dropbox status

Le résultat, si Dropbox est en cours d’exécution, sera généralement: "À jour" .

Plus tard, vous pourrez probablement utiliser la flèche vers le haut pour relancer rapidement cette ligne à partir d'une petite fenêtre de ligne de commande que vous pourrez garder ouverte.

Voir l’aide supplémentaire en ligne de commande en tapant simplement:

dropbox

Comme déjà suggéré, pour cesser d'utiliser l'autre solution de contournement (Sudo), récupérer la propriété normale du fichier et recommencer à exécuter Dropbox en tant qu'utilisateur normal au lieu de root, utilisez une seule fois (en remplacement de USER et 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

Nouvelle mise à jour:

Voir réponse de kk78 à cette question, avec une solution de contournement bien meilleure que la mienne, et avec l'icône de la barre des tâches Dropbox en tant qu'utilisateur normal, et non pas root. Cela fonctionne au moins pour Xubuntu et Linux Mint.

Il peut également être utilisé comme script Shell:

#!/bin/bash

dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start
8
Juan M. Gonzalez

Au lieu de rester sur une version plus ancienne ou de jouer avec d'autres aspects, j'ai décidé d'utiliser ce script au lieu de la petite icône. Il place la sortie de la commande dropbox status directement dans votre panneau. Cependant, lors de la synchronisation ou de la mise à jour, il y a une petite coche ou un caractère de synchronisation.

Installez le moniteur générique en collant les éléments suivants dans le terminal:

Sudo apt-get install xfce4-genmon-plugin

Définissez le script suivant pour qu'il s'exécute à l'aide du plug-in du panneau Generic Monitor. Je suis allé sans étiquette et l'ai configuré pour fonctionner toutes les cinq secondes.

#!/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

Vous devez exécuter la procédure suivante pour ne pas afficher d'invite de mot de passe (qui peut être ignorée de toute façon) lors de la connexion:

Sudo chown -R USER:GROUP ~/.dropbox

USER:GROUP est normalement juste votre nom d'utilisateur deux fois.

Lorsque je dois modifier un paramètre, je lance simplement Dropbox avec Sudo pour modifier mes paramètres. Comme indiqué sur cette page, le lancement avec Sudo permet à la petite icône et au menu d'apparaître.

De plus, vous pouvez faire écho votre propre icône Dropbox ou une image si vous préférez. Si votre ligne de commande Dropbox ne fonctionne pas, vous pouvez télécharger le script Dropbox python --- ici . (Dans mon cas, je n'utilise pas l'extension * .py pour le nom de script Dropbox python.)

4
jbrock

J'ai modifié le script ~/.dropbox-dist/dropboxd comme suit, puis j'ai redémarré et récupéré l'icône. Puisque ce fichier est écrasé par les mises à jour, je pense que je n'aurai rien à annuler si elles résolvent le problème lors de la prochaine mise à jour.

#!/bin/sh
export DBUS_SESSION_BUS_ADDRESS=""
PAR=$(dirname "$(readlink -f "$0")")
exec "$PAR/dropbox-lnx.x86-3.14.7/dropboxd" "$@"

Mise à jour: Lorsque j'ai essayé ceci sur mon ordinateur portable, cela ne fonctionnait pas au début. J'ai réalisé que j'avais le même problème que "Copier", où l'enregistrement de session XFCE4 démarrait Dropbox avant l'exécution du fichier de démarrage officiel. J'ai modifié mon fichier ~/.profile pour effacer tous les fichiers * .state et * session * dans ~./cache/sessions

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

Mise à jour # 2: Si maintenant avec la version 3.18.1, le problème est toujours là. Je le sais parce que, comme je l'avais prédit, le script ~/.dropbox-dist/dropboxd a été écrasé à chaque mise à jour, ce qui a renvoyé le problème à chaque fois. Le correctif ci-dessus fonctionne de manière fiable sur Xubuntu 14.04, à condition que la restauration de session ne lance pas directement le binaire:

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

En utilisant "Système/Session et démarrage", sous l'onglet "Session", je peux voir que le fichier binaire est visible et serait redémarré si je n'avais pas supprimé les fichiers * session et * state.

A titre expérimental, j'ai essayé d'utiliser Upstart pour lancer Dropbox avant le début du suivi de session. J'ai d'abord créé le dossier /home/jhm/.init, puis un fichier appelé dropbox.conf contenant:

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

J'utilise cette méthode sur mon ordinateur portable Dell Xubuntu 14.04, et le programme est maintenant masqué du suivi de session. Je n'ai donc pas besoin de supprimer de fichiers.

Étant donné que dbus-launch crée un nouveau bus de session DBUS privé, DropBox ne trouvera jamais le service appindicator car ce sera le seul processus sur ce bus (autre que DBUS), ce qui revient à peu près au même que export DBUS_SESSION_BUS_ADDRESS="" Les deux solutions causent le repli de DropBox dans la barre d'état système API. Ceci est appelé une "zone de notification" dans l'onglet "Eléments du panneau XFCE". Assurez-vous qu'il n'a pas été supprimé du panneau.

En utilisant d-feet et dbus-monitor, j'ai découvert que le problème était que DropBox n'avait pas réussi à implémenter les interfaces "Menu" sur le chemin DBUS non existant "/ MenuBar". Les fans de DBUS peuvent explorer org.kde.StatusNotifierWatcher avec d-feet pour en savoir plus. Étant donné que le binaire dropbox est responsable de la prise en charge de ces interfaces, il n'y a rien à faire à part attendre la prochaine mise à jour. En passant, toutes les librairies QT5.5 nécessaires sont incluses dans le programme. Pas besoin de télécharger des packages de développement.

J'ai également constaté que seule la boîte de dialogue de l'interface graphique semblait empêcher de manière fiable la réinstallation du fichier de démarrage. Une fois que l'option 'Démarrer DropBox au démarrage du système' était désactivée, elle le restait.

3
user411778

Je lance le même système d’exploitation, Xubuntu 14.04 x64, et je vois cette icône qui ne répond pas aux clics (pas de menu):

Dropbox icon on Xfce4-Panel

Les notes de publication de .14.5 (qui est arrivé le 9 février 2016 et a été installé sur ma machine) indiquent que Dropbox a été mis à jour pour utiliser Qt 5.5 sur Linux.

L'exécution de ce qui suit donne la version Qt sur ma machine:

~$ qmake -v
QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu

Donc, je mis à niveau vers Qt 5.5 en utilisant les instructions à partir d’ici .

Ce sont les étapes que j'ai prises:

Sudo apt-add-repository ppa:beineri/opt-qt551-trusty
Sudo apt-get update
Sudo apt-get install qt-latest qtcreator-latest

J'ai ensuite défini les éléments suivants dans ~/.bashrc et redémarré la session:

export QT_SELECT=opt-qt55

J'ai vérifié que Qt 5.5 est maintenant installé:

~$ qmake -v
QMake version 3.0
Using Qt version 5.5.1 in /opt/qt55/lib

Ensuite, réinstallez Dropbox et redémarrez votre session:

Sudo apt-get remove dropbox
Sudo apt-get install nautilus-dropbox

Malheureusement, cela n'a pas fonctionné et l'icône de la barre des tâches est restée identique.

Ensuite, je me suis demandé si le retrait du plug-in Indicator du panneau Xfce4 fonctionnerait.

  1. Supprimer Indicateur Plugin
  2. ~? dropbox stop && dropbox start

Puis, tout à coup, une icône de liste déroulante sauvage apparaît dans le panneau de notification!

Dropbox icon appears

Il semble que l'icône Dropbox aime résider dans le panneau de notification, mais pas le plug-in Indicateur.

Mais ... j'aime bien le plug-in Indicator, car il me donne des alertes par courrier électronique et un contrôle du niveau de volume. Donc, je l'ai ré-ajouté au panneau. Jusqu'ici tout va bien.

Mais, après avoir redémarré la session, j'ai encore une fois ces conneries:

Dropbox icon on Xfce4-Panel

Alors maintenant je suis coincé. Je ne sais pas comment faire pour que l'icône Dropbox apparaisse dans le panneau de notification au lieu du panneau d'indicateur, et je suis sûr que l'enfer ne va pas répéter ces étapes à chaque fois que je me connecte!

2
sharky

Cela corrige le problème.

Dans le menu Dropbox, allez à Préférences. Désélectionnez "Démarrer Dropbox au démarrage du système".

Accédez à Session et démarrage> Démarrage automatique de l'application et ajoutez l'élément de démarrage suivant:

bash -c 'export DBUS_SESSION_BUS_ADDRESS="" && dropbox start -i'
2
jbrock

Ce n'est pas une réponse en soi, mais étant donné que nous sommes une communauté assez importante: HERE est le lien direct vers la page de support client de la messagerie dropbox. Si nous leur posons tous la question, peut-être qu’ils vont régler le problème eux-mêmes.

0
dez93_2000

Étant donné que ma liste déroulante est une application de démarrage, recherchez Dash pour Startup Application, puis appuyez sur Modifier dans l'entrée Dropobox et remplacez

vieux

dropbox start -i

nouveau

env XDG_CURRENT_DESKTOP = Unity dropbox start -i

engager le problème: alt-F2 puis taper r hit enter

Cela fonctionne pour Ubuntu 18.10 et plus

0
Scott Stensland

(testé sur xbuntu 17.04)

Pour redémarrer la boîte de dépôt avec l’icône de la barre des tâches appropriée: dropbox stop && dbus-launch dropbox start

Dropbox remplace le fichier de démarrage automatique ~/.config/autostart/dropbox.desktop au démarrage par /usr/share/applications/dropbox.desktop. Pour rendre le correctif permanent, modifiez ce dernier:

Sudo sed -i 's/Exec=dropbox start -i/Exec=dbus-launch dropbox start -i/' /usr/share/applications/dropbox.desktop

Vous pouvez également vouloir modifier le lanceur du menu principal:

sed 's/Exec=dropbox start -i/Exec=dbus-launch dropbox start -i/' ~/.local/share/applications/dropbox.desktop
0
tekumara