Skip to content

Instantly share code, notes, and snippets.

@simbo1905
Forked from vt0r/GnuPG-2.2.md
Last active February 14, 2024 15:47
Show Gist options
  • Save simbo1905/ba3e8af9a45435db6093aea35c6150e8 to your computer and use it in GitHub Desktop.
Save simbo1905/ba3e8af9a45435db6093aea35c6150e8 to your computer and use it in GitHub Desktop.
Build/install instructions for GnuPG 2.2.x on Centos 7 and similar distros (formerly for 2.1.x)

GnuPG 2.2.x Build Instructions

Below are my build instructions for GnuPG 2.2.9, released on July 12th, 2018. These instructions are built for a headless Centos 7 LTS server (specificaly the openshift/base-centos7 docker image).

You use the below install script to install GnuPG 2.2.x by running the following commands:

# if you are root in a docker image:
curl -OL "https://gist.githubusercontent.com/simbo1905/ba3e8af9a45435db6093aea35c6150e8/raw/83561e214e36f6556fd6b1ec0a384cf28cb2debf/install-gnupg22.sh" && bash ./install-gnupg22.sh
# else if you need to sudo to do the installs:
curl -OL "https://gist.githubusercontent.com/simbo1905/ba3e8af9a45435db6093aea35c6150e8/raw/83561e214e36f6556fd6b1ec0a384cf28cb2debf/install-gnupg22.sh" && sudo -H bash ./install-gnupg22.sh
#!/bin/bash
# ---------
# Script to build and install GnuPG 2.2.x
yum-builddep -y gnupg2
mkdir -p /tmp/gnupg22 && cd /tmp/gnupg22
gpg --list-keys
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 249B39D24F25E3B6 04376F3EE0856959 2071B08A33BD3F06 8A861B1C7EFD60D9
wget -c https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.31.tar.gz.sig && \
wget -c https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.31.tar.gz && \
wget -c https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.3.tar.gz && \
wget -c https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.3.tar.gz.sig && \
wget -c https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.1.tar.bz2 && \
wget -c https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.1.tar.bz2.sig && \
wget -c https://www.gnupg.org/ftp/gcrypt/libksba/libksba-1.3.5.tar.bz2 && \
wget -c https://www.gnupg.org/ftp/gcrypt/libksba/libksba-1.3.5.tar.bz2.sig && \
wget -c https://www.gnupg.org/ftp/gcrypt/npth/npth-1.5.tar.bz2 && \
wget -c https://www.gnupg.org/ftp/gcrypt/npth/npth-1.5.tar.bz2.sig && \
# wget -c https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-1.1.0.tar.bz2 && \
# wget -c https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-1.1.0.tar.bz2.sig && \
wget -c https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.9.tar.bz2 && \
wget -c https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.9.tar.bz2.sig && \
gpg --verify libgpg-error-1.31.tar.gz.sig && tar -xzf libgpg-error-1.31.tar.gz && \
gpg --verify libgcrypt-1.8.3.tar.gz.sig && tar -xzf libgcrypt-1.8.3.tar.gz && \
gpg --verify libassuan-2.5.1.tar.bz2.sig && tar -xjf libassuan-2.5.1.tar.bz2 && \
gpg --verify libksba-1.3.5.tar.bz2.sig && tar -xjf libksba-1.3.5.tar.bz2 && \
gpg --verify npth-1.5.tar.bz2.sig && tar -xjf npth-1.5.tar.bz2 && \
# gpg --verify pinentry-1.1.0.tar.bz2.sig && tar -xjf pinentry-1.1.0.tar.bz2 && \
gpg --verify gnupg-2.2.9.tar.bz2.sig && tar -xjf gnupg-2.2.9.tar.bz2 && \
cd libgpg-error-1.31/ && ./configure && make && make install && cd ../ && \
cd libgcrypt-1.8.3 && ./configure && make && make install && cd ../ && \
cd libassuan-2.5.1 && ./configure && make && make install && cd ../ && \
cd libksba-1.3.5 && ./configure && make && make install && cd ../ && \
cd npth-1.5 && ./configure && make && make install && cd ../ && \
# cd pinentry-1.1.0 && ./configure --enable-pinentry-curses --disable-pinentry-qt4 && \
# make && make install && cd ../ && \
cd gnupg-2.2.9 && ./configure && make && make install && \
echo "/usr/local/lib" > /etc/ld.so.conf.d/gpg2.conf && ldconfig -v && \
# Without the line below, gpg2 might fail to create / import secret keys !!!
if [ -d ~/.gnugp ]; then rm -ri ~/.gnugp; fi
gpgconf --kill gpg-agent
# tidy up
rm -rf cd /tmp/gnupg22
echo "Complete!!!"
@tegelad
Copy link

tegelad commented Feb 14, 2024

Here is some code which maybe helpful for you in inserting versions if you wanted different ones.

export libgpg_error_version="1.47"
export libgcrypt_version="1.10.3"
export libassuan_version="2.5.6"
export libksba_version="1.6.5"
export npth_version="1.6"
export pinentry_version="1.2.1"
export gnupg_version="2.4.4"

sudo yum-builddep -y gnupg2
gpg --list-keys
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 249B39D24F25E3B6 04376F3EE0856959 2071B08A33BD3F06 8A861B1C7EFD60D9

wget -c "https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${libgpg_error_version}.tar.gz.sig" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${libgpg_error_version}.tar.gz" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${libgcrypt_version}.tar.gz" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${libgcrypt_version}.tar.gz.sig" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${libassuan_version}.tar.bz2" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${libassuan_version}.tar.bz2.sig" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/libksba/libksba-${libksba_version}.tar.bz2" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/libksba/libksba-${libksba_version}.tar.bz2.sig" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/npth/npth-${npth_version}.tar.bz2" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/npth/npth-${npth_version}.tar.bz2.sig" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-${pinentry_version}.tar.bz2" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-${pinentry_version}.tar.bz2.sig" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-${gnupg_version}.tar.bz2" && \
wget -c "https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-${gnupg_version}.tar.bz2.sig" && \
gpg --verify libgpg-error-${libgpg_error_version}.tar.gz.sig && tar -xzf libgpg-error-${libgpg_error_version}.tar.gz && \
gpg --verify libgcrypt-${libgcrypt_version}.tar.gz.sig && tar -xzf libgcrypt-${libgcrypt_version}.tar.gz && \
gpg --verify libassuan-${libassuan_version}.tar.bz2.sig && tar -xjf libassuan-${libassuan_version}.tar.bz2 && \
gpg --verify libksba-${libksba_version}.tar.bz2.sig && tar -xjf libksba-${libksba_version}.tar.bz2 && \
gpg --verify npth-${npth_version}.tar.bz2.sig && tar -xjf npth-${npth_version}.tar.bz2 && \
gpg --verify pinentry-${pinentry_version}.tar.bz2.sig && tar -xjf pinentry-${pinentry_version}.tar.bz2 && \
gpg --verify gnupg-${gnupg_version}.tar.bz2.sig && tar -xjf gnupg-${gnupg_version}.tar.bz2 
#cd libgpg-error-${libgpg-error_version}/ && ./configure && make && make install && cd ../ && \
#cd libgcrypt-${libgcrypt_version} && ./configure && make && make install && cd ../ && \
#cd libassuan-${libassuan_version} && ./configure && make && make install && cd ../ && \
#cd libksba-${libksba_version} && ./configure && make && make install && cd ../ && \
#cd npth-${npth_version} && ./configure && make && make install && cd ../ && \
#cd pinentry-${pinentry-verison} && ./configure --enable-pinentry-curses --disable-pinentry-qt4 && \

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment