checkinstall
Create installable packages from source code
TLDR
Create and install a package with default settings
Create a package but don't install it
Create a package without documentation
Create a package and set the name
Create a package and specify where to save it
SYNOPSIS
checkinstall [options] [make_command]
PARAMETERS
-D, --debian
Generate a Debian package (.deb)
-F, --rpm
Generate an RPM package (.rpm)
-R, --requires <list>
Specify required packages or files, comma-separated
-p, --provides <name>
Specify packages or files this one provides
-P, --prefix <dir>
Set installation prefix (default /usr/local)
-a, --arch <arch>
Set package architecture (auto-detects if omitted)
-b, --bindir <dir>
Set binary installation directory
-d, --depdir <dir>
Search directory for dependencies
-m, --maintainer <name>
Set package maintainer name
-n, --nodoc
Do not create or install documentation
-r, --pkgrpm <name>
Set RPM packager name/email
-s, --strip
Strip binaries/symbols after packaging
-t, --pkgversion <version>
Override detected package version
-u, --upgrade <oldversion>
Set previous package version for upgrades
-y, --yes
Automatic yes to all prompts (non-interactive)
-v, --verbose
Increase output verbosity
--help
Display usage summary
--version
Show checkinstall version
--install=no
Create package but do not install it
--pkgname=<name>
Set package name explicitly
--pkgrelease=<release>
Set package release number
--pakdir=<dir>
Set output directory for packages
--fakesysconf
Fake /etc changes during install
--initdir=<dir>
Directory for init scripts
DESCRIPTION
checkinstall is a versatile Linux utility designed to simplify the installation and management of software compiled from source code. Instead of running make install directly, which scatters files across the system without tracking them, checkinstall intercepts the installation process. It monitors file system changes made by the build system's install command (typically make install), captures the installed files, and packages them into a standard format like DEB (Debian/Ubuntu) or RPM (Red Hat/Fedora).
This allows users to install the package using native tools like dpkg -i or rpm -i, enabling easy uninstallation, upgrades, and dependency tracking via the system's package manager. It supports custom metadata such as maintainer info, version, description, and dependencies, making it ideal for local builds or distributing software.
checkinstall requires root privileges or fakeroot for monitoring, and it prompts for confirmation before packaging or installing. It's particularly useful for developers and sysadmins handling software not available in repositories, reducing clutter from manual installs. However, it may not capture all dynamic changes perfectly, like runtime-generated files.
CAVEATS
Requires root or fakeroot; may miss runtime-generated files or kernel modules; not ideal for complex builds with custom install scripts; test packages before distribution; conflicts possible with multi-package builds.
TYPICAL USAGE
./configure && make && sudo checkinstall make install
Replace make install with checkinstall to package binaries, libs, etc.
REQUIREMENTS
Needs packaging tools: dpkg-dev for DEB, rpm-build for RPM. Install via apt/yum: sudo apt install checkinstall.
HISTORY
Developed by Felipe Eduardo Sanchez Diaz Duran in 2002 as an open-source tool for Slackware, later expanded for Debian/RPM. Maintained sporadically; last major release around 1.6.2 in 2013. Widely used in pre-package-manager ecosystems and still relevant for custom source builds.


