#### Beyond Linux® From Scratch (System V Edition) - Version 12.3

### Chapter 4. Security

- Prev

  Cyrus SASL-2.1.28

- Next

  GnuTLS-3.8.9

- Up
- Home

# GnuPG-2.4.7

## Introduction to GnuPG

The GnuPG package is GNU's tool for secure communication and data storage. It can be used to encrypt data and to create digital signatures. It includes an advanced key management facility and is compliant with the proposed OpenPGP Internet standard as described in RFC2440 and the S/MIME standard as described by several RFCs. GnuPG 2 is the stable version of GnuPG integrating support for OpenPGP and S/MIME.

This package is known to build and work properly using an LFS 12.3 platform.

### Package Information

- Download (HTTP): https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.4.7.tar.bz2

- Download MD5 sum: 59ec68633deefcd38a5012f39a9d9311

- Download size: 7.6 MB

- Estimated disk space required: 135 MB (with tests)

- Estimated build time: 0.7 SBU (with tests; both using parallelism=4)

### GnuPG 2 Dependencies

#### Required

libassuan-3.0.2, libgcrypt-1.11.0, libksba-1.6.7, npth-1.8, and OpenLDAP-2.6.9

#### Recommended

GnuTLS-3.8.9 (required to communicate with keyservers using https or hkps protocol) and pinentry-1.3.1 (Run-time requirement for most of the package's functionality)

#### Optional

cURL-8.12.1, Fuse-3.16.2, ImageMagick-7.1.1-43 (for the convert utility, used for generating the documentation), libusb-1.0.27, an MTA, SQLite-3.49.1, texlive-20240312 (or install-tl-unx), fig2dev (for generating documentation), and GNU adns

## Installation of GnuPG

Install GnuPG by running the following commands:

    mkdir build &&
    cd    build &&

    ../configure --prefix=/usr           \
                 --localstatedir=/var    \
                 --sysconfdir=/etc       \
                 --docdir=/usr/share/doc/gnupg-2.4.7 &&
    make &&

    makeinfo --html --no-split -I doc -o doc/gnupg_nochunks.html ../doc/gnupg.texi &&
    makeinfo --plaintext       -I doc -o doc/gnupg.txt           ../doc/gnupg.texi &&
    make -C doc html

If you have texlive-20240312 installed and you wish to create documentation in the pdf format, issue the following command:

    make -C doc pdf

To test the results, issue: make check.

Now, as the `root` user:

    make install &&

    install -v -m755 -d /usr/share/doc/gnupg-2.4.7/html            &&
    install -v -m644    doc/gnupg_nochunks.html \
                        /usr/share/doc/gnupg-2.4.7/html/gnupg.html &&
    install -v -m644    ../doc/*.texi doc/gnupg.txt \
                        /usr/share/doc/gnupg-2.4.7 &&
    install -v -m644    doc/gnupg.html/* \
                        /usr/share/doc/gnupg-2.4.7/html

If you created the pdf format of the documentation, install them using the following command as the `root` user:

    install -v -m644 doc/gnupg.pdf \
                     /usr/share/doc/gnupg-2.4.7

## Command Explanations

mkdir build && cd build: the Gnupg2 developers recommend to build the package in a dedicated directory.

`--docdir=/usr/share/doc/gnupg-2.4.7`: This switch changes the default docdir to `/usr/share/doc/gnupg-2.4.7`.

`--enable-all-tests`: This switch allows more tests to be run with make check.

`--enable-g13`: This switch enables building the g13 program.

## Contents

Installed Programs: addgnupghome, applygnupgdefaults, dirmngr, dirmngr-client, g13 (optional), gpg-agent, gpg-card, gpg-connect-agent, gpg, gpgconf, gpgparsemail, gpgscm, gpgsm, gpgsplit, gpgtar, gpgv, gpg-wks-client, gpg-wks-server, kbxutil, and watchgnupg
Installed Libraries: None
Installed Directories: /usr/share/doc/gnupg-2.4.7 and /usr/share/gnupg

### Short Descriptions

addgnupghome | is used to create and populate a user's `~/.gnupg` directories
applygnupgdefaults | is a wrapper script used to run gpgconf with the `--apply-defaults` parameter on all user's GnuPG home directories
dirmngr | is a tool that takes care of accessing the OpenPGP keyservers
dirmngr-client | is a tool to contact a running dirmngr and test whether a certificate has been revoked
g13 | is a tool to create, mount or unmount an encrypted file system container (optional)
gpg-agent | is a daemon used to manage secret (private) keys independently from any protocol. It is used as a backend for gpg and gpgsm as well as for a couple of other utilities
gpg-card | is a tool to manage smart cards and tokens
gpg-connect-agent | is a utility used to communicate with a running gpg-agent
gpg | is the OpenPGP part of the GNU Privacy Guard (GnuPG). It is a tool used to provide digital encryption and signing services using the OpenPGP standard
gpgconf | is a utility used to automatically and reasonably safely query and modify configuration files in the `~/.gnupg` home directory. It is designed not to be invoked manually by the user, but automatically by graphical user interfaces
gpgparsemail | is a utility currently only useful for debugging. Run it with `--help` for usage information
gpgscm | executes the given scheme program or spawns an interactive shell
gpgsm | is a tool similar to gpg used to provide digital encryption and signing services on X.509 certificates and the CMS protocol. It is mainly used as a backend for S/MIME mail processing
gpgsplit | splits an OpenPGP message into packets
gpgtar | is a tool to encrypt or sign files into an archive
gpgv | is a verify only version of gpg
gpg-wks-client | is a client for the Web Key Service protocol
gpg-wks-server | provides a server for the Web Key Service protocol
kbxutil | is used to list, export and import Keybox data
watchgnupg | is used to listen to a Unix Domain socket created by any of the GnuPG tools

- Prev

  Cyrus SASL-2.1.28

- Next

  GnuTLS-3.8.9

- Up
- Home