{"id":13393796,"url":"https://github.com/icy/pacapt","last_synced_at":"2025-05-16T08:04:51.603Z","repository":{"id":41677998,"uuid":"1052671","full_name":"icy/pacapt","owner":"icy","description":"An ArchLinux's pacman-like shell wrapper for many package managers. 56KB and run anywhere.","archived":false,"fork":false,"pushed_at":"2022-01-21T16:38:51.000Z","size":940,"stargazers_count":971,"open_issues_count":19,"forks_count":69,"subscribers_count":29,"default_branch":"ng","last_synced_at":"2025-05-11T22:47:50.674Z","etag":null,"topics":["archlinux","bash","linux","package-manager","sysadmin"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/icy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-11-04T23:01:00.000Z","updated_at":"2025-05-08T20:30:28.000Z","dependencies_parsed_at":"2022-07-08T00:09:06.498Z","dependency_job_id":null,"html_url":"https://github.com/icy/pacapt","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icy%2Fpacapt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icy%2Fpacapt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icy%2Fpacapt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icy%2Fpacapt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/icy","download_url":"https://codeload.github.com/icy/pacapt/tar.gz/refs/heads/ng","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493378,"owners_count":22080126,"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":["archlinux","bash","linux","package-manager","sysadmin"],"created_at":"2024-07-30T17:01:00.405Z","updated_at":"2025-05-16T08:04:46.592Z","avatar_url":"https://github.com/icy.png","language":"Shell","readme":"## `pacapt` - An `ArchLinux`'s pacman-like wrapper for many package managers\n\n[![Build Status](https://github.com/icy/pacapt/actions/workflows/ci.yaml/badge.svg)](https://github.com/icy/pacapt/actions)\n\n`pacapt` is a 56KB `shell` wrapper for many package managers.\nSimply install package with `pacapt -S htop` or `pacapt install htop`\non any `Linux`, `BSD`, `OpenWrt` or `Mac OS` machines.\nIt supports the following package managers:\n\n* `pacman`        from `Arch Linux`-based systems, `ArchBang`, `Manjaro`, etc.\n* `apt-cyg`       from Cygwin (via [apt-cyg](https://github.com/transcode-open/apt-cyg))\n* `apt-get`       from `Debian`, `Ubuntu`, etc.\n* `homebrew`      from `Mac OS X`\n* `macports`      from `Mac OS X`\n* `yum/rpm`       from `Redhat`, `CentOS`, `Fedora`, `Oracle Linux`, etc.\n* `portage`       from `Gentoo`\n* `zypper`        from `OpenSUSE`\n* `pkgng`         from `FreeBSD`\n* `cave`          from `Exherbo Linux`\n* `pkg_tools`     from `OpenBSD`\n* `sun_tools`     from `Solaris(SunOS)`\n* `apk`           from `Alpine Linux`\n* `opkg`          from `OpenWrt`\n* `tazpkg`        from `SliTaz Linux`\n* `swupd`         from `Clear Linux`\n* `xbps`          from `Void Linux`\n* `tlmgr`         from `TeX Live`\n* `conda`         from [`Conda`](https://conda.io/docs/)\n\n## TOC\n\n- [Description](#pacapt---an-archlinuxs-pacman-like-wrapper-for-many-package-managers)\n- [Installation](#installation)\n  - [Install the stable script from Github](#install-the-stable-script-from-github)\n- [Usage](#usage)\n  - [Basic operations](#basic-operations)\n  - [Basic options](#basic-options)\n  - [Implemented operations](#implemented-operations)\n- [Related projects](#related-projects)\n- [Similar projects](#similar-projects)\n- [Development](#development)\n  - [General steps](#general-steps)\n- [License](#license)\n- [Authors and Contributors](#authors-contributors)\n\n## Installation\n\nThis script shouldn't be installed on an Arch-based system.\nOn `cave`-based system, `bash` is required.\n\n### Install the stable script from Github\n\nYou can download the stable script and make it executable.\nOn non-Arch-based system, you may use `pacman` as script name instead of `pacapt`.\n\n````\n$ sudo wget -O /usr/local/bin/pacapt https://github.com/icy/pacapt/raw/ng/pacapt\n$ sudo chmod 755 /usr/local/bin/pacapt\n$ sudo ln -sv /usr/local/bin/pacapt /usr/local/bin/pacman || true\n````\n\nIf you have `curl` and want some interesting output:\n\n```\n# WARNING: Don't do this on Arch-based system!\n$ curl -Lo /usr/bin/pacman https://github.com/icy/pacapt/raw/ng/pacapt\n$ chmod 755 /usr/bin/pacman\n```\n\nFor non-system package manager, you need to create symbolic links\n\n```\n$ ln -s /usr/local/bin/pacapt /usr/local/bin/pacapt-tlmgr\n$ ln -s /usr/local/bin/pacapt /usr/local/bin/pacapt-conda\n```\n\nYou can also use shorter links:\n\n```\n$ ln -s /usr/local/bin/pacapt /usr/local/bin/p-tlmgr\n$ ln -s /usr/local/bin/pacapt /usr/local/bin/p-conda\n```\n\nnoting the suffix (e.g., `-tlmgr`, `-conda`) is mandatory.\n\n## Usage\n\n### Basic operations\n\nFor system package manager\n\n* Update package database: `pacapt -Sy`, or `pacapt update`\n* Install a package: `pacapt -S foo`, or `pacapt install foo`\n* Search a package: `pacapt -Ss foo`, or `pacapt search foo`\n* Remove a package: `pacapt -R foo`, or `pacapt remove foo`\n* Upgrade system: `pacapt -Su`, or `pacapt upgrade`\n* Remove orphans: `pacapt -Sc`, or `pacapt autoremove foo`\n* Clean up: `pacapt -Scc` or `pacapt -Sccc`, or `pacapt clean`\n\nFor non-system package manager: Similar as above, however you need to call correct script name, e.g.,\n\n* Install a Conda package: `pacapt-conda -S foo`\n* Remove a Conda package: `pacapt-conda -R foo`\n\n### Basic options\n\nSee also https://github.com/icy/pacapt/blob/ng/lib/help.txt.\n\nSome basic command line options\n\n* `-h` (`--help`): Print help message;\n* `-P`: Print list of supported operations;\n* `-V`: Print script version\n\nSome popular options of the original `ArchLinux`'s `pacman` program\nare supported and listed in the table in the next section.\n\nA long list of options and operations can be found from [`ArchLinux`'s wiki](https://wiki.archlinux.org/index.php/Pacman/Rosetta).\n\n### Implemented operations\n\n```\n           Q Qc Qe Qi Qk Ql Qm Qo Qp Qs Qu R Rn Rns Rs S Sc Scc Sccc Sg Si Sii Sl Ss Su Suy Sy U\n      apk  ~     *  *     *     *     *  * *  *   *  * *  *   *    *     *   *  *  *  *   *  * *\n  apt_cyg  *        *     *                *           *                           *         *\n     cave  *        *     *     *  *  *  * *  *   *  * *  *   *    x     *         *  *   *  * x\n    conda  *                    *          *           *  *              *         *      *\n      dnf  ~  *  *  *     *  *  *  *  *  * *           *  *   *    *  *  *   *  *  *  *   *  * *\n     dpkg  ~  *  *  *  *  *     *  *  *  * *  *   *  ~ *  *   *    *  *  *   *     *  *   *  * *\n homebrew  *  *     *     *           *  * *           *  *   *    *     *         *  *   *  *\n macports     *           *     *        * *         ~ *  *   *          *         *  *   *  *\n     opkg  *        *     *     *     *  * *           *                 *   *     *  *      * *\n    pkgng  *        *     *     *  *     * *         * *  *   *          *         *  *   *  *\npkg_tools  ~        *     *     *  *     * *  *   *  ~ *  *   x          *      *  ~  *   *  x\n  portage  *  *     *     *     *        * *         * *  *   *    *     *         *  *   *  *\nsun_tools  *        *     *     *     *    *                                                   *\n    swupd  *        *  *        *     *    *           *  *   *                    *  *   *  *\n   tazpkg  *        *     *     *          *           *  *   *                    *  *   *  * *\n    tlmgr           *  *  *                *           *                 *      *  *      *    *\n     xbps  *     *  *     *     *     *    *           *      *                    *  *   *  *\n      yum  *  *  *  *     *  *  *  *  *  * *         * *  *   *    *  *  *   *     *  *   *  * *\n   zypper  *  *     *     *  *  *  *  *  * *  *   *  * *  *   *    *  *  *   *  *  *  *   *  * *\n```\n\n**Notes:**\n\n* `*`: Implemented;\n* `~`: Implemented. Some options may not supported/implemented;\n* `x`: Operation is not supported by Operating system;\n* The table is generated from source. Please don't update it manually.\n\n## Related projects\n\n* [`batch-pacapt`](https://github.com/Grenadingue/batch-pacapt): An Arch's pacman-like package manager for Windows\n* [`node-pacapt`](https://github.com/Grenadingue/node-pacapt): A node.js wrapper of pacapt + batch-pacapt\n* `pacapt`'s [`nd`](https://github.com/icy/pacapt/tree/nd) branch: A rewrite in Dlang, now deprecated.\n* [`pacapt-py`](https://github.com/rami3l/pacapt-py): A proof of concept in Python to provide pacapt-like experience to Homebrew.\n* [`pacapt-go`](https://github.com/rami3l/pacaptr/tree/go-dev): A more complete rewrite in Go, now lives in the [`go-dev`](https://github.com/rami3l/pacaptr/tree/go-dev) branch of `pacaptr` as legacy code.\n\n## Similar projects\n\n* [`sysget`](https://github.com/emilengler/sysget) is `a front-end for every package manager`, written in `C++`. It provides some basic features to manipulate packages on your system.\n* [`pacaptr`](https://github.com/rami3l/pacaptr) was originally started as a `Rust` port of this project (`pacapt`) (See also #126), now it's growing with their own new features and support.\n\n## Development\n\n### General steps\n\nMake sure you read some instructions in `CONTRIBUTING.md`.\n\nA development script can be compiled from the source code.\n\n````\n$ git clone https://github.com/icy/pacapt.git\n$ cd pacapt\n\n# switch to development branch\n$ git checkout ng\n\n# compile the script\n$ ./bin/compile.sh \u003e pacapt.dev\n\n# check if syntax is good\n$ bash -n pacapt.dev\n\n$ sudo install -m755 ./pacapt.dev /usr/local/bin/pacapt\n````\n\nPlease read the sample `Makefile` for some details.\n\n## License\n\nThis work is released under the terms of Fair license\n(http://opensource.org/licenses/fair).\n\n## AUTHORS. CONTRIBUTORS\n\nMany people have contributed to the project by sending pull requests\nand/or reporting on the ticket system. Here is an incomplete list of\nauthors and contributors.\n\n* 10sr (@10sr)\n* Alexander Dupuy (@dupuy)\n* Anh K. Huynh (@icy)\n* Antony Lee (@anntzer)\n* Alex Lyon (@Arcterus)\n* Álvaro Mondéjar (@mondeja)\n* Carl X. Su (@bcbcarl)\n* Cuong Manh Le (@Gnouc)\n* Daniel YC Lin (@dlintw)\n* Danny George (@dangets)\n* Darshit Shah (@darnir)\n* Dmitry Kudriavtsev (@dkudriavtsev)\n* Eric Crosson (@EricCrosson)\n* Evan Relf (@evanrelf)\n* GijsTimmers (@GijsTimmers)\n* Hà-Dương Nguyễn (@cmpitg)\n* Huy Ngô (@NgoHuy)\n* James Pearson (@xiongchiamiov)\n* Janne Heß (@dasJ)\n* Jiawei Zhou (@4679)\n* Karol Blazewicz\n* Kevin Brubeck (@unhammer)\n* Konrad Borowski (@xfix)\n* Kylie McClain (@somasis)\n* Gen Li (@Rami3L)\n* Valerio Pizzi (@Pival81)\n* Siôn Le Roux (@sinisterstuf)\n* Tabulate (@TabulateJarl8)\n* Thiago Perrotta (@thiagowfx)\n* Vojtech Letal (@letalvoj)\n","funding_links":[],"categories":["System administration","Podcast","Shell","bash"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficy%2Fpacapt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficy%2Fpacapt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficy%2Fpacapt/lists"}