Created
May 28, 2019 21:33
-
-
Save mattrude/09ef89bbe6e3b3396d0a8fbabb99ff07 to your computer and use it in GitHub Desktop.
Script to build and install GnuPG 2.2.x on Ubuntu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# --------- | |
# Script to build and install GnuPG 2.2.x | |
GNUPG='2.2.16' | |
LIBGPGERROR='1.36' | |
LIBGCRYPT='1.8.4' | |
LIBKSBA='1.3.5' | |
LIBASSUAN='2.5.3' | |
NTBTLS='0.1.2' | |
NPTH='1.6' | |
PINENTRY='1.1.0' | |
PACKETS="bzip2 make gettext texinfo gnutls-bin libgnutls28-dev build-essential libbz2-dev zlib1g-dev libncurses5-dev libsqlite3-dev libldap2-dev libgnutls28-dev bzip2 make gettext texinfo gnutls-bin build-essential libbz2-dev zlib1g-dev libncurses5-dev libsqlite3-dev libldap2-dev" | |
################################################################################ | |
LOGDIR="/var/log" | |
LOGFILE="${LOGDIR}/gnupg-update.log" | |
if [ "${SHELL}" != "/bin/bash" ]; then int="0"; else int="1"; fi | |
if [ "${int}" == "1" ]; then | |
if [ ! -f ${LOGFILE} ]; then mkdir -p ${LOGDIR}; touch ${LOGFILE}; fi | |
exec 3>&1 4>&2; trap 'exec 2>&4 1>&3' 0 1 2 3; exec 1>> ${LOGFILE} 2>&1 | |
fi | |
################################################################################ | |
UPDATE="" | |
dpkg --get-selections |sed 's/:/ /g' |awk '{print $1}' > /tmp/installed-packages.txt | |
for a in $PACKETS | |
do | |
if [ `egrep "^$a$" /tmp/installed-packages.txt |wc -l` != "1" ]; then | |
echo "$a is not installed" | |
UPDATE="$a $UPDATE" | |
fi | |
done | |
rm -f /tmp/installed-packages.txt | |
if [ "$UPDATE" != "" ]; then | |
apt update | |
apt install -y $UPDATE | |
fi | |
################################################################################ | |
echo "Starting Download" | |
mkdir -p /var/src/gnupg && cd /var/src/gnupg | |
wget -cq https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${LIBGPGERROR}.tar.gz && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${LIBGPGERROR}.tar.gz.sig && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${LIBGCRYPT}.tar.gz && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${LIBGCRYPT}.tar.gz.sig && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${LIBASSUAN}.tar.bz2 && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${LIBASSUAN}.tar.bz2.sig && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/libksba/libksba-${LIBKSBA}.tar.bz2 && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/libksba/libksba-${LIBKSBA}.tar.bz2.sig && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/ntbtls/ntbtls-${NTBTLS}.tar.bz2 && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/ntbtls/ntbtls-${NTBTLS}.tar.bz2.sig && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/npth/npth-${NPTH}.tar.bz2 && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/npth/npth-${NPTH}.tar.bz2.sig && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-${PINENTRY}.tar.bz2 && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-${PINENTRY}.tar.bz2.sig && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-${GNUPG}.tar.bz2 && \ | |
wget -cq https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-${GNUPG}.tar.bz2.sig && \ | |
gpg --keyserver keyserver.mattrude.com --recv 0xD8692123C4065DEA5E0F3AB5249B39D24F25E3B6 && \ | |
gpg --keyserver keyserver.mattrude.com --recv 0x031EC2536E580D8EA286A9F22071B08A33BD3F06 && \ | |
gpg --verify libgpg-error-${LIBGPGERROR}.tar.gz.sig && \ | |
tar -xzf libgpg-error-${LIBGPGERROR}.tar.gz && \ | |
tar -xzf libgcrypt-${LIBGCRYPT}.tar.gz && \ | |
tar -xjf libassuan-${LIBASSUAN}.tar.bz2 && \ | |
tar -xjf libksba-${LIBKSBA}.tar.bz2 && \ | |
tar -xjf npth-${NPTH}.tar.bz2 && \ | |
tar -xjf pinentry-${PINENTRY}.tar.bz2 && \ | |
tar -xjf gnupg-${GNUPG}.tar.bz2 && \ | |
cd libgpg-error-${LIBGPGERROR}/ && ./configure && make && make install && cd ../ && \ | |
cd libgcrypt-${LIBGCRYPT} && ./configure && make && make install && cd ../ && \ | |
cd libassuan-${LIBASSUAN} && ./configure && make && make install && cd ../ && \ | |
cd libksba-${LIBKSBA} && ./configure && make && make install && cd ../ && \ | |
cd npth-${NPTH} && ./configure && make && make install && cd ../ && \ | |
cd pinentry-${PINENTRY} && ./configure --enable-pinentry-curses --disable-pinentry-qt4 && \ | |
make && make install && cd ../ && \ | |
cd gnupg-${GNUPG} && ./configure && make && make install && \ | |
echo "/usr/local/lib" > /etc/ld.so.conf.d/gpg2.conf && ldconfig -v && \ | |
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 249B39D24F25E3B6 04376F3EE0856959 2071B08A33BD3F06 8A861B1C7EFD60D9 && \ | |
echo "" && echo "Complete!!!" | |
gpgconf --kill all | |
killall gpg-agent | |
killall dirmngr | |
if [ -f /usr/local/bin/gpg-agent ]; then | |
rm /usr/bin/gpg-agent; ln /usr/local/bin/gpg-agent /usr/bin/gpg-agent | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment