Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vanilla-os/apx

Apx is the Vanilla OS package manager. It’s meant to be simple to use, but also powerful with support to installing packages from multiple sources without altering the root filesystem.
https://github.com/vanilla-os/apx

apx command-line distrobox hacktoberfest linux package-manager vanillaos

Last synced: 1 day ago
JSON representation

Apx is the Vanilla OS package manager. It’s meant to be simple to use, but also powerful with support to installing packages from multiple sources without altering the root filesystem.

Awesome Lists containing this project

README

        



Apx

[![Translation Status][weblate-image]][weblate-url]

[weblate-url]: https://hosted.weblate.org/engage/vanilla-os/
[weblate-image]: https://hosted.weblate.org/widgets/vanilla-os/-/apx/svg-badge.svg
[repology-url]: https://repology.org/project/apx-package-manager/versions
[repology-image]: https://repology.org/badge/vertical-allrepos/apx-package-manager.svg

Apx (/à·peks/) is the default package manager in Vanilla OS. It is a wrapper around multiple package managers to install packages and run commands inside a managed container.


Special thanks to distrobox for making this possible.


## Help

```bash
Apx is a package manager with support for multiple sources, allowing you to install packages in subsystems.

Usage:
apx [command]

Available Commands:
[subsystem] Work with the specified subsystem, accessing the package manager and environment.
completion Generate the autocompletion script for the specified shell
help Help about any command
pkgmanagers Work with the package managers that are available in apx.
stacks Work with the stacks that are available in apx.
subsystems Work with the subsystems that are available in apx.

Flags:
-h, --help help for apx
-v, --version version for apx

Use "apx [command] --help" for more information about a command.
```

## Documentation and Guides

### Documentation

The official **documentation and manpage** for `apx` are available at .

## Dependencies

To add new dependencies, use `go get` as usual, then run `go mod tidy` and `go mod vendor` before committing the code.

## Translations

Contribute translations for the manpage and help page in [Weblate](https://hosted.weblate.org/projects/vanilla-os/apx).

### Generating man pages for translations

Once the translation is complete in Weblate and the changes committed, clone the repository using `git` and perform `go build`, create a directory using the `mkdir man/ && mkdir man//man1` command, and execute this command `LANG= ./apx man > man//man1/apx.1`. Open a PR for the generated manpage here.

## Instructions for using Apx in other distributions

Apx has been designed as a distro-agnostic tool, allowing it to work with any distribution.

### Prerequisites

- You must have `go` installed from your distribution's native repositories to compile `apx`.
- You must have `git` installed to clone the repository.
- You must have either `podman` (suggested) or `docker` installed.
- You must have `make` installed for the installation.

### Procedure

Clone apx's repository using `git` and enter it using `cd`:-

``` bash
git clone --recursive https://github.com/Vanilla-OS/apx.git
cd apx
```

Build apx using `make`:-

``` bash
make build
```

Install apx using `make`:-

``` bash
sudo make install
```

Install the apx manpages using `make`:-

``` bash
sudo make install-manpages
```

Uninstall apx using `make`:-

```bash
make uninstall
```

Uninstall apx man pages using `make`:-

```bash
make uninstall-manpages
```

### Installing apx in a custom destination

The prefix or installation destination can be changed using `PREFIX` and `DESTDIR`.

To install apx into `~/.local` for example:-

``` bash
make install PREFIX=$HOME/.local
make install-manpages PREFIX=$HOME/.local
```

Or into a separate root:-

``` bash
make install DESTDIR=$HOME/altroot
make install-manpages DESTDIR=$HOME/altroot
```

## Community Packages

Apx is packaged in various sources by our community, if you aren't comfortable with building `apx` manually you can install a package listed below.

(**Note:** These packages are unofficial if there are any issues with packaging report them to the respective maintainers, if there are any issues with apx functionalities report them here.)

[![Packaging status][repology-image]][repology-url]