KeePassX .4.3 版本 - 旧 kdb 数据库和 2.0 不起作用 - Ubuntu

KeePassX .4.3 版本 - 旧 kdb 数据库和 2.0 不起作用 - Ubuntu

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

经过一番研究,我找到了一个有效的补丁。

解决过程

  1. 导航至下载全部旧版本- 具体来说keepassx-0.4.3.tar.gz

  2. 使用此补丁或者复制下面粘贴的代码并保存到文件中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)
  1. tar -xzf keepassx-0.4.3.tar.gz提取你的 keepass 源文件夹

  2. cd进入文件夹

  3. sudo apt-get install cmake(或者如果使用 .4.4 您将需要sudo apt-get install qt-qmake.)

    • 您可能还需要一些构建包,比如sudo apt-get install libxtst-dev build-essential libqt4-dev您可能需要单独查找它们,因为我最终安装了很多,但不确定哪些包是真正必要的
  4. 添加补丁,假设你在你的keepass目录中,并且你的补丁文件在上一级:patch -p1 < ../keepassx-0.4.3-gcc47.patch

  5. 跑步cmake ./

  6. make

  7. make install

  8. 巨大的成功!

相关内容