/deb-get

apt-get functionality for .debs published in 3rd party repositories or via direct download 📦

Primary LanguageShellMIT LicenseMIT

deb-get
deb-get

apt-get functionality for .debs published in 3rd party repositories or via direct download. It works on Debian, Ubuntu and their derivative distributions.
Made with 💝 for &

Introduction

deb-get makes it easy to install and update .debs published in 3rd party apt repositories or made available via direct download on websites or GitHub release pages.

Install

Use deb-get to install deb-get.

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

Alternatively, you can download the .deb of deb-get from the releases page and install it manualy with sudo apt-get install ./path/to/deb-get_<version>.deb

Usage

Here's an example of how to install Google Chrome.

deb-get install google-chrome-stable

You can see what applications are supported by using deb-get list or you can search the available applications with deb-get search <app>.

You can upgrade packages installed using deb-get by running deb-get upgrade.


deb-get {update | upgrade | show pkg | install pkg | reinstall pkg | remove pkg
        | purge pkg | search pkg | cache | clean | list | prettylist | csvlist | help | version}

deb-get provides a high-level commandline interface for the package management
system to easily install and update packages published in 3rd party apt
repositories or via direct download.

update
    update is used to resynchronize the package index files from their sources.

upgrade
    upgrade is used to install the newest versions of all packages currently installed on the system.

install
    install is followed by one package desired for installation or upgrading.

reinstall
    reinstall is followed by one package desired for reinstallation.

remove
    remove is identical to install except that packages are removed instead of installed.

purge
    purge is identical to remove except that packages are removed and purged (any configuration files are deleted too).

clean
    clean clears out the local repository (/var/cache/deb-get) of retrieved package files.

search
    search for the given regex(7) term(s) from the list of available packages supported by deb-get and display matches.

show
    show information about the given package including its install source and update mechanism.

list
    list the packages available via deb-get.

prettylist
    markdown formatted list the packages available via deb-get. Use this to update README.md

csvlist
    csv formatted list the packages available via deb-get. Use this with 3rd party wrappers.

cache
    list the contents of the deb-get cache (/var/cache/deb-get)

help
    show this help

version
    show deb-get version

Why?

3rd party apt repositories exist. They are not going away.

Some application vendors and projects express their support for Debian/Ubuntu by publishing .debs of their software as direct downloads or via their own apt repositories. deb-get makes it easy to find, install and update .debs published in this way.

  • Perhaps you want to use software that is not (yet) officially packaged for Debian/Ubuntu.
  • Perhaps you want to use software that is fast moving and newer versions are available from the vendor/project.
  • Perhaps you want to use some non-free software that Debian/Ubuntu cannot distribute due to licensing restrictions.

deb-get tries to remedy this by providing a curated index of software available for Ubuntu that is published by the project or vendor. deb-get is inspired by Software Boutique, a graphical application I co-authored that does much the same thing and has been included in Ubuntu MATE since 2015.

Supported Software

The software below can be installed, updated and removed using deb-get.

  • deb-get install <packagename>
  • deb-get update
  • deb-get upgrade
  • deb-get remove <packagename>
  • deb-get purge <packagename>
Source Package Name Description
1password The easiest way to store and use strong passwords.
android-messages-desktop Run Android Messages as a desktop app.
antimicrox A graphical program used to map keyboard buttons and mouse controls to a gamepad.
anydesk Access any device at any time. From anywhere. Always secure and fast.
appimagelauncher A free and open source MIT licensed app that makes your Linux desktop AppImage ready. Integrate AppImages to your application launcher with one click, and manage, update and remove them from there.
atom A hackable text editor for the 21st Century.
audio-recorder Audio recording app that allows for the recording from various sources such as microphones, a system's sound card, or a web browser, and save it to various possible formats.
azure-cli Command-line interface used to create and manage Azure resources.
azuredatastudio Data management tool for working with SQL Server, Azure SQL DB and SQL DW.
balena-etcher-electron Flash OS images to SD cards & USB drives, safely and easily.
bat A 'cat' clone with wings.
battery-monitor An X-platform utility tool developed on Python, notifies about charging, discharging, and critically low battery state of the battery on laptop.
beersmith3 Home Brewing Software.
bitwarden Open Source Password Manager.
bitwig-studio Modern music production and performance.
blanket Improve focus and increase your productivity by listening to different sounds. Or allows you to fall asleep in a noisy environment.
blockbench A low-poly 3D model editor
bluejeans-v2 The secure video conferencing platform that makes you more productive.
bottom Yet another cross-platform graphical process/system monitor.
brave-browser Browse privately. Search privately. And ditch Big Tech.
brisqi An offline-first personal Kanban app.
caprine Elegant Facebook Messenger desktop app.
cawbird Twitter client for the Linux desktop.
chronograf Open source monitoring and visualization UI for the TICK stack.
code Code editing. Redefined.
codium Community-driven, freely-licensed binary distribution of Microsoft's Code editor.
com.github.tkashkin.gamehub Unified library for all your games.
copyq An advanced clipboard manager with editing and scripting features.
crossover Run your Windows apps on Linux! CrossOver is a Microsoft Windows compatibility layer based on Wine.
cryptomator Multi-platform transparent client-side encryption of your files in the cloud.
dbeaver-ce Database GUI Client
deadbeef The ultimate music player
deb-get 'apt-get' functionality for .debs published in 3rd party repositories or via direct download package.
deltachat-desktop Email-based instant messaging for Desktop.
discord A place that makes it easy to talk every day and hang out more often.
docker-ce Open source containerization technology for building and containerizing your applications.
docker-desktop The fastest way to containerize applications.
draw.io Diagramming and whiteboarding app that wraps the core draw.io editor.
dropbox Securely share, store and do more with your content.
duf Disk Usage/Free Utility - a better 'df' alternative.
dustracing2d Dust Racing 2D is a traditional top-down car racing game including a level editor.
element-desktop Secure and independent communication, connected via Matrix.
enpass Remember one master password and let Enpass take care of the rest.
exodus Bitcoin & Crypto Wallet.
expressvpn Popular VPN software
fd A simple, fast and user-friendly alternative to 'find'.
figma-linux Unofficial Electron-based Figma desktop app for Linux.
firefox-esr Firefox Extended Support Release.
flameshot Flameshot is a free and open-source, cross-platform tool to take screenshots with many built-in features to save you time.
foliate A simple and modern eBook viewer for Linux desktops.
franz A messaging app for WhatsApp, Facebook Messenger, Slack, Telegram and many many more.
fsearch Fast file search utility.
geforcenow-electron Desktop client for Nvidia's GeForce NOW game streaming service.
gh GitHub CLI brings GitHub to your terminal. Free and open source.
git-delta A syntax-highlighting pager for 'git', 'diff', and 'grep' output.
github-desktop Simple collaboration from your desktop.
gitkraken Intuitive Git GUI & powerful Git CLI.
gitter A chat and networking platform to manage and connect communities through messaging, content and discovery.
google-chat-electron An unofficial desktop app for Google Chat.
google-chrome-stable Fast, Secure Browser from Google.
google-earth-pro-stable Explore worldwide satellite imagery and 3D buildings and terrain for hundreds of cities.
gpu-viewer A front-end to glxinfo, vulkaninfo, clinfo and es2_info.
grype A vulnerability scanner for container images and filesystems.
heroic An Open Source GOG and Epic games launcher.
hugo Open-source static site generator.
hyper A terminal built on web technologies.
igdm Continue your Instagram direct messages from your phone to your desktop.
influxdb Scalable datastore for metrics, events, and real-time analytics.
influxdb2 Scalable datastore for metrics, events, and real-time analytics.
influxdb2-cli CLI for managing resources in InfluxDB v2
insomnia The API Design Platform and API Client.
insync Manage your Google Drive, OneDrive, and Dropbox files straight from your Desktop.
irccloud-desktop IRCCloud desktop application.
jabref The efficient way to collect, organize & discover.
jami Share, freely and privately.
jellyfin The Free Software Media System.
kapacitor Open source framework for processing, monitoring, and alerting on time series data.
kdiskmark A simple open-source disk benchmark tool for Linux distros.
keepassxc Cross-Platform Password Manager.
keybase End-to-end encryption for things that matter. Secure messaging and file-sharing.
kopia-ui Cross-platform backup tool for Windows, macOS & Linux with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication.
ksnip Cross-platform screenshot and annotation tool.
librewolf An independent fork of Firefox, with the primary goals of privacy, security and user freedom.
lsd The next gen 'ls' command.
ludo A minimalist frontend for emulators.
lutris Open Gaming Platform.
mailspring Boost your productivity and send better email with the best mail client.
mattermost-desktop Open Source platform for developer collaboration.
mergerfs A featureful union filesystem.
micro A modern and intuitive terminal-based text editor.
microsoft-edge-stable Fast and secure browser that helps you protect your data and save time and money.
minigalaxy A simple GOG client for Linux.
minikube minikube quickly sets up a local Kubernetes cluster on macOS, Linux, and Windows.
motrix A full-featured download manager.
mpdevil A simple music browser for MPD.
ms-office-electron A Microsoft Office Online Desktop Client made with Electron.
mullvad-vpn VPN Service based in Sweden that does not collect user data.
neo4j The Graph Data Platform for Today's Intelligent Applications.
nextcloud-desktop The self-hosted productivity platform that keeps you in control.
nomad Orchestration tool for deploying and managing applications.
nordvpn VPN service for speed and security.
notable The Markdown-based note-taking app that doesn't suck.
obs-cli OBS-cli is a command-line remote control for OBS.
obs-studio Free and open source software for video recording and live streaming.
obsidian A powerful knowledge base on top of a local folder of plain text Markdown files.
ocenaudio Easy, fast and powerful audio editor.
onlyoffice-desktopeditors Free desktop office suite for document editing and collaboration.
openaudible A cross-platform desktop application for downloading and managing your Audible audiobooks.
openrazer-meta Open source driver and user-space daemon that allows you to manage Razer peripherals.
openrgb Open source RGB lighting control that doesn't depend on manufacturer software.
opera-stable Faster, safer and smarter than default browsers.
p3x-onenote A Linux compatible version of OneNote.
pandoc A universal document converter.
papirus-icon-theme A free and open source SVG icon theme for Linux. Papirus weaves a beautiful visual cohesiveness over an ever-growing coverage of icons.
parsec Simple, low-latency game streaming.
peazip PeaZip is a free file archiver utility and extractor.
picocrypt A very small, very simple, yet very secure encryption tool.
plexmediaserver Stream Movies and TV Shows.
polychromatic Frontend for OpenRazer that enables Razer devices to control lighting effects and more.
portmaster Portmaster is a free and open-source application that puts you back in charge over all your computer's network connections.
powershell Cross-platform automation and configuration tool/framework and optimized for dealing with structured data.
protonmail-bridge Proton Mail Bridge adds end-to-end encryption to popular email apps, including Outlook, Thunderbird, and Apple Mail.
protonvpn High-speed Swiss VPN that safeguards your privacy.
qownnotes Free open source plain-text file markdown note-taking with Nextcloud / ownCloud integration.
pulse-sms A desktop client for Pulse SMS
quickemu Quickly create and run optimised Windows, macOS and Linux desktop virtual machines.
quickgui A Flutter frontend for Quickemu.
rambox Workspace simplifier.
rclone Syncs your files to cloud storage.
resilio-sync Fast, reliable, and simple file sync and share solution, powered by P2P technology
retroarch RetroArch is a frontend for emulators, game engines and media players.
rocketchat Official Desktop Client for Rocket.Chat.
rpi-imager Raspberry Pi Imaging Utility.
rstudio Professional software for data science teams.
rustdesk Open source virtual / remote desktop infrastructure for everyone!
sejda-desktop Easy, pleasant and productive PDF editor.
shutter-encoder Professional video, audio and image coversion and encoding tool.
signal-desktop Private Messenger.
simplenote The simplest way to keep notes.
skypeforlinux Stay connected with free video calls worldwide.
slack-desktop One platform for your team and your work.
sleek Todo manager based on the todo.txt syntax for Linux, free and open-source (FOSS).
softmaker-office-2021 Create impressive documents with ease.
soundux Soundux is a cross-platform soundboard compatible with both Pulseaudio and Pipewire. It has a universal architecture and works with a variety of applications such as Discord, Steam, and more.
spotify-client Millions of songs and podcasts.
standard-notes Standard Notes is an end-to-end encrypted note-taking app for digitalists and professionals. Capture your notes, files, and life’s work all in one secure place.
strawberry Music player and music collection organizer aimed at music collectors and audiophiles.
stremio Watch videos, movies, TV series and TV channels instantly.
sublime-merge Git Client, done Sublime.
sublime-text Text Editing, Done Right.
surfshark Award-winning VPN service.
syft CLI tool and library for generating a Software Bill of Materials from container images and filesystems.
syncthing Continuous file synchronization program.
system-monitoring-center Multi-featured system monitor.
tailscale Zero config VPN. Works on any device, manages firewall rules for you, and works from anywhere.
teams Team chat and collaboration.
teamviewer The Remote Desktop Software.
telegraf The plugin-driven server agent for collecting & reporting metrics.
terraform Automate Infrastructure on Any Cloud.
tidal-hifi Web version of listen.tidal.com running in Wlectron with hifi support thanks to widevine.
tixati A New and Powerful P2P System.
tribler An encrypted torrent client.
trivy A simple and comprehensive vulnerability/misconfiguration/secret scanner for containers and other artifacts.
typora A minimal Markdown editor and reader.
ubuntu-make Easy setup of common tools for developers on Ubuntu.
ulauncher Application launcher for Linux.
virtualbox-6.1 VirtualBox 6.1 is a general-purpose full virtualizer for x86 hardware, targeted at server, desktop and embedded use.
vivaldi-stable The most feature-packaged, customisable browser.
vuescan Scanner Software that supports over 6500 scanners.
wavebox Rethink the Web. Productivity Browser.
waydroid A container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.
webex Video Conferencing, Cloud Calling and Screen Sharing.
weechat The extensible chat client.
whalebird A Mastodon, Pleroma, and Misskey client for desktop application.
whatsapp-for-linux An unofficial WhatsApp desktop application for Linux.
wire-desktop Secure collaboration platform.
xemu A free and open-source application that emulates the original Microsoft Xbox game console, enabling people to play their original Xbox games on Windows, macOS, and Linux systems.
youtube-music Open source, cross-platform, unofficial YouTube Music Desktop App with built-in ad blocker and downloader.
yq A lightweight and portable command-line YAML processor.
zenith Sort of like 'top' or 'htop' but with zoom-able charts.
zettlr A Markdown Editor for the 21st century.
zoom Video Conferencing, Cloud Phone, Webinars, Chat, Virtual Events.
zotero A free, easy-to-use tool to help you collect, organize, cite, and share research.

Legend

The icons above denote how deb-get installs/updates the packages.

  • apt repository
  • GitHub releases
  • Launchpad PPA
  • Website

How do package updates work?

3rd party apt repositories and PPAs

If packages are available via a 3rd party apt repository or a Launchpad PPA , then those packages will be updated/upgraded when using apt-get update and apt-get upgrade.

GitHub Releases and direct downloads

For .deb packages that are only available via GitHub Releases or direct download , then those packages can only be updated/upgrade by using deb-get update and deb-get upgrade.

Adding Software

For information on what is acceptable as suggestion for new packages and instructions on how to open a PR to add a new package, head to CONTRIBUTING.

Custom User Includes /etc/deb-get.d/

As a more advanced feature, it's now possible to also add your own local customizations or overrides. And supplement the supplied list of official packages. This feature is especially useful to that your local copy of the deb-get tool can remain unmodified and always be kept fully up to date. By moving your customizations out in a seperate folder away from the main deb-get script.

Typically either because:

  1. You are waiting on a pending request for a new software package. Which has been submitted for consideration. But which has not been reviewed / accepted / merged / released yet.
  2. Or because you need to add something which does not meet any of the general guidelines in the previous section ^^ detailed above, for whatever various reason(s).

How to use:

  • Manually create the folder /etc/deb-get.d/ if not exist already. By default deb-get does not create this folder unless your specific distribution has packaged it that way.
  • Can also create any arbitrary nested sub-folder structure within /etc/deb-get.d/**/* main folder
  • Any files within this tree will be bash sourced in alphabetical order e.g. . /etc/deb-get.d/01-pending-merge/10-appname1
  • Your user custom deb_* functions are then loaded directly after the last deb_*() package declarations that officially come with deb-get
  • Recommendation message printed for any new user added deb_* functions. With a URL link to open a request.
  • Warning messages are then also printed for any conflicts detected. For overriden functions (of same name), which then take priority over existing official deb-get apps.

For the last situation, this is most often meant as a helpful reminder to remove your custom declaration once it has been successfully merged upstream into the official deb-get tool. So after deb-get updates itself you are properly notified. And can avoid keeping lots of duplite functions around.

We really hope that you will enjoy the convenience and flexibility of the new user overrides feature. So please consider in return to open new issues or pull requests (here on github), for any new deb_*() functions / packages you create! So that we can share those back with the wider community. Many thanks for your consideration!

Related projects

  • App Outlet: A Universal linux app store
  • bin-get: Script to easily and safely fetch binaries from Github Releases/tags
  • makedeb: A simplicity-focused packaging tool for Debian archives
  • MakeResolveDeb: Install DaVinci Resolve or DaVinci Resolve Studio on Debian
  • pacstall: The AUR alternative for Ubuntu
  • Ubuntu Make: Easy setup of common tools for developers on Ubuntu.
  • unsnap: Quickly migrate from using snap packages to flatpaks

In the media