Tài liệu KeePass trong http://keepass.info/help/v2/setup.html#mono , mặc dù không đề cập cụ thể đến OS X, mô tả vấn đề của bạn:
Clipboard:
Trên một số hệ thống, thói quen clipboard của Mono không hoạt động đúng. Trong trường hợp này, cài đặt gói xsel. Nếu xsel
được cài đặt, KeePass ≥ 2.20 sử dụng tiện ích này cho các hoạt động của bảng tạm.
Vì vậy xsel
nên giúp đỡ. ( xsel
có sẵn từ MacPorts ( http://www.macports.org/ports.php?by=all&substr=&page=316&pagesize=50 ). Nguồn có sẵn tại đây: http://www.vergenet.net/~conrad/ phần mềm / xsel / # tải xuống )
EDIT : Nhưng nó không. Tôi tò mò vì vậy tôi đã biên dịch xsel
trên máy Mac của mình. Nó không giải quyết được vấn đề với sao chép / dán (đã được thử nghiệm với Portable KeePass 2.20.1), như tôi sợ, tôi phải nói. Tại sao? Bởi vì như đã nêu ở đây http://www.kfish.org/software/xsel/ xsel
là một công cụ thao túng nội dung clipboard của các ứng dụng X11 . X11 cung cấp giao diện người dùng đồ họa cho Linux và UNIX, nhưng OS X sử dụng Quartz thay vào đó, và Mono cũng vậy, như tôi đã nhận ra (xem http://www.mono-project.com/WinForms# về_System.Windows.Forms ).
Có một cách giải quyết để sao chép tên người dùng và mật khẩu vào clipboard, như được giải thích trong chủ đề này http://sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260 :
Ureka (sic) . 2.19 của bạn đang trên đường sao chép dán hoạt động trên MAC thông qua Mono! Nút của bạn để sao chép tên người dùng và nút của bạn để sao chép mật khẩu hoạt động ngay bây giờ !!!
Áp phích trên đề cập đến các nút này (KeePass 2.20.1 di động được hiển thị đang chạy trên Windows (xin lỗi, không có máy Mac nào gần đó)):
Để sao chép tên người dùng:
Để sao chép mật khẩu:
CHỈNH SỬA :
Tôi muốn chia sẻ cách tôi biên dịch xsel
trong trường hợp ai đó cần nó trên OS X:
Cài đặt X11 từ http://support.apple.com/kb/HT5293 (điều này chỉ áp dụng cho người dùng OS X 10.8 "Mountain Lion").
Các tệp thư viện và tiêu đề Symlink từ /opt/X11/include/X11
đến /usr/local/include/X11
và từ /opt/X11/lib
đến /usr/local/lib
(ngoài ra, bạn có thể symlink đến /usr/include
và /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
Nếu không, bạn sẽ nhận được rất nhiều lỗi về các tập tin không tìm thấy hoặc thiếu các biểu tượng. Tôi đã thử chuyển các thư mục X11 không chuẩn như một tùy chọn để ./configure
không thành công.
Tải xuống từ http://www.vergenet.net/~conrad/software/xsel/#doad và giải nén, ví dụ, vào Máy tính để bàn của bạn.
Bạn cần gcc
thư viện cộng. Cài đặt Xcode và sau đó cài đặt các công cụ dòng lệnh từ Xcode> Tùy chọn> Tải xuống> Thành phần.
Thay đổi thư mục, cấu hình và biên dịch:
$ 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
Bạn cũng có thể cài đặt xsel
với MacPorts bằng lệnh sudo port install xsel
. Trong thiết lập của tôi, nó cũng yêu cầu các liên kết tượng trưng cho các thư viện và tệp tiêu đề X11 và cần nhiều thời gian hơn để biên dịch.
Tôi cũng muốn chia sẻ một số cảnh báo khi sử dụng KeePass trên máy Mac:
KeePass 2.18 (từ http://keepass2.openix.be ) gặp sự cố với HFS + phân biệt chữ hoa chữ thường. KeePass.exe
được gõ Keepass.exe
(chú ý chữ thường 'p') trong KeePass2.18.app/Contents/MacOS/startkeepass.sh
(để nó âm thầm thất bại). Tôi đã phải sử dụng ổ flash USB được định dạng bằng HFS + không phân biệt chữ hoa chữ thường và chạy KeePass từ đó.
Tôi gặp rất nhiều khó khăn khi để KeePass 2.20.1 hoạt động trên OS X 10.8 "Mountain Lion". Nó không thể thoát khỏi thông báo lỗi:
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
Cuối cùng tôi đã tìm ra thủ phạm: Ghi chú phát hành cho trạng thái phiên bản 2.20.1 ( http://keepass.info/news/n121004_2.20.1.html ):
Thay đổi từ 2.20 đến 2.20.1: Trên các hệ thống tương tự Unix, KeePass hiện lưu trữ hầu hết các tệp tạm thời của nó trong một thư mục tạm thời riêng tư (tốt nhất là trong $XDG_RUNTIME_DIR
).
Theo http://stiterias.freedesktop.org/basingir-spec/basingir-spec-latest.html :
$XDG_RUNTIME_DIR
định nghĩa thư mục cơ sở liên quan đến các tệp thời gian chạy không thiết yếu dành riêng cho người dùng và các đối tượng tệp khác (như ổ cắm, đường ống có tên, ...) nên được lưu trữ. Thư mục PHẢI được sở hữu bởi người dùng ...
XDG_RUNTIME_DIR
đã không được thiết lập. Tôi đặt nó vào một thư mục mà tôi sở hữu và KeePass hoạt động như một cơ duyên:
$ echo $XDG_RUNTIME_DIR
$ mkdir ~/.mono
$ export XDG_RUNTIME_DIR=~/.mono/; mono --desktop /Volumes/USB_Flash_Drive/KeePass-2.20.1/KeePass.exe