A database of known packages and package sources for Crater
A source can be defined as shown:
("xbps" (:COMMAND "xbps-query") ; Command to test whether xbps is available
(:SEARCH "xbps-query -Rs") ; Command to search for packages
(:LIST "xbps-query -s") ; Command to list installed packages
(:INSTALL "sudo xbps-install -S") ; Command to install packages
(:REMOVE "sudo xbps-remove -R") ; Command to remove packages
(:UPDATE "sudo xbps-install -Su")) ; Command to update packages
An external source needs to be explicitly marked as "external":
("flatpak" (:COMMAND "flatpak")
:EXTERNAL ; Marks the source as external
(:SEARCH "flatpak search")
(:LIST "flatpak list")
(:INSTALL "sudo flatpak install")
(:REMOVE "sudo flatpak uninstall")
(:UPDATE "sudo flatpak update"))
PS: External sources are only used when explicitly mentioned against a package, while the regular sources are automatically used unless specified not to be used.
The following platforms are directly supported along with their package managers:
- Adélie Linux (Coming soon)
- AlmaLinux (Coming soon)
- Alpine Linux (Coming soon)
- ALT Linux (Coming soon)
- Amazon Linux (Coming soon)
- pacman and paru for Arch Linux
- CentOS (Coming soon)
- apt for Debian, Ubuntu, Linux Mint and derivatives
- dnf for Fedora and derivatives
- KaOS (Coming soon)
- Homebrew and Cask for macOS
- Mageia (Coming soon)
- OpenMandriva (Coming soon)
- OpenSUSE (Coming soon)
- OpenWrt (Coming soon)
- Oracle Linux (Coming soon)
- PCLinuxOS (Coming soon)
- Red Hat Enterprise Linux (Coming soon)
- Rocky Linux (Coming soon)
- Slackware (Coming soon)
- Solus (Coming soon)
- xbps for Void Linux
There are also the following platform-independent sources:
Entries in the file could look as shown:
(
;; "fd" is available on 'apt' as "fd-find", as "fd" on other known sources
("fd" ((:APT "fd-find")))
;; "steam" is available through 'flatpak' as "com.valvesoftware.Steam"
("steam" ((:FLATPAK "com.valvesoftware.Steam"))
("steam-powered")) ; also known as "steam-powered"
;; "android-tools" is available with different names on 'apt' and 'cask'
("android-tools" ((:APT "android-platform-system-core")
(:CASK "android-platform-tools")))
;; "pipewire" is a collection of different packages across 'apt', 'dnf', 'pacman', and 'xbps',
;; but not available on 'flatpak', 'snap', 'brew' and 'cask'
("pipewire" ((:APT "pipewire" "pipewire-pulse" "pipewire-alsa")
(:DNF "pipewire" "pipewire-alsa")
(:PACMAN "pipewire" "pipewire-pulse" "pipewire-alsa")
(:XBPS "pipewire" "alsa-pipewire" "libspa-bluetooth")
(:BREW) ; specifies that the package isn't available on 'brew'
(:CASK))) ; specifies that the package isn't available on 'cask'
("imaginary-package" nil ; does not have different names across sources
nil ; does not have other known names either
("echo \"These are pre-scripts\"") ; needs pre-installation setup
("echo \"These are post-scripts\"")) ; needs post-installation setup
)