1

1. ситуация

Перенос базы паролей с одного компьютера на новый. KeepassX 2.0 великолепен, но он не поддерживает загрузку старых БД. На самом деле вы должны использовать keepassX 2.0, поскольку он имеет регулярные выпуски и намного безопаснее.

2. Главная проблема

В старых версиях в процессе сборки cmake/qmake есть фатальная ошибка, препятствующая установке

3. Процесс пока

Старые версии с сайта KeepassX.org доступны для скачивания - их необходимо собрать из исходного кода с помощью cmake/qmake

4. Дорожный блок

Существует проблема с getpid являющаяся ошибкой в обеих версиях .4.3 и .4.4, которая препятствовала дальнейшей установке make / make, чтобы она заработала.

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

2

После некоторых исследований я смог найти исправление, которое сработало.

Процесс решения

  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. огромный успех!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .