Dokumentasi KeePass di http://keepass.info/help/v2/setup.html#mono , meskipun tidak secara khusus menyebutkan OS X, menjelaskan masalah Anda:
Clipboard:
Pada beberapa sistem, rutinitas clipboard Mono tidak berfungsi dengan baik. Dalam hal ini, instal paket xsel. Jika xsel
diinstal, KeePass ≥ 2.20 menggunakan utilitas ini untuk operasi clipboard.
Jadi xsel
seharusnya membantu. ( xsel
tersedia dari MacPorts ( http://www.macports.org/ports.php?by=all&substr=&page=316&pagesize=50 ). Sumber tersedia di sini: http://www.vergenet.net/~conrad/ software / xsel / # unduh )
EDIT : Tapi tidak. Saya penasaran jadi saya kompilasi xsel
di Mac saya. Itu tidak menyelesaikan masalah dengan copy / paste (diuji dengan Portable KeePass 2.20.1), seperti yang saya khawatirkan, saya harus katakan. Mengapa? Karena seperti yang dinyatakan di sini http://www.kfish.org/software/xsel/ xsel
adalah alat yang memanipulasi konten clipboard dari aplikasi X11 . X11 menyediakan antarmuka pengguna grafis untuk Linux dan UNIX, tetapi OS X menggunakan Quartz sebagai gantinya, dan begitu juga Mono, seperti yang saya sadari (lihat http://www.mono-project.com/WinForms#About_System.Windows.Forms ).
Ada solusi untuk menyalin nama pengguna dan kata sandi ke papan klip, seperti dijelaskan di utas ini http://sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260 :
Ureka (sic) . 2.19 Anda berada di jalur untuk menyalin tempel yang bekerja pada MAC melalui Mono! Tombol Anda untuk menyalin nama pengguna, dan tombol Anda untuk menyalin kata sandi berfungsi sekarang !!!
Poster di atas mengacu pada tombol-tombol ini (KeePass 2.20.1 portabel ditampilkan berjalan pada Windows (maaf, tidak ada Mac di dekatnya)):
Untuk menyalin nama pengguna:
Untuk menyalin kata sandi:
EDIT :
Saya ingin membagikan bagaimana saya mengkompilasi xsel
jika seseorang membutuhkannya di OS X:
Instal X11 dari http://support.apple.com/kb/HT5293 (ini hanya berlaku untuk pengguna OS X 10.8 "Mountain Lion").
File header dan pustaka symlink dari /opt/X11/include/X11
ke /usr/local/include/X11
dan dari /opt/X11/lib
ke /usr/local/lib
(atau Anda dapat symlink ke /usr/include
dan /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
Kalau tidak, Anda akan mendapatkan banyak kesalahan tentang file yang tidak ditemukan atau simbol yang hilang. Saya mencoba melewati direktori X11 non-standar sebagai opsi untuk ./configure
tidak berhasil.
Unduh dari http://www.vergenet.net/~conrad/software/xsel/#download dan ekstrak, misalnya, ke Desktop Anda.
Anda membutuhkan gcc
perpustakaan plus. Instal Xcode dan kemudian instal alat-alat baris perintah dari Xcode> Preferensi> Unduhan> Komponen.
Ubah direktori, konfigurasikan dan kompilasi:
$ 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
Anda juga dapat menginstal xsel
dengan MacPorts menggunakan perintah sudo port install xsel
. Dalam pengaturan saya juga diperlukan symlink untuk pustaka X11 dan file header dan perlu waktu lebih lama untuk dikompilasi.
Saya juga ingin berbagi beberapa peringatan ketika menggunakan KeePass di Mac:
KeePass 2.18 (dari http://keepass2.openix.be ) memiliki masalah dengan HFS + case-sensitive. KeePass.exe
diketik Keepass.exe
(perhatikan huruf kecil 'p') di KeePass2.18.app/Contents/MacOS/startkeepass.sh
(sehingga gagal diam-diam). Saya harus menggunakan USB flash drive yang diformat dengan HFS + case-insensitive dan menjalankan KeePass dari sana.
Saya memiliki banyak kesulitan untuk mendapatkan KeePass 2.20.1 untuk bekerja pada OS X 10.8 "Mountain Lion". Itu tidak bisa menghilangkan pesan kesalahan:
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
Saya akhirnya menemukan pelakunya: Catatan rilis untuk negara versi 2.20.1 ( http://keepass.info/news/n121004_2.20.1.html ):
Perubahan dari 2.20 ke 2.20.1: Pada sistem mirip Unix, KeePass sekarang menyimpan sebagian besar file sementara di direktori sementara privat (lebih disukai di $XDG_RUNTIME_DIR
).
Menurut http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html :
$XDG_RUNTIME_DIR
mendefinisikan direktori dasar relatif dimana file runtime non-esensial khusus pengguna dan objek file lainnya (seperti soket, pipa bernama, ...) harus disimpan. Direktori HARUS dimiliki oleh pengguna ...
XDG_RUNTIME_DIR
tidak disetel. Saya mengaturnya ke direktori yang saya miliki dan KeePass bekerja seperti pesona:
$ echo $XDG_RUNTIME_DIR
$ mkdir ~/.mono
$ export XDG_RUNTIME_DIR=~/.mono/; mono --desktop /Volumes/USB_Flash_Drive/KeePass-2.20.1/KeePass.exe