เอกสาร KeePass ในhttp://keepass.info/help/v2/setup.html#monoแม้ว่าจะไม่ได้กล่าวถึง OS X โดยเฉพาะ แต่ก็อธิบายถึงปัญหาของคุณ:
คลิปบอร์ด:
ในบางระบบกิจวัตรคลิปบอร์ดของ Mono ไม่ทำงานอย่างถูกต้อง ในกรณีนี้ให้ติดตั้งแพ็คเกจ xsel หากxsel
ติดตั้งแล้ว KeePass ≥ 2.20 จะใช้ยูทิลิตี้นี้สำหรับการทำงานของคลิปบอร์ด
ดังนั้นxsel
ควรช่วย ( xsel
หาได้จาก MacPorts ( http://www.macports.org/ports.php?by=all&substr=&page=316&pagesize=50 )) มีแหล่งข้อมูลที่นี่: http://www.vergenet.net/~conrad/ ซอฟต์แวร์ / xsel / # ดาวน์โหลด )
แก้ไข : แต่มันไม่ได้ ฉันอยากรู้อยากเห็นดังนั้นฉันรวบรวมxsel
บน Mac ของฉัน มันไม่ได้แก้ปัญหาด้วยการคัดลอก / วาง (ทดสอบด้วย Portable KeePass 2.20.1) อย่างที่ฉันกลัวฉันต้องบอกว่า ทำไม? เพราะตามที่ระบุไว้ที่นี่http://www.kfish.org/software/xsel/ xsel
เป็นเครื่องมือที่จัดการเนื้อหาคลิปบอร์ดของแอปพลิเคชั่นX11 X11 มีส่วนต่อประสานกราฟิกกับผู้ใช้สำหรับ Linux และ UNIX แต่ OS X ใช้ควอตซ์แทนและ Mono ทำตามที่ฉันรับรู้ (ดูhttp://www.mono-project.com/WinForms#About_System.Windows.Forms )
มีวิธีแก้ปัญหาสำหรับการคัดลอกชื่อผู้ใช้และรหัสผ่านไปยังคลิปบอร์ดดังอธิบายในหัวข้อนี้http://sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260 :
Ureka (sic) 2.19 ของคุณอยู่บนเส้นทางที่จะคัดลอกแปะทำงานบน MAC ผ่านทาง Mono! ปุ่มของคุณเพื่อคัดลอกชื่อผู้ใช้และปุ่มของคุณเพื่อคัดลอกรหัสผ่านใช้งานได้ในขณะนี้ !!!
โปสเตอร์ด้านบนอ้างถึงปุ่มเหล่านี้ (พกพา KeePass 2.20.1 ที่แสดงบน Windows (ขออภัยไม่มี Mac ใกล้เคียง)):
สำหรับการคัดลอกชื่อผู้ใช้:
สำหรับการคัดลอกรหัสผ่าน:
แก้ไข :
ฉันต้องการแบ่งปันวิธีรวบรวมxsel
ในกรณีที่มีคนต้องการมันใน OS X:
ติดตั้ง X11 จากhttp://support.apple.com/kb/HT5293 (ใช้ได้กับผู้ใช้ OS X 10.8 "Mountain Lion" เท่านั้น)
Symlink ส่วนหัวและไฟล์ไลบรารีจาก/opt/X11/include/X11
ไปยัง/usr/local/include/X11
และจาก/opt/X11/lib
ไปยัง/usr/local/lib
(หรือคุณสามารถ symlink ไปยัง/usr/include
และ/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
มิฉะนั้นคุณจะได้รับข้อผิดพลาดมากมายเกี่ยวกับไฟล์ที่ไม่พบหรือไม่มีสัญลักษณ์ ฉันพยายามส่งผ่านไดเรกทอรี X11 ที่ไม่ได้มาตรฐานเพื่อเป็นตัวเลือกให้./configure
ไม่ประสบความสำเร็จ
ดาวน์โหลดจากhttp://www.vergenet.net/~conrad/software/xsel/#downloadและแยกตัวอย่างเช่นไปยังเดสก์ท็อปของคุณ
คุณต้องมีgcc
ห้องสมุด ติดตั้ง Xcode แล้วติดตั้งเครื่องมือบรรทัดคำสั่งจาก Xcode> การกำหนดค่าตามความชอบ> ดาวน์โหลด> ส่วนประกอบ
เปลี่ยนไดเรกทอรีกำหนดค่าและรวบรวม:
$ 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
นอกจากนี้คุณยังสามารถติดตั้งxsel
กับ MacPorts sudo port install xsel
ใช้คำสั่ง ในการตั้งค่าของฉันมันยังต้อง symlinks สำหรับห้องสมุด X11 และไฟล์ส่วนหัวและส่วนที่จำเป็นมากอีกต่อไปเพื่อรวบรวม
ฉันต้องการแบ่งปัน caveats บางอย่างเมื่อใช้ KeePass บน Mac:
KeePass 2.18 (จากhttp://keepass2.openix.be ) มีปัญหากับ HFS + KeePass.exe
ถูกพิมพ์Keepass.exe
(สังเกตเห็นตัวพิมพ์เล็ก 'p') ในKeePass2.18.app/Contents/MacOS/startkeepass.sh
(เพื่อไม่ให้เสียงเงียบ) ฉันต้องใช้แฟลชไดรฟ์ USB ที่ฟอร์แมตด้วยตัวพิมพ์เล็กและเล็กและเรียกใช้ KeePass จากตรงนั้น
ฉันมีปัญหามากมายในการทำให้ KeePass 2.20.1 ทำงานบน OS X 10.8 "Mountain Lion" ไม่สามารถกำจัดข้อความแสดงข้อผิดพลาด:
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
ในที่สุดฉันก็พบผู้ร้าย: บันทึกประจำรุ่นสำหรับรุ่น 2.20.1 รัฐ ( http://keepass.info/news/n121004_2.20.1.html ):
การเปลี่ยนแปลงจาก 2.20 เป็น 2.20.1: บนระบบที่เหมือน Unix ตอนนี้ KeePass จะเก็บไฟล์ชั่วคราวส่วนใหญ่ไว้ในไดเรกทอรีชั่วคราวส่วนตัว (ควรจะเป็น$XDG_RUNTIME_DIR
)
ตามhttp://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html :
$XDG_RUNTIME_DIR
กำหนดไดเร็กทอรีฐานโดยสัมพันธ์กับไฟล์รันไทม์ที่ไม่จำเป็นสำหรับผู้ใช้และอ็อบเจ็กต์ไฟล์อื่น ๆ (เช่นซ็อกเก็ต, ไพพ์ที่มีชื่อ, ... ) ไดเรกทอรีจะต้องเป็นของผู้ใช้ ...
XDG_RUNTIME_DIR
ไม่ได้ตั้งค่า ฉันตั้งเป็นไดเรกทอรีที่ฉันเป็นเจ้าของและ KeePass ทำงานเหมือนมีเสน่ห์:
$ echo $XDG_RUNTIME_DIR
$ mkdir ~/.mono
$ export XDG_RUNTIME_DIR=~/.mono/; mono --desktop /Volumes/USB_Flash_Drive/KeePass-2.20.1/KeePass.exe