La documentazione di KeePass nel collegamento , sebbene non menzioni specificamente OS X, descrive il problema:
Clipboard:
On some systems, Mono's clipboard routines don't work
properly. In this case, install the xsel package. If xsel
is
installed, KeePass ≥ 2.20 uses this utility for clipboard operations.
Quindi xsel
dovrebbe aiutare. ( xsel
è disponibile da MacPorts ( link ). La fonte è disponibile qui: link )
EDIT : ma non è così. Ero curioso quindi ho compilato xsel
sul mio Mac. Non ha risolto il problema con copia / incolla (testato con Portable KeePass 2.20.1), come temevo, devo dire. Perché? Perché come indicato qui link xsel
è uno strumento che manipola il contenuto degli appunti di X11 applicazioni. X11 fornisce l'interfaccia utente grafica per Linux e UNIX, ma OS X utilizza invece Quartz , così come Mono, come ho capito (vedi link ).
C'è una soluzione alternativa per copiare nome utente e password negli appunti, come spiegato in questa discussione link :
Ureka (sic). Your 2.19 is on the path to copy paste working on the MAC via
Mono! Your button to copy the username, and your button to copy the
password works now!!!
Il poster sopra si riferisce a questi pulsanti (portatile KeePass 2.20.1 mostrato in esecuzione su Windows (mi dispiace, nessun Mac nelle vicinanze)):
Per copiare il nome utente:
Percopiarelapassword:
Modifica :
Mi piacerebbe condividere come ho compilato xsel
nel caso qualcuno ne abbia bisogno su OS X:
-
Installa X11 dal link (questo si applica solo agli utenti OS X 10.8 "Mountain Lion").
-
File di intestazione e libreria di collegamenti simbolici da /opt/X11/include/X11
a /usr/local/include/X11
e da /opt/X11/lib
a /usr/local/lib
(in alternativa puoi collegare un link simbolico a /usr/include
e /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
Altrimenti si avranno molti errori su file non trovati o simboli mancanti. Ho provato a passare le directory X11 non standard come un'opzione a ./configure
senza successo.
-
Scarica dal link ed estrai, ad esempio, sul tuo desktop.
-
Sono necessarie gcc
più librerie. Installa Xcode e quindi installa gli strumenti da riga di comando da Xcode > Preferences > Downloads > Components.
-
Cambia directory, configura e compila:
$ 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
Puoi anche installare xsel
con MacPorts usando il comando sudo port install xsel
. Nella mia configurazione richiedeva anche i collegamenti simbolici per le librerie X11 e i file di intestazione e aveva bisogno di molto più lungo per compilare.
Mi piacerebbe anche condividere alcuni avvertimenti quando usi KeePass su un Mac:
-
KeePass 2.18 (dal link ) ha problemi con HFS + case-sensitive. KeePass.exe
è digitato Keepass.exe
(notare la 'p' minuscola) in KeePass2.18.app/Contents/MacOS/startkeepass.sh
(in modo che fallisca silenziosamente). Ho dovuto usare una chiavetta USB formattata con HFS + senza distinzione tra maiuscole e minuscole e lanciare KeePass da lì.
-
Ho avuto un sacco di problemi nel far funzionare KeePass 2.20.1 su OS X 10.8 "Mountain Lion". Non è stato possibile eliminare il messaggio di errore:
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
Ho finalmente trovato il colpevole: le note di rilascio per lo stato della versione 2.20.1 ( link ):
Changes from 2.20 to 2.20.1:
On Unix-like systems, KeePass now stores most of its temporary files in a private temporary directory (preferably in $XDG_RUNTIME_DIR
).
In base al link :
$XDG_RUNTIME_DIR
definisce la directory di base relativa a quali file runtime non essenziali specifici dell'utente e altri oggetti file (come socket, named pipe, ...) devono essere memorizzati. La directory DEVE essere di proprietà dell'utente ...
XDG_RUNTIME_DIR
non è stato impostato. L'ho impostato su una directory di mia proprietà e KeePass ha funzionato come un incantesimo:
$ echo $XDG_RUNTIME_DIR
$ mkdir ~/.mono
$ export XDG_RUNTIME_DIR=~/.mono/; mono --desktop /Volumes/USB_Flash_Drive/KeePass-2.20.1/KeePass.exe