¿Qué podría arreglar una instalación de KeePass que no se copiará o pegará en OS X?

8

KeePass no copiará ni pegará, y mucho menos hará autotipo.

He instalado el paquete KeePass 2.18 para Mac desde enlace . No pude encontrar un paquete de Mac más reciente para KeePass, así que también reemplacé todos los archivos de ese paquete con los del Portable KeePass 2.20.1 (Paquete ZIP). Eso fue en la página enlace , enlace a zip real: enlace . Así que estoy ejecutando exitosamente KeePass 2.20.1.

Estoy ejecutando la versión 2.10.9 de Mono.

Estoy ejecutando OS X 10.7.5 en una MacBook Pro.

No puedo creer que el sitio de KeePass promocione la compatibilidad con Mac cuando no se copie / pegue. Esa es una funcionalidad bastante básica que falta. Las búsquedas revelan que otros han tenido este problema desde la versión 2.18, pero no hay soluciones, no hay informes de errores.

¿Alguien ha podido resolver este problema?

    
pregunta minnow 05.11.2012 - 19:33

1 respuesta

6

La documentación de KeePass en enlace , aunque no menciona específicamente OS X, describe su problema:

  

Portapapeles:   En algunos sistemas, las rutinas del portapapeles de Mono no funcionan   correctamente. En este caso, instale el paquete xsel. Si xsel es   instalado, KeePass ≥ 2.20 usa esta utilidad para las operaciones del portapapeles.

Entonces xsel debería ayudar. ( xsel está disponible en MacPorts ( enlace La fuente está disponible aquí: enlace )

EDIT : Pero no es así. Tenía curiosidad, así que compilé xsel en mi Mac. No resolvió el problema con copiar / pegar (probado con Portable KeePass 2.20.1), como temía, debo decir. ¿Por qué? Porque como se indica aquí, enlace xsel es una herramienta que manipula el contenido del portapapeles de X11 aplicaciones X11 proporciona la interfaz gráfica de usuario para Linux y UNIX, pero OS X usa Quartz en su lugar, y también lo hace Mono, como me di cuenta (vea enlace ).

Hay una solución alternativa para copiar el nombre de usuario y la contraseña en el portapapeles, como se explica en este hilo enlace :

  

Ureka (sic) . Su 2.19 está en la ruta para copiar y pegar trabajando en el MAC a través de   ¡Mono! Su botón para copiar el nombre de usuario, y su botón para copiar el nombre de usuario   la contraseña funciona ahora !!!

El póster anterior se refiere a estos botones (se muestra KeePass 2.20.1 portátil ejecutándose en Windows (lo siento, no Mac cerca)):

Para copiar el nombre de usuario:

Paracopiarlacontraseña:

EDIT :

Me gustaría compartir cómo compilé xsel en caso de que alguien lo necesite en OS X:

  1. Instale X11 desde enlace (esto solo se aplica a los usuarios de OS X 10.8 "Mountain Lion").

  2. Los archivos de encabezado y biblioteca de Symlink de /opt/X11/include/X11 a /usr/local/include/X11 y de /opt/X11/lib a /usr/local/lib (alternativamente, puedes vincular a /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
    

    De lo contrario, obtendrá muchos errores sobre los archivos que no se encuentran o los símbolos que faltan. Intenté pasar los directorios X11 no estándar como una opción para ./configure sin éxito.

  3. Descargue desde enlace y extraiga, por ejemplo, en su Escritorio.

  4. Necesita gcc más bibliotecas. Instale Xcode y luego instale las herramientas de línea de comandos desde Xcode > Preferencias > Descargas > Componentes.

  5. Cambiar directorio, configurar y compilar:

    $ 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
    

También puedes instalar xsel con MacPorts usando el comando sudo port install xsel . En mi configuración, también se requieren los enlaces simbólicos para las bibliotecas X11 y los archivos de encabezado y se necesitó mucho más tiempo para compilar.

También me gustaría compartir algunas advertencias al usar KeePass en una Mac:

  1. KeePass 2.18 (de enlace ) tiene problemas con HFS + que distingue entre mayúsculas y minúsculas. KeePass.exe se escribe Keepass.exe (note minúscula 'p') en KeePass2.18.app/Contents/MacOS/startkeepass.sh (para que falle silenciosamente). Tuve que usar una unidad flash USB formateada con HFS + que no distingue mayúsculas de minúsculas y ejecutar KeePass desde allí.

  2. Tuve muchos problemas para que KeePass 2.20.1 funcione en OS X 10.8 "Mountain Lion". No pudo deshacerse del mensaje de error:

    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
    

    Finalmente encontré al culpable: Las notas de la versión para el estado de la versión 2.20.1 ( enlace ):

      

    Cambios de 2.20 a 2.20.1:   En sistemas similares a Unix, KeePass ahora almacena la mayoría de sus archivos temporales en un directorio temporal privado (preferiblemente en $XDG_RUNTIME_DIR ).

    Según enlace :

    $XDG_RUNTIME_DIR define el directorio base en relación con el cual se deben almacenar los archivos de tiempo de ejecución no esenciales específicos del usuario y otros objetos de archivo (como sockets, canalizaciones con nombre, ...). El directorio DEBE ser propiedad del usuario ...

    XDG_RUNTIME_DIR no se ha establecido. Lo puse en un directorio que tenía y KeePass funcionó a la perfección:

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

    
respondido por el jaume 09.11.2012 - 12:15

Lea otras preguntas en las etiquetas