什么会解决无法在OS X上复制或粘贴的KeePass安装问题?


8

KeePass不会复制和粘贴,更不用说自动键入了。

我已经从http://keepass2.openix.be/安装了KeePass 2.18 Mac软件包。我找不到适用于KeePass的较新的Mac软件包,因此我也用Portable KeePass 2.20.1(ZIP软件包)中的文件替换了该软件包的所有文件。那是从页面http://keepass.info/download.html链接到实际的zip:http : //downloads.sourceforge.net/keepass/KeePass-2.20.1.zip。因此,我已成功运行KeePass 2.20.1。

我正在运行Mono版本2.10.9。

我在MacBook Pro上运行OS X 10.7.5。

我不敢相信KeePass的网站会吹嘘Mac不会复制/粘贴时的兼容性。那是相当缺少的核心功能。搜索显示其他人从2.18开始有此问题,但没有解决方法,也没有错误报告。

有人能解决这个问题吗?


您是否在Mono 3.0中尝试过KeyPass ?我没有尝试过,但可能效果更好。
2013年

Answers:


7

http://keepass.info/help/v2/setup.html#mono中的KeePass文档(虽然没有特别提到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 /#download

编辑:但事实并非如此。我很好奇,所以我xsel在Mac上编译。我不得不说,它不能解决复制/粘贴(通过Portable KeePass 2.20.1测试)的问题。为什么?因为如此处所述,http://www.kfish.org/software/xsel/ xsel是用于操纵X11应用程序剪贴板内容的工具。X11提供了适用于Linux和UNIX的图形用户界面,但是OS X使用Quartz,而Mono也是如此,正如我意识到的那样(请参阅http://www.mono-project.com/WinForms#About_System.Windows.Forms)。

有一种用户名和密码复制到剪贴板的解决方法,如以下线程中所述:http : //sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260

乌雷卡(原文如此)。您的2.19即将通过Mono复制在MAC上工作的粘贴!您现在可以使用复制用户名的按钮,也可以复制密码的按钮!!!

上面的海报提到了这些按钮(显示为在Windows上运行的便携式KeePass 2.20.1(对不起,附近没有Mac)):

复制用户名:

在此处输入图片说明

复制密码:

在此处输入图片说明

编辑

我想分享一下我的编译方式xsel,以防有人在OS X上需要它:

  1. http://support.apple.com/kb/HT5293安装X11 (这仅适用于OS X 10.8“ Mountain Lion”用户)。

  2. 符号连接头和库文件/opt/X11/include/X11,以/usr/local/include/X11/opt/X11/lib/usr/local/lib(或者你可以符号链接到/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但没有成功。

  3. http://www.vergenet.net/~conrad/software/xsel/#download下载并解压缩到例如您的桌面。

  4. 您需要gcc加上库。安装Xcode,然后从Xcode> Preferences> Downloads> Components安装命令行工具。

  5. 更改目录,配置和编译:

    $ 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。在我的设置还需要对X11库和头文件的符号链接,需要多少编译时间。

在Mac上使用KeePass时,我也想分享一些警告:

  1. KeePass 2.18(来自http://keepass2.openix.be)在区分大小写的HFS +时遇到问题。KeePass.exe键入Keepass.exe(注意小写字母“ p”)KeePass2.18.app/Contents/MacOS/startkeepass.sh(以使其静默失败)。我必须使用不区分大小写的HFS +格式化的USB闪存驱动器,然后从那里运行KeePass。

  2. 让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
    

在此处输入图片说明


安装xsel:至少可以找到它的荣誉。但是找不到可安装的pkg,它不会为我编译。需要将gcc添加到我的路径中(至少)。因此,对我来说有效的解决方案是最后一个链接。...但是让我弄清楚该工作原理的一部分:安装2.18 pkg,在其上复制2.20.1,然后是按钮(仅按钮,而不是按钮快捷键ctrl-C ctrl-V)起作用。按钮...那是我在阅读该链接时所想念的(在我问这个问题之前)。
minnow 2012年

评论只能编辑5分钟。很烦人。无论如何:在任何mac-police突袭之前,这些快捷方式(不起作用)当然是Command-C和Command-V。全局自动类型:我没有尝试XDOTOOL。我没有快捷方式,没有自动键入功能,但是我有按钮。现在足够好了。纽扣!我为什么要失望?II肯定有按钮。我的意思是,那是按钮!”(《雨人》中的汤姆·克鲁斯(La Tom Tom Cruise):我拿到了玫瑰花丛。
minnow 2012年

@minnow:我终于可以xsel用KeePass进行测试并猜测……不,它没有用,因此,就目前而言,使用按钮是OS X上复制用户名和密码的唯一可能性。我已将其添加到答案中。我注意到Softpedia链接到xsel源代码,因此我从答案中删除了这一点。
jaume 2012年

显然,这些按钮存在并且可以在我当前使用的2.24版本中使用。没有意识到工具栏按钮可以做的与上下文菜单不同。感谢您分享答案!
迈克

1
自从发布此答案以来,事情可能发生了变化。我正在运行XQuartz,并且xsel通过MacPorts 进行了安装,这些按钮可以正常工作,而无需自己进行任何类型的编译。使键盘快捷键也能正常工作,甚至使自动键入更好,这将是很好的选择,但是现在这可能是个空想。
丹·琼斯,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.