우분투에서 KeePass를 사용해 보자. 그러나 ...

2011. 8. 17. 13:25 컴퓨터/우분투/리눅스

로그인 정보 관리 프로그램으로 오래도록 KeePass를 사용해 오고 있습니다. jwmx에도 여러 번 KeePass를 소개해 드렸습니다만, 로그인 정보를 로컬 컴퓨터에 저장하는 방식이 좋고, IE를 사용하든, 크롬을 사용하든, 아예 웹 브라우저가 아닌 곳에도 사용할 수 있고 우분투에서도 사용할 수 있어 좋습니다.

다만, 우분투와 같이 사용하려면 최신 버전을 사용할 수 없습니다. KeePass가 2.xx 버전부터는 .Netframework를 사용하기 때문이죠. 그래서 지금까지 1.2xx 버전만 사용해 왔습니다만, 그러나 다행이 MS가 아닌 다른 플랫폼에도 .Netframework 프로그램을 실행 시켜주는 mono를 알게 되었고, 이 mono를 가지고 KeePass를 사용해 보기로 했습니다.

KeePass를 실행하기 위해서는 mono 버전이 2.6 이상이어야 합니다. 확인해 보니 저의 mono는 2.6.7입니다.

]$ mono --version
Mono JIT compiler version 2.6.7 (Debian 2.6.7-3ubuntu1)
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
        TLS:           __thread
        GC:            Included Boehm (with typed GC and Parallel Mark)
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  x86
        Disabled:      none
[jwjw@KeePass]$ 

KeePass 다운로드 페이지에서 Portable KeePass 버전을 내려 받아 압축을 풀고 실행해 보았습니다.

Error 1 : could not be loaded: Assembly:   System.Windows.Forms   

]$ mono KeePass.exe

** (KeePass.exe:8911): WARNING **: The following assembly referenced from 
     /home/jwjw/program_files/KeePass/KeePass.exe could not be loaded:
     Assembly:   System.Windows.Forms    (assemblyref_index=1)
     Version:    2.0.0.0
     Public Key: b77a5c561934e089
The assembly was not found in the Global Assembly Cache, a path listed in 
the MONO_PATH environment variable, or in the location of the executing 
assembly (/home/jwjw/program_files/KeePass/).


** (KeePass.exe:8911): WARNING **: Could not load file or assembly 
'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089' or one of its dependencies.

Unhandled Exception: System.TypeLoadException: Could not 
load type 'KeePass.Program' from assembly 'KeePass, Version=2.1.6.16253, 
Culture=neutral, PublicKeyToken=fed2ed7716aecf5c'.
[jwjw@KeePass]$

흠~ 에러가 발생하네요. System.Windows.Forms가 없다는 얘기 같은데, 웹에 검색해 보았습니다. 그런데 해결 방법이 쉽게 보이지 않네요. 한참 헤맸지만, 그래도 답을 찾았습니다. mono-winforms*을 설치해 주면 됩니다. 이렇게 간단한 것을.

sudo apt-get install   mono-winforms*

Error 2: The class UiaAtkBridge.Table could not be loaded, used in UiaAtkBridge

다시 기대를 가지고 실행해 보았습니다. 역시(?) 실망스럽게 또 에러가 발생하네요. 이번에는 “The class UiaAtkBridge.Table could not be loaded, used in UiaAtkBridge”라는 에러인데, 이번에도 답이 쉽게 보이지 않네요. 제가 검색을 잘 못하는 것인지, 구글 신이 술에 취했는지, 여하튼 검색, 다시 검색, 또 검색.

겨우 찾은 것이 소스를 받아다가 컴파일 하라네요? 아우~ 이건 어려운데. 다시 찾아 보자. 검색, 다시 검색, 또 검색. 이렇게 해보고 저렇게 해 보아도 결국 실패. 그러나 저와 같은 문제를 겪으신 분이 친절하게도 컴파일까지 해서 올려 놓은 페이지를 발견. 우와~ 감사 감사!!

드디어 성공!!??

페이지에서 제공하는 UiaAtkBridge.dll.zip 파일을 내려 받아 풀어서 나온 UiaAtkBridge.dll을 KeePass.exe 가 있는 곳에 복사 했습니다. 그리고 떨리는 마음으로 실행. 드디어 우분투에서 KeePass가 떴습니다. 우하하하~!!

로그인하면 작업 표시줄에 Tray Icon도 잘 나옵니다.

그러나, ...

그런데 문제가 있습니다. KeePass에 핫키를 등록해도 X-Windows에서는 먹히지 않네요. 역시 MS윈도와 X-Windows의 구조적인 차이가 있겠지요. KeePass는 이 문제를 해결하기 위해 xdotool 사용 법을 소개하고 있습니다. xdotool이 뭔가 했더니 가상으로 키보드와 마우스 입력을 만들어 주는 프로그램이네요. 사람이 직접 입력한 것처럼 처리해 준다는 것이죠.

xdotool 설치. 역시, 힘들다.

그래서 apt-get을 이용하영 xdotool을 설치했습니다. 그리고 실행했는데 안 됩니다. 이유는 xdotool의 버전이 낮기 때문입니다.  KeePass은 에서 권하는 xdotool 버전은 2.20100818.3004 이상 버전이어야 하는데, 제 PC에 설치된 버전은 이보다 몇 단계 아래네요. 많이 차이 나는 것도 아닌데 실행이 안 됩니다.

]$ xdotool --version
xdotool version 2.20100701.2961

좋아, 버전업 하자. 여기까지 왔는데. 우분투에 정식으로 제공되는 버전은 2.20100701.2961 이어서 apt-get으로는 안 되는군요. 그렇다면 소스를 받아다가 컴파일을 해야 하는데, 컴파일 하려면 관련 소스를 모두 가지고 있어야 하고, 컴파일러 버전하고도 관련이 있어서 자신이 없었습니다. 그러나 달리 방법이 없어서 X-11 라이브러리를 구하고 이렇게 저렇게 컴파일을 시도 했지만, 뭐가 없다는 것이 그리도 많은지 에러만 수십 번 나네요.

실패, 다시 실패, 또 실패. 아무래도 안 되겠다 싶어서 회사 동료에게 SOS. 그러나, 그렇지 않아도 바쁜 사람이라서 심드렁한 답변 몇 번 해 주는 것으로 끝. 계속 부탁하기에는 미안해서 짧은 답변이라도 참고해서 컴파일을 시도했습니다. 그러나 에러, 다시 에러, 또 에러. 아우~ 더 하고 싶어도 회사에서 업무와 직접적인 관련이 없는 작업을 계속하기 어렵고해서 중간에 멈추어야 했습니다.

그리고 며칠이 지났습니다. 시간이 지났는데도 머리 한구석에 계속 꽈리를 틀고 앉아 있네요. 어찌 보면 괜한 고집이죠. KeePass 클랙식 버전도 있고, 우분투에 반드시 KeePass를 사용할 필요도 없거든요.

우분투에서 xdotool 업그레이드하기

메모를 해둔 글이 눈에 띄어 다시 시도. 소스로는 안 되겠다 싶어서 다시 검색해 보았습니다. 예전에 보았던 페이지만 잔뜩. 이번에는 “패키지” 키워드를 추가하여 다시 검색. 못 보던 페이지에 반짝이는 문구. 이렇게 반가울 수가~!!

이 페이지 하단에 소개해 주는 libxdo2과 xdotool의 최신 버전을 차례로 설치

설치 하는 방법은 각 링크에서 제공하는 Published version 중에 사용 중인 컴퓨터의 CPU에 맞추어 dev 파일을 내려 받아 노틸러스에서 실행하면 자동으로 “우분투 소프트웨어 센터” 가 실행되고 설치나 업그레이드를 할 수 있습니다. 다행이 둘 다 설치 완료. 이제 버전 확인. O.K.~!!

]$ xdotool --version
xdotool version 2.20110530.1

이제 우분투 메인 메뉴>>시스템>>기본 설정>>키보드 바로 가기 실행 한 후,  KeePass.exe –auto-type 를 추가하고 구글 크롬을 실행하고 핫키를 누릅니다. MS 윈도보다는 느리지만, 천천히 입력되는 아이디와 암호. 만세~!! ^^

성공해서 좋기는 한데, 이 글이 우분투에서 KeePass를 실행하기 위한 글인지, 프로그램 하나 때문에 우분투에서 고생을 많이 했다고 자랑하는 것인지 모르겠네요.

이 댓글을 비밀 댓글로
  1. ...저는 저 에러2단계에서 포기했었는데,
    끝내 성공하셨네요
    의지가 대단하십니다 ㅎㅎㅎ
  2. 저는 윈도우 유저라서 잘 사용하고 있습니다.
    저번에 네이트 해킹으로 비번을 변경했는데..이때 아주 유용하게 사용했습니다.
    가입사이트 왠만한건 다 저장해놔서 편하게 사이트 방문 했죠.~ 암호화도 잘 되 있어서 좋은거 같아요.~ 앞으로도 쭉 사용할거 같습니다.
    • 조금 불편한 점이 있지만, KeePass가 안심되는 여러가지 장점 때문에 계속 사용하고 있습니다. ^^