web-dev-qa-db-ja.com

ソースからgnupgをコンパイルしようとしています

https://www.gnupg.org/download/ から最新の安定したtarballをダウンロードし、ubuntuマシンのフォルダーに解凍しました。私はそれを実行するためにchmod 775 configureをしなければならなかった、そして私は./configureを実行した

最後にこのメッセージを受け取りました:

    GnuPG v2.0.29 has been configured as follows:


    Revision:  120fc69  (4623)
    Platform:  GNU/Linux (x86_64-unknown-linux-gnu)


    OpenPGP:   yes
    S/MIME:    yes
    Agent:     yes 
    Smartcard: yes (without internal CCID driver)
    Gpgtar:    no


    Protect tool:      (default)
    Default agent:     (default)
    Default pinentry:  (default)
    Default scdaemon:  (default)
    Default dirmngr:   (default)


    Warning: Mismatches between the target platform and the
             to be used libraries have been detected for:
               libgpg-error libgcrypt
             Please check above for more warning messages.

Sudo apt-get install libgpg-error libgcryptを実行しようとしましたが、見つからないと言っていたので、libgpg-error-dev libgcrypt-devを試して、これを取得しました:

Reading package lists...
Building dependency tree...
Reading state information...
libgpg-error-dev is already the newest version.
libgcrypt11-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 69 not upgraded.

だから私はmakeを実行しようとしましたが、これは最後に見たものです

Making all in .
make[3]: Entering directory `/home/nitrous/gnupg-new/tests'
srcdir=. GNUPGHOME=`/bin/pwd` GPG_AGENT_INFO= LC_ALL=C GPGSM=../sm/gpgsm ./runtest ./inittests
make[3]: Leaving directory `/home/nitrous/gnupg-new/tests'
make[2]: Leaving directory `/home/nitrous/gnupg-new/tests'
make[1]: Leaving directory `/home/nitrous/gnupg-new'
/bin/bash: ./runtest: permission denied
make[3]: *** [inittests.stamp] Error 126
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Making all in .
make[3]: Entering directory `/home/nitrous/gnupg-new/tests'
srcdir=. GNUPGHOME=`/bin/pwd` GPG_AGENT_INFO= LC_ALL=C GPGSM=../sm/gpgsm ./runtest ./inittests
/bin/bash: ./runtest: Permission denied
make[3]: *** [inittests.stamp] Error 126
make[3]: Leaving directory `/home/nitrous/gnupg-new/tests'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/nitrous/gnupg-new/tests'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/nitrous/gnupg-new'
make: *** [all] Error 2

その後、make installを実行し、最後に同じエラーが発生しました。何が悪いのでしょうか?

編集:

Libgpg-errorとlibgcryptを手動でコンパイルしてインストールしましたが、Sudo makeを実行したときに./configureは警告なしで正常に動作しました。

chmod 755 ./gpg_dearmor
./gpg_dearmor > ./pubring.gpg < ./pubring.asc
../../g10/gpg2: error while loading shared libraries: libgcrypt.so.20: cannot open shared object file: No such file or directory
make[3]: *** [pubring.gpg] Error 127
make[3]: Leaving directory `/home/nitrous/gnupg-new/tests/openpgp'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/nitrous/gnupg-new/tests'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/nitrous/gnupg-new'
make: *** [all] Error 2

その後、もう一度インストールを試みたときに、これが得られました:

Making install in tests
make[1]: Entering directory `/home/nitrous/gnupg-new/tests'
Making install in openpgp
make[2]: Entering directory `/home/nitrous/gnupg-new/tests/openpgp'
./gpg_dearmor > ./secring.gpg < ./secring.asc
../../g10/gpg2: error while loading shared libraries: libgcrypt.so.20: cannot open shared object file: No such file or directory
make[2]: *** [secring.gpg] Error 127
make[2]: Leaving directory `/home/nitrous/gnupg-new/tests/openpgp'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/nitrous/gnupg-new/tests'
make: *** [install-recursive] Error 1

編集2:

Sudo ldconfig -vを実行するように言った投稿を見つけました

そして、./configureSudo make installを再度実行すると、最後にこのエラーが表示されました。

Making all in .
make[3]: Entering directory `/home/nitrous/gnupg-new/tests'
srcdir=. GNUPGHOME=`/bin/pwd` GPG_AGENT_INFO= LC_ALL=C GPGSM=../sm/gpgsm ./runtest ./inittests
/bin/bash: ./runtest: Permission denied
make[3]: *** [inittests.stamp] Error 126
make[3]: Leaving directory `/home/nitrous/gnupg-new/tests'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/nitrous/gnupg-new/tests'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/nitrous/gnupg-new'
make: *** [all] Error 2

編集3:

Sudo chmod 755 on tests/runtestを実行し、./configureSudo makeをもう一度実行したところ、このエラーが発生しました。

Making all in .
make[3]: Entering directory `/home/nitrous/gnupg-new/tests'
srcdir=. GNUPGHOME=`/bin/pwd` GPG_AGENT_INFO= LC_ALL=C GPGSM=../sm/gpgsm ./runtest ./inittests
asschk: interpreter: invalid statement `set'
make[3]: *** [inittests.stamp] Error 1
make[3]: Leaving directory `/home/nitrous/gnupg-new/tests'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/nitrous/gnupg-new/tests'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/nitrous/gnupg-new'
make: *** [all] Error 2

ため息....

5
Joshua Terrill

Gnupg-2.1.Xで提供されているspeedoメソッドが最も簡単であることがわかりました。

  1. Sudo apt-get update

  2. Sudo apt-get install libldap2-dev gtk+-2 libbz2-dev

  3. 最新のgnupg-2.1.X tarballを解凍して新しいフォルダーにcdした後、次のコマンドを実行します。

    Sudo make -f build-aux/speedo.mk native INSTALL_PREFIX=/usr/local
    
  4. Sudo ldconfig

  5. 最新のpinentry-0.9.5をダウンロードし、./configure && make && Sudo make installを実行します。

  6. テストしてください:gpg2 --version

**** GnuPG v2.2.xのこの回答を更新したいと思います。次のbashファイルはUbuntu 16.04、17.10にインストールされます。

cd ~/Downloads
version=gnupg-2.2.2
wget https://gnupg.org/ftp/gcrypt/gnupg/$version.tar.bz2
wget https://gnupg.org/ftp/gcrypt/gnupg/$version.tar.bz2.sig
tar xf $version.tar.bz2
cd $version
Sudo apt-get update
Sudo apt-get install -y libldap2-dev
Sudo apt-get install -y gtk+-2
Sudo apt-get install -y rng-tools
Sudo apt-get install -y libbz2-dev
Sudo apt-get install -y zlib1g-dev
Sudo apt-get install -y libgmp-dev
Sudo apt-get install -y nettle-dev
Sudo apt-get install -y libgnutls28-dev
Sudo apt-get install -y libsqlite3-dev
Sudo apt-get install -y adns-tools
Sudo apt-get install -y libreadline-dev
Sudo apt-get install -y pinentry-gtk2
Sudo apt-get install -y pcscd scdaemon
Sudo make -f build-aux/speedo.mk native INSTALL_PREFIX=/usr/local
Sudo ldconfig

これは、TOFUおよびYubikey 4 Nanoなどのスマートカードをサポートします。 最新バージョン editversion = gnupg-2.2.2に更新するには、テストしてください:gpg --version

6
mac333