Документація 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 / # завантажити )
EDIT : Але це не так. Мені було цікаво, тому я склав xsel
на своєму Mac. Це не вирішило проблему з копіюванням / вставкою (тестовано з Portable KeePass 2.20.1), як я побоювався, я повинен сказати. Чому? Тому що, як зазначено тут, http://www.kfish.org/software/xsel/ xsel
- це інструмент, який маніпулює вмістом буфера обміну додатками X11 . X11 надає графічний інтерфейс користувача для Linux та UNIX, але OS X використовує Quartz замість цього, як і я зрозумів (див. Http://www.mono-project.com/WinForms#About_System.Windows.Forms ).
Існує рішення щодо копіювання імені користувача та пароля до буфера обміну, як це пояснено в цій темі http://sourceforge.net/projects/keepass/forums/forum/329221/topic/5106260 :
Урека (sic) . Ваш 2.19 на шляху до копіювання пасти, що працює на MAC через Mono! Ваша кнопка для копіювання імені користувача, а ваша кнопка для копіювання пароля працює зараз !!!
На плакаті вище посилаються на ці кнопки (портативний KeePass 2.20.1, показаний під керуванням у Windows (вибачте, немає Mac поблизу)):
Для копіювання імені користувача:
Для копіювання пароля:
Редагувати :
Я хотів би поділитися тим, як я компілював, xsel
якщо комусь це потрібно в OS X:
Встановіть X11 від http://support.apple.com/kb/HT5293 (це стосується лише користувачів ОС X 10.8 "Гірський лев").
Symlink заголовок і бібліотечні файли /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
безрезультатно.
Завантажте з 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
. У моїй установці це також вимагало символьних посилань на бібліотеки X11 та файли заголовків, і для компіляції потрібно було набагато довше.
Я також хотів би поділитися застереженнями під час використання KeePass на Mac:
KeePass 2.18 (від http://keepass2.openix.be ) має проблеми з чутливим до регістру HFS +. KeePass.exe
вводиться Keepass.exe
(помітьте малі літери 'p') у KeePass2.18.app/Contents/MacOS/startkeepass.sh
(так що воно мовчки виходить з ладу). Мені довелося скористатися флеш-накопичувачем USB, відформатованим HFS +, нечутливим до регістру, і запустити звідти KeePass.
У мене було багато проблем з тим, щоб KeePass 2.20.1 працював над ОС X 10.8 «Гірський лев». Не вдалося позбутися повідомлення про помилку:
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