Installation

There are several options for installing drgn.

Dependencies

drgn depends on:

The build requires:

Install dependencies:

Arch Linux:

$ sudo pacman -S --needed gcc libelf make pkgconf python python-pip python-setuptools

Debian/Ubuntu:

$ sudo apt-get install gcc liblzma-dev libelf-dev libdw-dev make pkgconf python3 python3-dev python3-pip python3-setuptools zlib1g-dev

Note that Debian Stretch, Ubuntu Trusty, and Ubuntu Xenial (and older) ship Python versions which are too old. Python 3.6 or newer must be installed manually.

Fedora:

$ sudo dnf install elfutils-devel gcc make pkgconf python3 python3-devel python3-pip python3-setuptools

Optionally, install:

  • libkdumpfile if you want support for kdump-compressed kernel core dumps

Building from the Git repository (rather than a release tarball) additionally requires:

Simply add autoconf automake gawk libtool to the appropriate installation command above.

Installation

After installing dependencies, the latest release of drgn can be installed globally with pip:

$ sudo pip3 install drgn
$ drgn --help

The development version can be built and installed manually:

$ git clone https://github.com/osandov/drgn.git
$ cd drgn
$ python3 setup.py build
$ sudo python3 setup.py install
$ drgn --help

Both of these options can be done in a virtual environment if you do not wish to install drgn globally:

$ python3 -m venv drgnenv
$ source drgnenv/bin/activate
(drgenv) $ pip3 install drgn
(drgenv) $ drgn --help

Development

For development, drgn can be built and run locally:

$ CFLAGS="-Wall -Werror -g -O2" python3 setup.py build_ext -i
$ python3 -m drgn --help

libkdumpfile

drgn supports kdump-compressed kernel core dumps when libkdumpfile is available. libkdumpfile is not packaged for most Linux distributions, so it must be built and installed manually. If it is installed, then drgn is automatically built with support.