What is deb-get? A Full-Stack Developer‘s Guide to Installing Debian Packages with deb-get

As a full-stack developer, you know the importance of using the right tools for the job. When it comes to installing software on Debian-based systems, the apt package manager is usually the go-to solution. But what about those third-party applications that aren‘t available in the standard repositories? Enter deb-get, a promising new utility that aims to simplify the process of installing and managing .deb packages from external sources.

In this comprehensive guide, we‘ll dive deep into deb-get from a developer‘s perspective. We‘ll cover the basics of what it is and how it works, explore the advantages it offers over other solutions, and walk through detailed examples of using deb-get in your own workflows. By the end of this article, you‘ll have a thorough understanding of deb-get and how it can streamline your Debian software management.

What is deb-get?

At its core, deb-get is a command-line tool that provides an apt-like experience for installing .deb packages not available in the official Debian repositories. It was created by Martin Wimpress, a seasoned Debian developer and the project lead for Ubuntu MATE, with the goal of offering a "simple, safe, and predictable way to install third-party .deb files."

Under the hood, deb-get is a relatively straightforward bash script that acts as a wrapper around standard Debian tools like apt, dpkg, and curl. It works by reading a curated list of packages from a plain text file hosted on GitHub, downloading the associated .deb files directly from the vendor‘s website, verifying their checksums and signatures, and then installing them using dpkg.

Here are some of the key features that set deb-get apart:

  • Provides an apt-like command line interface for searching, installing, and removing packages
  • Uses official, pre-compiled .deb packages directly from software vendors
  • Includes only widely-used, non-default desktop applications (no libraries or system components)
  • Relies solely on core Debian tools and has minimal dependencies
  • Verifies downloads with SHA256 checksums and GPG signatures for added security
  • Driven by a transparent, community-maintained package list on GitHub

At the time of writing (April 2023), deb-get is at version 0.3.5 and offers over 50 popular packages, including productivity tools like Slack and Zoom, creative apps like Blender and OBS Studio, and development essentials like Visual Studio Code and GitHub CLI. You can browse the full package list on the deb-get GitHub page.

While still a relatively new project, deb-get has seen an impressive adoption rate in the Debian community. According to stats from the official GitHub repository, deb-get averages over 1,000 unique clones per day and has been starred by more than 1,400 users. It‘s also been featured in popular publications like OMG! Ubuntu! and Linux Uprising.

Advantages of deb-get for Developers

As a full-stack developer, you likely work with a wide variety of tools and platforms, and may frequently need to set up new development environments. In these situations, using deb-get to install your go-to applications can be a real time-saver compared to hunting down individual .deb files or setting up third-party repositories.

Here are some of the key benefits deb-get offers for developers:

  1. Simplicity and Convenience: deb-get provides a clean, unified interface for finding and installing packages, using syntax that will be immediately familiar to any apt user. No more scouring vendor websites for download links or grappling with dpkg commands and dependency resolution.

  2. Safety and Security: By using official, pre-compiled .deb packages directly from vendors and verifying checksums and GPG signatures, deb-get helps mitigate the risks of installing software from untrusted sources. You can have confidence that you‘re getting legitimate, unmodified packages straight from the source.

  3. Repeatability and Automation: deb-get‘s simple, text-based package list makes it easy to automate setup of your favorite tools across multiple machines or share configurations with team members. You could even create a custom meta-package with all your go-to applications and install them with a single deb-get command.

  4. Compatibility and Performance: Because deb-get packages are just standard .deb files, they integrate seamlessly with the rest of your Debian system. There‘s no additional runtime overhead, compatibility layers, or duplication of dependencies like with some other third-party package formats. Updates can also be managed through your regular apt workflow.

To give you a concrete example, let‘s say you‘re setting up a new development machine and want to install Visual Studio Code, Slack, and Zoom – all common tools not found in the default Debian repos. With deb-get, you could have them up and running with just a few commands:

# Install deb-get
curl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-get

# Install packages
sudo deb-get install code slack-desktop zoom

Compare that to the manual process of going to each vendor‘s site, finding the appropriate .deb file (hoping it‘s available for your Debian version), downloading it, and running the necessary dpkg incantations. Or worse, adding multiple third-party apt repositories and PPAs to your carefully-curated sources list.

Detailed Usage Examples

Now that you have a sense of what deb-get is and why it‘s useful, let‘s walk through some detailed examples of using it in practice. We‘ll cover installing and removing packages, searching for available software, and advanced tips for maintaining your deb-get setup.

Installing Packages

Installing a package with deb-get is as simple as:

sudo deb-get install <package-name>

For example, to install the Atom text editor:

sudo deb-get install atom

deb-get will download the official .deb file from Atom‘s GitHub releases page, verify its checksum and signature, and then install it using dpkg. The package will then be available to launch from your desktop environment as usual.

You can also install multiple packages at once by listing them one after the other:

sudo deb-get install atom slack-desktop zoom

If a package is already installed, deb-get will skip it and move on to the next one.

Removing Packages

To uninstall a deb-get package, use the remove or purge subcommands:

sudo deb-get remove <package-name>

Or:

sudo deb-get purge <package-name>

The remove option will uninstall the package but leave any configuration files in place, while purge will remove the package along with its associated config and data directories.

For example, to completely remove the Atom package:

sudo deb-get purge atom

Searching for Packages

To see a list of all packages currently available via deb-get, use the list subcommand:

deb-get list

This will output a plain text list of package names, one per line.

To search for a specific package by name, use the search subcommand followed by a search term:

deb-get search <term>

deb-get will return any package names that match the search string. For example:

deb-get search office
<package>code</package>
<package>teams</package>
<package>skype</package>

For more details on a specific package, including the description, version, maintainer, and download URL, use the show subcommand:

deb-get show <package-name>

For example:

deb-get show atom
<package>atom</package>
<version>1.60.0</version>
<url>https://atom.io/download/deb</url>
<description>A hackable text editor for the 21st Century.</description>
<maintainer>The Atom Development Team</maintainer>

Advanced Usage

Here are a few additional tips and tricks for getting the most out of deb-get:

  • To update the package list to the latest version from GitHub, use the update subcommand:

    sudo deb-get update
  • You can also manually edit the package list file at /usr/share/deb-get/deb-get-packages-list to add, remove, or customize entries. Just be sure to follow the correct format and include all required fields.

  • If you want to install a local .deb file not in the deb-get package list, you can use the install-deb subcommand followed by the path to the file:

    sudo deb-get install-deb /path/to/package.deb
  • To see a full list of available subcommands and options, use the --help flag:

    deb-get --help

Comparing deb-get to Other Options

Of course, deb-get isn‘t the only game in town when it comes to installing third-party applications on Debian. Let‘s see how it stacks up to some of the other common options:

Feature deb-get Manual .deb Install snap flatpak
Command-line interface
GUI integration
Official vendor pkgs
Automatic updates
Cross-distro support
Minimal overhead
Decentralized hosting
Community-driven

As you can see, deb-get offers a unique combination of simplicity, security, and community ownership that sets it apart from other options. It may not have the cross-distro compatibility or automatic updates of snap or flatpak, but for Debian users who just need an easy way to install a few key third-party apps, it‘s a compelling choice.

The Future of deb-get

While deb-get is off to a strong start, there‘s still plenty of room for growth and improvement. Some potential areas for future development include:

  • Expanding the package selection to cover an even wider range of popular desktop apps
  • Building a web-based frontend for browsing and discovering available packages
  • Integrating with system package managers for automatic updates of deb-get packages
  • Providing a local package cache for offline installs and faster repeatability
  • Offering native GUI integration and features like desktop icons and menu entries

Of course, as a community-driven project, the exact roadmap for deb-get will depend on the contributions and priorities of its user base. But given the enthusiasm and momentum behind the project so far, it seems poised for continued evolution and adoption in the Debian ecosystem.

Conclusion

For Debian-based developers looking for a straightforward way to install third-party applications, deb-get is a tool that deserves a spot in your workflow. Its ease of use, security-conscious design, and active community make it a compelling alternative to manually wrangling .deb files or relying on larger cross-distro frameworks.

Whether you‘re provisioning a new dev environment, sharing tool configs with your team, or just want a simpler way to get the latest version of your favorite app, deb-get has you covered. With a strong foundation and promising roadmap, it‘s a project worth watching – and contributing to – as it matures.

So why not give deb-get a try on your next Debian setup? It just might become your new go-to for third-party packages. And if you find yourself wishing for a particular app or feature, remember that as an open-source, community-driven project, you have the power to help shape its future. Happy deb-getting!

Similar Posts