8 votes

Comment réparer une installation de KeePass qui ne peut ni copier ni coller sous OS X ?

KeePass ne peut pas copier et coller, et encore moins faire de l'autotypie.

J'ai installé le paquet KeePass 2.18 Mac à partir de http://keepass2.openix.be/ . Je n'ai pas trouvé de paquetage Mac plus récent pour KeePass, j'ai donc également remplacé tous les fichiers de ce paquetage par ceux du paquetage Portable KeePass 2.20.1 (ZIP). C'était à partir de la page http://keepass.info/download.html , lien vers le zip actuel : http://downloads.sourceforge.net/keepass/KeePass-2.20.1.zip . J'exécute donc avec succès KeePass 2.20.1.

J'utilise la version 2.10.9 de Mono.

J'utilise OS X 10.7.5 sur un MacBook Pro.

Je ne peux pas croire que le site de KeePass vante la compatibilité Mac alors qu'il ne peut pas copier/coller. C'est une fonctionnalité essentielle qui manque. Des recherches révèlent que d'autres personnes ont eu ce problème depuis la version 2.18, mais aucune solution de contournement, aucun rapport de bogue.

Quelqu'un a-t-il pu résoudre ce problème ?

7voto

jaume Points 13186

La documentation de KeePass dans http://keepass.info/help/v2/setup.html#mono bien que ne mentionnant pas spécifiquement OS X, décrit votre problème :

Le presse-papiers : Sur certains systèmes, les routines du presse-papiers de Mono ne fonctionnent pas. fonctionnent pas correctement. Dans ce cas, installez le paquet xsel. Si xsel est installé, KeePass 2.20 utilise cet utilitaire pour les opérations du presse-papiers.

Así que xsel devrait aider. ( xsel est disponible sur MacPorts ( http://www.macports.org/ports.php?by=all&substr=&page=316&pagesize=50 ). La source est disponible ici : http://www.vergenet.net/~conrad/software/xsel/#download )

EDIT : Mais ce n'est pas le cas. J'étais curieux alors j'ai compilé xsel sur mon Mac. Cela n'a pas résolu le problème du copier/coller (testé avec Portable KeePass 2.20.1), comme je le craignais, je dois le dire. Pourquoi ? Parce que, comme indiqué ici http://www.kfish.org/software/xsel/ xsel est un outil qui manipule le contenu du presse-papiers de X11 applications. X11 fournit l'interface utilisateur graphique pour Linux et UNIX, mais OS X utilise Quartz à la place, et Mono aussi, comme je l'ai réalisé (voir http://www.mono-project.com/WinForms#About_System.Windows.Forms ).

Il existe une solution de contournement pour copie nom d'utilisateur et mot de passe dans le presse-papiers, comme expliqué dans ce fil de discussion http://sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260 :

Ureka (sic) . Votre 2.19 est sur la voie du copier-coller fonctionnant sur le MAC via Mono ! Votre bouton pour copier le nom d'utilisateur, et votre bouton pour copier le mot de passe fonctionne maintenant !!!

L'affiche ci-dessus fait référence à ces boutons (KeePass 2.20.1 portable affiché fonctionnant sous Windows (désolé, pas de Mac à proximité)) :

Pour copier le nom d'utilisateur :

enter image description here

Pour copier le mot de passe :

enter image description here

EDIT :

J'aimerais partager comment j'ai compilé xsel au cas où quelqu'un en aurait besoin sous OS X :

  1. Installer X11 à partir de http://support.apple.com/kb/HT5293 (ceci ne s'applique qu'aux utilisateurs de OS X 10.8 "Mountain Lion").

  2. Les fichiers d'en-tête et de bibliothèque Symlink de /opt/X11/include/X11 a /usr/local/include/X11 et de /opt/X11/lib a /usr/local/lib (alternativement vous pouvez faire un lien symbolique vers /usr/include y /usr/lib ):

    $ sudo ln -s /opt/X11/include/X11 /usr/local/include/X11
    $ for lib in $(ls /opt/X11/lib/lib*); do sudo ln -sf $lib /usr/local/lib; done

    Sinon, vous obtiendrez de nombreuses erreurs concernant des fichiers non trouvés ou des symboles manquants. J'ai essayé de passer les répertoires X11 non-standard comme une option à ./configure sans succès.

  3. Télécharger à partir de http://www.vergenet.net/~conrad/software/xsel/#download et l'extraire, par exemple, sur votre Bureau.

  4. Vous devez gcc plus les bibliothèques. Installez Xcode, puis installez les outils de ligne de commande à partir de Xcode>Préférences>Téléchargements>Composants.

  5. Changez de répertoire, configurez et compilez :

    $ cd xsel-1.2.0
    $ ./configure --prefix /usr/local
    $ make
    make  all-am
    if gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -fno-strict-aliasing -Wall -Werror -g -std=gnu99 -Wdeclaration-after-statement -Wno-unused -MT xsel.o -MD -MP -MF ".deps/xsel.Tpo" -c -o xsel.o xsel.c; \
        then mv -f ".deps/xsel.Tpo" ".deps/xsel.Po"; else rm -f ".deps/xsel.Tpo"; exit 1; fi
    gcc  -g -O2 -fno-strict-aliasing -Wall -Werror -g -std=gnu99 -Wdeclaration-after-statement -Wno-unused   -o xsel  xsel.o  -lX11
    $ make install

Vous pouvez également installer xsel avec MacPorts en utilisant la commande sudo port install xsel . Dans ma configuration, il a également besoin des liens symboliques pour les bibliothèques X11 et les fichiers d'en-tête, ainsi que de beaucoup plus long à compiler.

J'aimerais également vous faire part de quelques mises en garde concernant l'utilisation de KeePass sur un Mac :

  1. KeePass 2.18 (de http://keepass2.openix.be ) a des problèmes avec le HFS+ sensible à la casse. KeePass.exe est tapé Keepass.exe (remarquez le "p" minuscule) dans KeePass2.18.app/Contents/MacOS/startkeepass.sh (pour qu'il échoue silencieusement). J'ai dû utiliser un lecteur flash USB formaté avec HFS+ insensible à la casse et exécuter KeePass à partir de là.

  2. J'ai eu beaucoup de mal à faire fonctionner KeePass 2.20.1 sur OS X 10.8 "Mountain Lion". Il n'arrivait pas à se débarrasser du message d'erreur :

    System.ArgumentException: Directory does not exists
    Parameter name: path
      at System.IO.FileSystemWatcher..ctor (System.String path, System.String filter) [0x00000] in <filename unknown>:0 
      at (wrapper remoting-invoke-with-check) System.IO.FileSystemWatcher:.ctor (string,string)
      at KeePass.Util.IpcBroadcast.FswStartServer () [0x00000] in <filename unknown>:0 
      at KeePass.Util.IpcBroadcast.StartServer () [0x00000] in <filename unknown>:0 
      at KeePass.Forms.MainForm.OnFormLoad (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Form.OnLoad (System.EventArgs e) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e) [0x00000] in <filename unknown>:0

    J'ai finalement trouvé le coupable : les notes de publication de la version 2.20.1 indiquent ( http://keepass.info/news/n121004_2.20.1.html ):

    Changements de la 2.20 à la 2.20.1 : Sur les systèmes de type Unix, KeePass stocke désormais la plupart de ses fichiers temporaires dans un répertoire temporaire privé (de préférence dans le répertoire $XDG_RUNTIME_DIR ).

    Selon http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html :

    $XDG_RUNTIME_DIR définit le répertoire de base par rapport auquel les fichiers d'exécution non essentiels spécifiques à l'utilisateur et les autres objets de fichiers (tels que les sockets, les pipes nommés, ...) doivent être stockés. Le répertoire DOIT appartenir à l'utilisateur ...

    XDG_RUNTIME_DIR n'était pas réglé. J'ai défini un répertoire qui m'appartient et KeePass a fonctionné à merveille :

    $ echo $XDG_RUNTIME_DIR
    $ mkdir ~/.mono
    $ export XDG_RUNTIME_DIR=~/.mono/; mono --desktop /Volumes/USB_Flash_Drive/KeePass-2.20.1/KeePass.exe

enter image description here

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X