Skip to content

weblate/apx

 
 

Repository files navigation

Apx

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

Apx is a package manager with support for multiple sources,
allowing you to install packages in a managed container.

Usage:
  apx [command]

Managed Container Commands
  autoremove  Remove all unused packages automatically
  clean       Clean the apx package manager cache
  enter       Enter a shell in the managed container
  export      Export/Recreate a program's desktop entry from a managed container
  init        Initialize a managed container
  install     Install packages inside a managed container.
  list        List installed packages.
  purge       Purge packages inside a managed container
  remove      Remove packages inside a managed container.
  run         Run a program inside a managed container.
  search      Search for packages in a managed container.
  show        Show details about a package
  unexport    Unexport/Remove a program's desktop entry from a managed container
  update      Update the list of available packages
  upgrade     Upgrade the system by installing/upgrading available packages.

Additional Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command

Flags:
  -v, --verbose       show more detailed output
      --apt           Install packages from the Ubuntu repository.
      --aur           Install packages from the AUR (Arch User Repository).
      --dnf           Install packages from the Fedora's DNF (Dandified YUM) repository.
      --apk           Install packages from the Alpine repository.
      --zypper        Install packages from the OpenSUSE repository.
      --xbps          Install packages from the Void (Linux) repository.
      --nix           Install packages from the Nixpkgs (Nix packages) repository.
  -n, --name string   Apply to custom container with this name.
  -h, --help          help for apx
      --version       version for apx

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

Documentation and Guides

Dependencies

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

Generating man pages for translations

  • Copy the en.yml file under the locales directory, rename it to your language code then translate the strings.
  • Once the translation is complete, perform go build and execute this command ./apx man > man/<language_code>/man1/apx.1. If the man page gets generated without any errors, open a PR for it here.

Instructions for using Apx in other distributions

Apx has been designed as a distro-agnostic tool, allowing it to work with any distribution. (Note: The Nix integration in Apx requires SystemD)

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 or docker installed.
  • You must have make installed for the installation.

Procedure

  • Clone apx's repository using git and enter it using cd:-
git clone --recursive https://github.com/Vanilla-OS/apx.git
cd apx
  • Build apx using make:-
make build
  • Install apx using make:-
sudo make install
  • Install the apx manpages using make:-
sudo make install-manpages

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

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

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

Or into a separate root:-

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

About

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.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go 98.9%
  • Makefile 1.1%