Skip to main content

Copy dependencies required by a Linux executable.

Project description

copydeps

Introduction

copydeps is a tool to analyze and copy the dependencies of ELF binaries, as used on Linux and other UNIX systems. It is useful to create light, self-contained installers.

It works on both executables and libraries.

Requirements

  • A Linux system (copydeps might work on BSD systems, but this has not been tested)
  • Python 3
  • pyelftools
  • ldd

Installation

Install with ./setup.py install or just run copydeps.py from the source tree.

Usage

Copying dependencies

Assuming you want to copy all dependencies of the foo binary to the current directory, run:

copydeps /path/to/foo -d .

The list probably includes way too many libraries you can assume to be installed on the destination system. To tell copydeps to ignore them, create a exclude list file (you can have a look at exclude-list.sample for inspiration) and run it like this:

copydeps --exclude your/exclude-list /path/to/foo -d .

Analyzing dependencies

You can tell copydeps to generate a dependency diagram using the --dot option. If you just want to look at the dependency diagram, add the --dry-run option to prevent copying:

copydeps --exclude your/exclude-list /path/to/foo --dry-run --dot foo.dot

You can now view the diagram using any Graphviz viewer, such as xdot.

As an example, here is the dependency diagram of Qt5QuickControls2:

Qt5QuickControls2 dependencies

Limitations

copydeps does not detect libraries loaded with dlopen().

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

copydeps-1.1.1.zip (8.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page