{"id":48875798,"url":"https://github.com/cedricduriau/packagerbuddy","last_synced_at":"2026-04-16T00:33:19.833Z","repository":{"id":44966796,"uuid":"159018731","full_name":"cedricduriau/packagerbuddy","owner":"cedricduriau","description":"JSON config based software packager.","archived":false,"fork":false,"pushed_at":"2024-02-18T11:08:55.000Z","size":187,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-10-06T20:36:27.669Z","etag":null,"topics":["json","packagerbuddy","python","software-packaging"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cedricduriau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2018-11-25T10:07:00.000Z","updated_at":"2023-01-23T12:13:50.000Z","dependencies_parsed_at":"2024-02-04T10:44:42.041Z","dependency_job_id":"09a424c4-5a84-427a-a776-40438bc7666e","html_url":"https://github.com/cedricduriau/packagerbuddy","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/cedricduriau/packagerbuddy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedricduriau%2Fpackagerbuddy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedricduriau%2Fpackagerbuddy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedricduriau%2Fpackagerbuddy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedricduriau%2Fpackagerbuddy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cedricduriau","download_url":"https://codeload.github.com/cedricduriau/packagerbuddy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedricduriau%2Fpackagerbuddy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31866347,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["json","packagerbuddy","python","software-packaging"],"created_at":"2026-04-16T00:33:18.142Z","updated_at":"2026-04-16T00:33:19.821Z","avatar_url":"https://github.com/cedricduriau.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PackagerBuddy\n[![platform](https://img.shields.io/badge/platform-linux--x64-lightgrey.svg)](https://img.shields.io/badge/platform-linux--x64-lightgrey.svg)\n[![platform](https://img.shields.io/badge/platform-darwin--arm64-lightgrey.svg)](https://img.shields.io/badge/platform-darwin--arm64-lightgrey.svg)\n[![license: GPL v3](https://img.shields.io/badge/license-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://img.shields.io/badge/Python-3.8+-blue.svg)\n[![coverage](https://img.shields.io/badge/coverage-90%25-brightgreen.svg)](https://img.shields.io/badge/coverage-90%25-brightgreen)\n\n## Overview\n\nPackagerBuddy is a JSON config based software packager written entirely in Python.\n\nUse Cases\n\n- I set up (virtual) machines often and want to have a quick way of setting up software.\n- I run multiple versions of the same software package.\n- I don't like how software auto-updates and installs a newer version \nof itself.\n\n## Install\n\nIf you wish to install the current master, use the following command:\n\n```sh\n# latest master\npip install git+git://github.com/cedricduriau/packagerbuddy.git\n\n# specific version\npip install git+git://github.com/cedricduriau/packagerbuddy.git@{RELEASE}\n```\n\n## Usage\n\n### Setup\n\nThe setup command will create all directories required to function. By default these are installed in the user home directory. To change the default location, see see [Configure](#Configure).\n\n```sh\npackagerbuddy setup\n```\n\n### Add software\nThe add command requires two arguments. The `software` argument used as alias to interact with, and the `url` argument which needs to be an url containing a version placeholder.\n\n```sh\npackagerbuddy add --software codium --url https://github.com/VSCodium/vscodium/releases/download/{version}/VSCodium-darwin-arm64-{version}.zip\n```\n\n### Remove software\n\nThe remove command requires a single argument, the `software` argument, which needs to match an already added software. To list the available software packages, see `avail` command below.\n\n```sh\npackagerbuddy remove --software codium\n```\n\n### List available software to install\nThe `avail` command prints all software names that are present in the config, supported by PackgerBuddy.\n\n```sh\npackagerbuddy avail\n```\n\n### Install software\nThe `install` command requires two arguments. The `software` argument which needs to match an alias in the software config and the `version` argument which needs to form an existing download url. If the requested software version has already been installed, the install will stop.\n\n```sh\npackagerbuddy install --software codium --version 1.85.2.2401\n```\n\nInstalling consists of five steps:\n\n1. Download the software from the url in the configs to the designated download directory.\n2. Unpack the downloaded content.\n3. Install/move the unpacked content to the designated install directory.\n4. Run the post install script from the designated scripts directory.\n\n### List installed software\nThe `list` command prints all installed software. PackagerBuddy knows the difference between ordinary directories and software it installed thanks to a package file which is written out at install time.\n\n```sh\npackagerbuddy list\n```\n\n### Uninstalling\nThe `uninstall` command, well, does exactly that. It checks if the given software is installed at all and if so, proceeds to remove the file system contents in the designated install location.\n\nThe `version` argument is optional. If it is passed, only given version will be removed. If it is not passed, **all** versions will be uninstalled of given software. Beware of this feature.\n\n```sh\n# uninstall all versions\npackagerbuddy uninstall --software codium\n\n# uninstall specific version\npackagerbuddy uninstall --software codium --version 1.85.2.2401\n```\n\n## Configure\n\n### Environment Variables\n\n* `PB_CONFIG` : Path of the software config.\n  * default: custom file in the user home. (`~/.packagerbuddy/config/software.json`)\n* `PB_DOWNLOAD` : Directory the software will be downloaded to.\n  * default: custom directory in the user home. (`~/.packagerbuddy/downloaded`)\n* `PB_INSTALL`: Directory the software will be installed in.\n  * default: custom directory in the user home. (`~/.packagerbuddy/installed`)\n* `PB_SCRIPTS`: Directory of the post install scripts.\n  * default: custom directory in the user home. (`~/.packagerbuddy/scripts`)\n\n### Examples\n\nIf you want to try out the example shipping with the repository, run following commands from the root of this repo:\n\n```sh\ncp -R ./darwin-arm64/examples/* ~/.packagerbuddy/\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedricduriau%2Fpackagerbuddy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcedricduriau%2Fpackagerbuddy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedricduriau%2Fpackagerbuddy/lists"}