...
Пересборка библиотеки libpkcs11-helper с флагами --disable-threading и --disable-slotevent и подмена системной библиотеки libpkcs11-helper
Пошаговое решение на примере Ubuntu Linux
...
Подготовка окружения
Установите набор пакетов необходимых для сборки:Загрузите необходимое окружение для сборки,
Code Block |
---|
$ sudo apt-get install git autoconf checkinstall libtool libssl-dev |
загрузите Загрузите исходные коды pkcs11-helper,:
Code Block |
---|
$ git clone https://github.com/OpenSC/pkcs11-helper.git |
Сборка пакета
Создаем пакет с библиотекой и соберите библиотеку из исходных кодов.
Code Block |
---|
$ cd pkcs11-helper $ autoreconf -i $ ./configure --disable-threading --disable-slotevent $ make $ sudo make installcheckinstall |
В процессе chekinstall, измените Name на pkcs11-helper, а Version на 1.21
Проверка
Теперь, когда библиотека собрана, нужно подложить ее вместо системной.
...
Если библиотека libpkcs11-helper.so находится - значит все правильно собралосьсборка и установка пакета были успешно завершены.
Для начала сохраним системную библиотеку под другим именем:
Code Block |
---|
$ sudo mv /usr/lib/i386-linux-gnu/libpkcs11-helper.so.1.0.0 /usr/lib/i386-linux-gnu/libpkcs11-helper.so.1.0.0-original |
Внимание! Если вы используете 64-битную версию ОС Ubuntu, то вместо /usr/lib/i386-linux-gnu используйте /usr/lib/x86_64-linux-gnu
Копируем теперь можно скопировать новую библиотеку вместо старой.
...
Code Block |
---|
$ sudo rm /usr/lib/i386-linux-gnu/libpkcs11-helper.so.1 $ sudo ln -s /usr/lib/i386-linux-gnu/libpkcs11-helper.so.1.0.0 /usr/lib/i386-linux-gnu/libpkcs11-helper.so.1 |
Внимание! Если вы используете 64-битную версию ОС Ubuntu, то вместо /usr/lib/i386-linux-gnu используйте /usr/lib/x86_64-linux-gnu
Теперь можно посмотреть что в системной папке все в порядке
...
Перезапустите openvpn клиент и теперь процесс подключения к серверу запросит PIN-код и, если все остальные настройки в порядке, подключится к серверу
Очистка
После сборки и установки пакета можно удалить исходные коды pkcs11-helper.
Для удаления собранного пакета из системы по каким-либо причинам выполните:
Code Block |
---|
$ dpkg -r pkcs11-helper |
или воспользуйтесь вашим стандартным менеджером пакетов, например, Synaptic.