{"id":13562967,"url":"https://github.com/wimpysworld/deb-get","last_synced_at":"2026-01-22T23:53:27.049Z","repository":{"id":36950401,"uuid":"482789449","full_name":"wimpysworld/deb-get","owner":"wimpysworld","description":"apt-get for .debs published via GitHub or direct download 📦","archived":false,"fork":false,"pushed_at":"2025-04-20T20:12:35.000Z","size":1345,"stargazers_count":1411,"open_issues_count":125,"forks_count":129,"subscribers_count":22,"default_branch":"main","last_synced_at":"2025-04-20T21:24:33.582Z","etag":null,"topics":["apt","apt-get","deb","debian","dpkg","hacktoberfest","install","linux","package-manager","ppa","ubuntu","upgrade"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wimpysworld.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"flexiondotorg","patreon":"wimpysworld","custom":"https://wimpysworld.io/tip"}},"created_at":"2022-04-18T09:29:57.000Z","updated_at":"2025-04-20T20:22:37.000Z","dependencies_parsed_at":"2023-11-20T10:33:48.500Z","dependency_job_id":"a9a0c79f-bb8b-47f4-8739-d0432c95b337","html_url":"https://github.com/wimpysworld/deb-get","commit_stats":{"total_commits":909,"total_committers":97,"mean_commits":9.371134020618557,"dds":0.7205720572057206,"last_synced_commit":"1852f69b2646f38552851526c49abb30efad6c7d"},"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wimpysworld%2Fdeb-get","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wimpysworld%2Fdeb-get/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wimpysworld%2Fdeb-get/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wimpysworld%2Fdeb-get/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wimpysworld","download_url":"https://codeload.github.com/wimpysworld/deb-get/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140745,"owners_count":22021219,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apt","apt-get","deb","debian","dpkg","hacktoberfest","install","linux","package-manager","ppa","ubuntu","upgrade"],"created_at":"2024-08-01T13:01:13.827Z","updated_at":"2026-01-22T23:53:27.023Z","avatar_url":"https://github.com/wimpysworld.png","language":"Shell","funding_links":["https://github.com/sponsors/flexiondotorg","https://patreon.com/wimpysworld","https://wimpysworld.io/tip"],"categories":["Shell","HarmonyOS","Applications","Linux"],"sub_categories":["Windows Manager","Utilities"],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\".github/deb-get-logo.png\" alt=\"deb-get\"\u003e\n  \u003cbr /\u003e\n  \u003ctt\u003edeb-get\u003c/tt\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003e\n    \u003ctt\u003eapt-get\u003c/tt\u003e functionality for .debs published in 3rd party repositories or via direct download. It works on Debian, Ubuntu and their derivative distributions.\n    \u003cbr /\u003e\n    Made with 💝 for \u003cimg src=\".github/ubuntu.png\" align=\"top\" width=\"20\" /\u003e \u0026 \u003cimg src=\".github/debian.png\" align=\"top\" width=\"20\" /\u003e\n  \u003c/b\u003e\n\u003c/p\u003e\n\n## Introduction\n\n`deb-get` makes it easy to install and update `.debs` published in 3rd party\napt repositories or made available via direct download on websites or GitHub\nrelease pages.\n\n## Install\n\nUse `deb-get` to install `deb-get`.\n\n```bash\nsudo apt install curl lsb-release wget\ncurl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-get\n```\n\nAlternatively, you can [download the `.deb` of `deb-get` from the releases page](../../releases/latest)\nand install it manually with\n\n``` bash\nsudo apt-get install ./path/to/deb-get_\u003cversion\u003e.deb\n```\n### GitHub Personal Access Token (PAT)\n\nYou must provide `deb-get` with a GitHub [Personal Access Token (PAT)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). Once created, insert it into the `DEBGET_TOKEN` environment variable for `deb-get` to use for authorization with the GitHub API.\n\nFor example:\n\n```shell\nexport DEBGET_TOKEN=github-personal-access-token\ndeb-get update\ndeb-get upgrade\n```\n\nSkipping this step will lead to failures during the `update`, `upgrade`, and `install` commands.\n\nFor more information, see the [API rate limit section below](#github-api-rate-limits).\n\n## Usage\n\nHere's an example of how to install Google Chrome.\n\n```bash\ndeb-get install google-chrome-stable\n```\n\nYou can see what applications are supported by using `deb-get list` or you\ncan search the available applications with `deb-get search \u003capp\u003e`.\n\nYou can upgrade packages installed using `deb-get` by running\n`deb-get upgrade`.\n\n\u003c!-- [[[cog\nimport subprocess\nimport cog\n\nresult = subprocess.check_output([\"./deb-get\", \"help\"], encoding=\"utf-8\")\n# strip the \"Usage\" header\nhelp = result.replace(\"Usage\\n\\n\", \"\").rstrip()\ncog.out(f\"```\\n{help}\\n```\")\n]]] --\u003e\n```\n\ndeb-get {update [--repos-only] [--quiet] | upgrade [--dg-only] | show \u003cpkg list\u003e | install \u003cpkg list\u003e\n        | reinstall \u003cpkg list\u003e | remove [--remove-repo] \u003cpkg list\u003e\n        | purge [--remove-repo] \u003cpkg list\u003e\n        | search [--include-unsupported] \u003cregex\u003e | cache | clean\n        | list [--include-unsupported] [--raw|--installed|--not-installed]\n        | prettylist [\u003crepo\u003e] | csvlist [\u003crepo\u003e] | fix-installed [--old-apps]\n        | help | version}\n\ndeb-get provides a high-level commandline interface for the package management\nsystem to easily install and update packages published in 3rd party apt\nrepositories or via direct download.\n\nupdate\n    update is used to resynchronize the package index files from their sources.\n    When --repos-only is provided, only initialize and update deb-get's\n    external repositories, without updating apt or looking for updates of\n    installed packages.\n    When --quiet is provided the fetching of deb-get repository updates is done without progress feedback.\n\nupgrade\n    upgrade is used to install the newest versions of all packages currently\n    installed on the system.\n    When --dg-only is provided, only the packages which have been installed by deb-get will be upgraded.\n\ninstall\n    install is followed by one package (or a space-separated list of packages)\n    desired for installation or upgrading.\n\nreinstall\n    reinstall is followed by one package (or a space-separated list of\n    packages) desired for reinstallation.\n\nremove\n    remove is identical to install except that packages are removed instead of\n    installed. When --remove-repo is provided, also remove the apt repository\n    of apt/ppa packages.\n\npurge\n    purge is identical to remove except that packages are removed and purged\n    (any configuration files are deleted too). When --remove-repo is provided,\n    also remove the apt repository of apt/ppa packages.\n\nclean\n    clean clears out the local repository (/var/cache/deb-get) of retrieved\n    package files.\n\nsearch\n    search for the given regex(7) term(s) from the list of available packages\n    supported by deb-get and display matches. When --include-unsupported is\n    provided, include packages with unsupported architecture or upstream\n    codename and include PPAs for Debian-derived distributions.\n\nshow\n    show information about the given package (or a space-separated list of\n    packages) including their install source and update mechanism.\n\nlist\n    list the packages available via deb-get. When no option is provided, list\n    all supported packages and tell which ones are installed (slower). When\n    --include-unsupported is provided, include packages with unsupported\n    architecture or upstream codename and include PPAs for Debian-derived\n    distributions (faster). When --raw is provided, list all packages and do\n    not tell which ones are installed (faster). When --installed is provided,\n    only list the packages installed (faster). When --not-installed is provided,\n    only list the packages not installed (faster).\n\nprettylist\n    markdown formatted list the packages available in repo. repo defaults to\n    01-main. If repo is 00-builtin or 01-main the packages from 00-builtin are\n    included. Use this to update README.md.\n\ncsvlist\n    csv formatted list the packages available in repo. repo defaults to\n    01-main. If repo is 00-builtin or 01-main the packages from 00-builtin are\n    included. Use this with 3rd party wrappers.\n\ncache\n    list the contents of the deb-get cache (/var/cache/deb-get).\n\nfix-installed\n    fix installed packages whose definitions were changed. When --old-apps is\n    provided, transition packages to new format. This command is only intended\n    for internal use.\n\nhelp\n    show this help.\n\nversion\n    show deb-get version.\n```\n\u003c!-- [[[end]]] --\u003e\n\n### Why?\n\n3rd party apt repositories exist. They are not going away.\n\nSome application vendors and projects express their support for Debian/Ubuntu\nby publishing `.debs` of their software as direct downloads or via\ntheir own apt repositories. `deb-get` makes it easy to find, install and update\n`.debs` published in this way.\n\n  - Perhaps you want to use software that is not (yet) officially packaged for Debian/Ubuntu.\n  - Perhaps you want to use software that is fast moving and newer versions are available from the vendor/project.\n  - Perhaps you want to use some non-free software that Debian/Ubuntu cannot distribute due to licensing restrictions.\n\n`deb-get` tries to remedy this by providing a curated index of software\navailable for Ubuntu that is published by the project or vendor. `deb-get` is\ninspired by Software Boutique, a graphical application I co-authored that does\nmuch the same thing and has been included in [Ubuntu MATE](https://ubuntu-mate.org)\nsince 2015.\n\n## Supported Software\n\nThe list of the software that can be installed, updated and removed using `deb-get`'s main repository is available at [01-main/README](01-main/README.md).\n\n### How do package updates work?\n\n#### 3rd party apt repositories and PPAs\n\nIf packages are available via a 3rd party `apt` repository\n\u003cimg src=\".github/debian.png\" align=\"top\" width=\"20\" /\u003e or a Launchpad PPA\n\u003cimg src=\".github/launchpad.png\" align=\"top\" width=\"20\" /\u003e, then those packages\nwill be updated/upgraded when using `sudo apt-get update` and `sudo apt-get upgrade`.\n\n#### GitHub Releases and direct downloads\n\nFor `.deb` packages that are only available via GitHub Releases\n\u003cimg src=\".github/github.png\" align=\"top\" width=\"20\" /\u003e or direct download\n\u003cimg src=\".github/direct.png\" align=\"top\" width=\"20\" /\u003e, then those packages\ncan only be updated/upgraded by using `deb-get update` and `deb-get upgrade`.\n\n#### GitHub API Rate Limits\n\n`deb-get` uses the [GitHub REST API](https://docs.github.com/en/rest) when updating the package index files for GitHub Releases\n\u003cimg src=\".github/github.png\" align=\"top\" width=\"20\" /\u003e and for downloading the associated `.debs`. This API is [rate-limited](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting) to 60 calls per hour per source IP address. This limit is vital for keeping the API responsive and available to all GitHub users. However, a lot of GitHub releases are now handled by `deb-get` so you will experience temporary failure to perform the following functions.\n\n* `update` the `deb-get` package index files\n* `upgrade` currently installed packages via GitHub Releases \u003cimg src=\".github/github.png\" align=\"top\" width=\"20\" /\u003e\n* `install` new applications via GitHub Releases \u003cimg src=\".github/github.png\" align=\"top\" width=\"20\" /\u003e\n\nIf you have a GitHub account you can provide an authorization token during your GitHub API usage to increase your rate limit to 5000 requests per hour per authenticated user.  To do this you will need to use a [Personal Access Token (PAT)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) with GitHub. Once you have created a token within GitHub (or identified an appropriate existing token), insert it into the `DEBGET_TOKEN` environment variable for `deb-get` to use with the GitHub API.\n\nYou probably want to put this into your `.profile` so it is always available. Remember to never commit secrets in dotfiles to public git repositories!\n\n```shell\n# In .profile\nexport DEBGET_TOKEN=github-personal-access-token\n```\n\n\n\n## Adding Software\n\nFor information on what is acceptable as suggestion for new packages and instructions on how to open a PR to add a new package to the main repository, head to [01-main/CONTRIBUTING](01-main/CONTRIBUTING.md).\n\n### Adding external repositories\n\nIt is possible to also add a `deb-get`-compatible external repository, and supplement the list of supported packages, typically because you need to:\n\n1. Add something which does not meet any of the general guidelines of the main repository; or\n2. Change the definition of a package from the main repository.\n\nFor information on how to create and maintain a `deb-get`-compatible external repository, head to [EXTREPO](EXTREPO.md).\n\nHow to use:\n\n* Manually create the file `/etc/deb-get/\u003cpriority\u003e-\u003crepo\u003e.repo`, containing in its first line the base URL of the repository.\n    * The `\u003cpriority\u003e` value is a two-digit number between 00 and 99 that defines the order in which the repositories will be loaded (00 first, 99 last), so if any conflicting definitions are found, the one from the repository with the highest priority will be used (the builtin definitions from the `deb-get` script itself have priority 00, the main repository has priority 01 and the custom user includes have priority 99).\n    * The `\u003crepo\u003e` value can be anything, but it should preferably be unique and easy to remember.\n* Run `deb-get update`, so the manifest file and the package definition files are downloaded.\n\n### Custom User Includes\n\nAs a more advanced feature, it is possible to also add your own local customizations or overrides, and supplement the list of packages supported by the main repository. This feature is especially useful so that your local copy of the main repository can remain unmodified and always be kept fully up to date by moving your customizations out in a separate folder away from the main repository.\n\nTypically because:\n\n1. You are waiting on a pending request for a new software package, which has been submitted for consideration but has not been reviewed / accepted / merged / released yet; or\n2. You need to add something which does not meet any of the general guidelines of the main repository, for whatever various reason(s).\n\nHow to use:\n\n* Manually create the folder `/etc/deb-get/99-local.d/` if it does not exist already. By default, `deb-get` does not create this folder unless your specific distribution has packaged it that way.\n* Any files directly within this folder will be bash sourced e.g. `. /etc/deb-get/99-local.d/appname1`.\n* The name of the added file **must** match **exactly** the name of the package being defined.\n* For information on how to create a package definition file, head to [EXTREPO](EXTREPO.md#the-package-definition-files).\n* Your user custom package definition files are then loaded after the package definitions from any added repository.\n* A recommendation message is printed for any new user added definitions, with a URL link to open a request.\n* Warning messages are then also printed for any conflicts detected for overridden definitions (of same name), which then take priority over existing ones.\n\nFor the last situation, this is most often meant as a helpful reminder to remove your custom definition once it has been successfully merged upstream into the main repository, so after the main repository updates itself you are properly notified. It also avoids keeping lots of duplicate definitions around.\n\nWe really hope that you will enjoy the convenience and flexibility of the user overrides feature, so please consider in return to open new issues and pull requests, for any new package definitions you create, so that we can share those back with the wider community. Many thanks for your consideration!\n\n## Related projects\n\n  * [App Outlet](https://appoutlet.github.io/): *A Universal linux app store*\n  * [bin-get](https://github.com/OhMyMndy/bin-get): *Script to easily and safely fetch binaries from GitHub Releases/tags*\n  * [makedeb](https://www.makedeb.org/): *A simplicity-focused packaging tool for Debian archives*\n  * [MakeResolveDeb](https://www.danieltufvesson.com/makeresolvedeb): *Install DaVinci Resolve or DaVinci Resolve Studio on Debian*\n  * [pacstall](https://pacstall.dev/): *The AUR alternative for Ubuntu*\n  * [Ubuntu Make](https://github.com/ubuntu/ubuntu-make): *Easy setup of common tools for developers on Ubuntu.*\n  * [unsnap](https://github.com/popey/unsnap): *Quickly migrate from using snap packages to flatpaks*\n  * [AM](https://github.com/ivan-hc/AM): *Appimage Manager* (also now handles portable apps)\n  * [eget](https://github.com/zyedidia/eget): *Easily install prebuilt binaries from GitHub*\n  * [TopGrade](https://github.com/topgrade-rs/topgrade): *Upgrade all the things*\n## In the media\n\n  * [The deb-get tool helps Ubuntu (and derivative distro) fans grab extra apps](https://www.gamingonlinux.com/2022/05/the-deb-get-tool-helps-ubuntu-and-derivative-distro-fans-grab-extra-apps/) - **GamingOnLinux**\n  * [Deb-Get is ‘Apt-Get’ for 3rd-Party Ubuntu Software](https://www.omgubuntu.co.uk/2022/05/use-deb-get-to-install-popular-linux-apps-on-ubuntu) - **omg! ubuntu!**\n  * [How To Install Third-Party Linux Applications with Deb-Get](https://www.tomshardware.com/uk/how-to/install-linux-apps-with-deb-get) - **toms HARDWARE**\n  * [How to use deb-get to install third-party software on Ubuntu](https://www.techrepublic.com/article/use-deb-get-install-third-party-software-ubuntu/) - **TechRepublic**\n  * [Ubuntu MATE’s Lead Creates a Nifty Tool to Help Install 3rd Party Deb Packages](https://news.itsfoss.com/deb-get-ubuntu/) - **It's FOSS**\n  * [Easily Get 3rd-Party Software on Ubuntu With Deb-Get](https://fosspost.org/deb-get-install-3rd-party-software-ubuntu/) - **FOSS Post**\n  * [deb-get, an \"apt-get\" to install third-party software on Ubuntu](https://ubunlog.com/en/deb-get-un-apt-get-para-instalar-software-de-terceros-en-ubuntu/) - **ubunlog**\n  * [deb-get, a utility for installing third-party software](https://www.linuxadictos.com/en/deb-get-una-utilidad-para-instalar-software-de-terceros.html) - **Linux Addicted**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwimpysworld%2Fdeb-get","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwimpysworld%2Fdeb-get","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwimpysworld%2Fdeb-get/lists"}