How To Open Deb File

How To Open Deb File

Reading time1 min
#Linux#OpenSource#Software#Debian#PackageManagement#CommandLine

Mastering the Command Line: How to Open and Inspect .deb Files Without Installation

Forget blindly installing .deb files from unknown sources. Learn the command-line tools and techniques to peek inside these packages safely, giving you control and preventing potential system risks before they become a problem.

When working with Linux systems—especially Debian, Ubuntu, or their derivatives—.deb files are the standard package format for installing software. But what if you want to verify what’s inside a .deb package before actually installing it? Maybe you want to audit the package contents, check dependencies, or troubleshoot issues without cluttering your system.

In this practical guide, you'll discover how to open and inspect .deb files using simple command-line tools—without any installation. Whether you’re a developer vetting third-party software or a sysadmin maintaining secure environments, mastering these techniques lets you make smarter, safer choices with your packages.


Why Peek Inside .deb Files?

  • Security: Verify there’s no malicious script or unexpected binary included.
  • Stability: Check all the files a package will drop into your system.
  • Dependency Management: See which libraries and other packages it requires.
  • Troubleshooting: Confirm versions or file conflicts before deployment.

The Anatomy of a .deb File

A .deb file is essentially an archive with two tarball components:

  • control.tar.*: Contains metadata like control scripts (postinst, preinst), dependencies, package info.
  • data.tar.*: Contains the actual files that will be installed on your system (binaries, configs).
  • Additionally, there’s debian-binary which indicates the package version format.

Knowing this helps understand what you’ll extract and inspect.


How To Safely Open and Inspect .deb Files From The Command Line

1. Use dpkg-deb --info to View Package Metadata

This command gives you an overview—package name, version, essential dependencies:

dpkg-deb --info example-package.deb

Example output:

 new Debian package, version 2.0.
 size 123456 bytes: control archive= 1234 bytes.
   123 bytes,    10 lines      control
   234 bytes,    20 lines      md5sums
 Package: example-package
 Version: 1.2.3
 Section: utils
 Priority: optional
 Architecture: amd64
 Depends: libc6 (>= 2.14), libssl1.1 (>= 1.1.0)
 Maintainer: Your Name <you@example.com>
 Description: Example utility for demonstration purposes.

This is the first step to understand what you’re dealing with.


2. Extract Control Information Without Installing

To inspect scripts (postinst, prerm) or look at dependency files manually:

dpkg-deb -e example-package.deb ./control-files/

This extracts the entire control section into ./control-files/ folder.

You can then browse:

ls ./control-files/
cat ./control-files/control
cat ./control-files/postinst

This helps verify any pre/post installation scripts that could affect your system.


3. Extract and Explore Data Files

If you want to see exactly what files are in the package before adding anything to your system:

dpkg-deb -x example-package.deb ./data-files/

This extracts all files into a directory called ./data-files/ exactly as they would be installed in /.

You can explore:

tree ./data-files/
cat ./data-files/usr/bin/example-binary
head -n 20 ./data-files/etc/example.conf

This lets you check config files, binaries, libraries without risk.


4. List Files Contained In The Package

To quickly list all paths that will be installed:

dpkg-deb --contents example-package.deb

Example snippet:

drwxr-xr-x root/root         0 2024-04-25 10:00 ./usr/
drwxr-xr-x root/root         0 2024-04-25 10:00 ./usr/bin/
-rwxr-xr-x root/root     12345 2024-04-25 10:00 ./usr/bin/example-binary
-rw-r--r-- root/root      2345 2024-04-25 10:00 ./etc/example.conf

Useful for verifying paths and ownership info quickly.


Bonus Tips

Check MD5 Checksums Within The Package

To verify integrity of packaged files:

dpkg-deb -e example-package.deb /tmp/control-checksums/
cat /tmp/control-checksums/md5sums

You can run md5sum on extracted data-files/ to cross-check integrity before installation.

Use ar To Manually Unpack .deb

Since deb packages are actually ar archives:

ar t example-package.deb
# Lists files inside:
# debian-binary control.tar.gz data.tar.xz

ar x example-package.deb

tar -tf control.tar.gz        # List control details inside
tar -xf data.tar.xz           # Extract payload manually too

Good for forensic inspection if normal tools fail.


Wrapping Up

Opening and inspecting .deb files without installing them unlocks greater transparency and control over your Linux system’s software intake process. By mastering commands like dpkg-deb, you'll be able to:

  • Audit packages before deploying in production.
  • Avoid potential security risks from unknown sources.
  • Resolve dependency questions ahead of time.
  • Gain peace of mind knowing exactly what software does under the hood.

Keep these commands handy in your sysadmin toolkit—you never know when this knowledge will save you from a tricky situation!


If you've found this guide helpful or have your own tips on working with Debian packages safely, leave a comment below!

Happy shell-scripting! 🐚