среда, 7 декабря 2016 г.

Установка KeePassX 0.4.4 из исходного кода в Ubuntu Linux 16.04.1 LTS (Xenial Xerus)


KeePassX - это кроссплатформенный менеджер паролей, который позволяет пользователям систематизировать и безопасно хранить пароли с помощью передовых методов шифрования.

7 декабря 2015 года появилась отдельная версия 2.0, которая теперь использует новый формат базы данных *.kbdx вместо *.kbd. Также новая версия обзавелась некоторыми новыми удобными функциями.

И все бы хорошо, но из-за этого потерялась по настоящему кроссплатформенность. Старый KeePass у меня работал и на Raspbery Pi и на устаревшим телефоне Nokia C2-01 с поддержкой J2ME, и на устройствах с Android.

В репозитории Ubuntu 16.04  (Xenial Xerus) доступна для установки только вторая версия. Я  скачал отдельный deb-пакет 0.4.3 и установил его вручную, но Ubuntu начала автоматически принудительно ставить новую версию 2.0.2 при каждой загрузке. Пробовал через Synaptic блокировать версию, не помогает. Странные дела.

Было принято решение установить старую версию из исходного кода в домашний каталог. Далее опишу каким способом я это осуществил.

Скачиваем KeePassX с официального сайта:

$ wget https://www.keepassx.org/releases/0.4.4/keepassx-0.4.4.tar.gz

Разрешаем зависимости (могут быть и другие зависимости):

$ sudo apt-get install qconf qt4-default qt4-qmake

Распаковываем архив и заходим в него:

$ tar xzf keepassx-0.4.4.tar.gz
$ cd keepassx-0.4.4/

Компилируем и устанавливаем приложение:

$ qmake-qt4 PREFIX=~/bin/keepassx // Перфикс указывает путь для дальнейшей установки, если не чего не указать, то будет ставится в каталог /usr
$ make

Выскочит ошибка:

lib/random.cpp: In function ‘void initStdRand()’:
lib/random.cpp:98:19: error: ‘getpid’ was not declared in this scope
  stream << getpid();


Для того чтобы её исправить нужно сделать следющее. Добавить в любом текстовом редакторе в файл src/lib/random.cpp строчку  #include <unistd.h> (после #include "random.h").

$ nano src/lib/random.cpp
// Добавляем строчку  #include <unistd.h> (после #include "random.h").
// Ctrl+O, Ctrl+X

Успешно завершаем компиляцию:

$ make
$ make install

И запускаем!

$ cd ~/bin/keepassx/bin
$ ./keepassx




Использованные источники:

2 комментария:

  1. Я думал у меня одного аллергия на 2.0. :)
    Вдруг ещё кому тогда пригодится...
    PPA с версией 0.4.* с приписанной эпохой (1:), чтобы система не пыталась обновиться до 2.0:
    https://launchpad.net/~rayanayar/+archive/ubuntu/keepassx1

    ОтветитьУдалить
  2. Благодарю за замечение.

    ОтветитьУдалить