1. 情况
将密码数据库从一台计算机转移到另一台新计算机。KeepassX 2.0 很棒,但它不支持加载旧数据库。事实上,您应该继续使用 keepassX 2.0,因为它有定期发布版本并且更安全。
2. 主要问题
旧版本在 cmake/qmake 构建过程中存在致命错误,无法安装
3. 迄今为止的进程
可以从 KeepassX.org 网站下载旧版本 - 必须使用 cmake/qmake 从源代码构建
4. 路障
.4.3 和 .4.4 版本中都存在一个getpid
错误,导致无法进一步执行 make / make install 来使其正常工作。
lib/random.cpp: In function ‘void initStdRand()’:
lib/random.cpp:98:19: error: ‘getpid’ was not declared in this scope
stream << getpid();
^
Makefile:838: recipe for target '../build/random.o' failed
make[1]: *** [../build/random.o] Error 1
make[1]: Leaving directory '/home/angela/Downloads/keepassx-0.4.4/src'
Makefile:39: recipe for target 'sub-src-make_default' failed
答案1
经过一番研究,我找到了一个有效的补丁。
解决过程
导航至下载全部旧版本- 具体来说keepassx-0.4.3.tar.gz
使用此补丁或者复制下面粘贴的代码并保存到文件中
keepassx-0.4.3-gcc47.patch
keepassx-0.4.3-gcc47.patch文件内容:
diff -Naur keepassx-0.4.3/src/lib/random.cpp keepassx-0.4.3.new/src/lib/random.cpp
--- keepassx-0.4.3/src/lib/random.cpp 2009-06-28 16:22:31.000000000 +0200
+++ keepassx-0.4.3.new/src/lib/random.cpp 2012-04-19 00:20:15.757415510 +0200
@@ -19,6 +19,7 @@
***************************************************************************/
#include "random.h"
+#include <unistd.h>
#if defined(Q_WS_X11) || defined(Q_WS_MAC)
tar -xzf keepassx-0.4.3.tar.gz
提取你的 keepass 源文件夹cd
进入文件夹sudo apt-get install cmake
(或者如果使用 .4.4 您将需要sudo apt-get install qt-qmake
.)- 您可能还需要一些构建包,比如
sudo apt-get install libxtst-dev build-essential libqt4-dev
您可能需要单独查找它们,因为我最终安装了很多,但不确定哪些包是真正必要的
- 您可能还需要一些构建包,比如
添加补丁,假设你在你的keepass目录中,并且你的补丁文件在上一级:
patch -p1 < ../keepassx-0.4.3-gcc47.patch
跑步
cmake ./
make
make install
巨大的成功!