meta_package_manager.managers.xbps module¶
- class meta_package_manager.managers.xbps.XBPS[source]¶
Bases:
PackageManagerX Binary Package System used by Void Linux.
Note
XBPS is split across several sibling binaries:
xbps-queryfor read-only operations,xbps-installfor installs, sync and upgrades, andxbps-removefor uninstalls and cache cleanup.mpmresolves the siblings from the same directory ascli_path.Initialize
cli_errorslist.- name: str = 'Void XBPS'¶
Return package manager’s common name.
Default value is based on class name.
- homepage_url: str | None = 'https://github.com/void-linux/xbps'¶
Home page of the project, only used in documentation for reference.
- logo: str | None = 'voidlinux'¶
Slug of the brand mark standing for this manager in the documentation.
Names an SVG vendored under
docs/assets/managers/, whose provenance and license are recorded indocs/assets/managers/logos.yaml. Inlined at the top of the manager’s page bymeta_package_manager._docs; a manager leaving it unset keeps the page’s default package glyph.Several managers legitimately share one slug, either because they wrap the same upstream (
brewandcask) or because the tool has no mark of its own and its ecosystem’s stands in (aptunder Debian’s swirl,cargounder Rust’s gear). Documentation-only, likehomepage_url: no CLI output reads it.
- platforms: frozenset[Platform] | Group | Platform | Iterable[Platform | Group] = frozenset({Platform(id='almalinux', name='AlmaLinux'), Platform(id='alpine', name='Alpine Linux'), Platform(id='altlinux', name='ALT Linux'), Platform(id='amzn', name='Amazon Linux'), Platform(id='android', name='Android'), Platform(id='arch', name='Arch Linux'), Platform(id='buildroot', name='Buildroot'), Platform(id='cachyos', name='CachyOS'), Platform(id='centos', name='CentOS'), Platform(id='chromeos', name='ChromeOS'), Platform(id='clearlinux', name='Clear Linux OS'), Platform(id='cloudlinux', name='CloudLinux OS'), Platform(id='debian', name='Debian'), Platform(id='endeavouros', name='EndeavourOS'), Platform(id='exherbo', name='Exherbo Linux'), Platform(id='fedora', name='Fedora'), Platform(id='generic_linux', name='Generic Linux'), Platform(id='gentoo', name='Gentoo Linux'), Platform(id='guix', name='Guix System'), Platform(id='ibm_powerkvm', name='IBM PowerKVM'), Platform(id='kali', name='Kali Linux'), Platform(id='kvmibm', name='KVM for IBM z Systems'), Platform(id='linuxmint', name='Linux Mint'), Platform(id='mageia', name='Mageia'), Platform(id='mandriva', name='Mandriva Linux'), Platform(id='manjaro', name='Manjaro Linux'), Platform(id='nixos', name='NixOS'), Platform(id='nobara', name='Nobara'), Platform(id='opensuse', name='openSUSE'), Platform(id='openwrt', name='OpenWrt'), Platform(id='oracle', name='Oracle Linux'), Platform(id='parallels', name='Parallels'), Platform(id='pidora', name='Pidora'), Platform(id='pikaos', name='PikaOS'), Platform(id='raspbian', name='Raspbian'), Platform(id='rhel', name='RedHat Enterprise Linux'), Platform(id='rocky', name='Rocky Linux'), Platform(id='scientific', name='Scientific Linux'), Platform(id='slackware', name='Slackware'), Platform(id='sles', name='SUSE Linux Enterprise Server'), Platform(id='slitaz', name='SliTaz GNU/Linux'), Platform(id='sourcemage', name='Source Mage GNU/Linux'), Platform(id='tuxedo', name='Tuxedo OS'), Platform(id='ubuntu', name='Ubuntu'), Platform(id='ultramarine', name='Ultramarine'), Platform(id='void', name='Void Linux'), Platform(id='wsl1', name='Windows Subsystem for Linux v1'), Platform(id='wsl2', name='Windows Subsystem for Linux v2'), Platform(id='xenserver', name='XenServer')})¶
List of platforms supported by the manager.
Allows for a mishmash of platforms and groups of platforms. Will be normalized into a
frozensetofPlatforminstances at instantiation.
- default_sudo: bool = True¶
Built-in escalation default, used when
sudoisNone.Falseon the base: most managers install into user-writable trees and never need root. The system package managers whose privileged operations require root (apt,dnf,pacman,zypper, …) set this toTrueso theirbuild_cli(..., sudo=True)operations escalate out of the box, while staying switchable off throughsudo(--no-sudoor config) for rootless setups.
- requirement: str | None = '>=0.59'¶
Version 0.59 is the first to ship the long-form options (
--list-pkgs,--repository,--search,--update,--dry-run,--sync,--yes,--clean-cache,--remove-orphans) that the methods below depend on.
- cli_names: tuple[str, ...] = ('xbps-install',)¶
Use
xbps-installas the canonical entry point.The other XBPS binaries (
xbps-query,xbps-remove) are looked up in the same directory asxbps-installviacli_path.
- property installed: Iterator[Package]¶
Fetch installed packages.
$ xbps-query --list-pkgs ii base-files-0.144_1 Void Linux base system files ii cmark-gfm-0.29.0.gfm.13_1 CommonMark parsing and rendering library ii curl-8.5.0_1 Command line tool for transferring data
- property outdated: Iterator[Package]¶
Fetch outdated packages.
Caution
Reads from the local repository cache. Run
sync()first to refresh the index.$ xbps-install --update --dry-run firefox-120.0_1 update x86_64 https://repo-default.voidlinux.org/current 45MB 12MB python3-3.11.6_2 update x86_64 https://repo-default.voidlinux.org/current 30MB 8MB
- property orphans: Iterator[Package]¶
Fetch packages installed as dependencies that nothing requires anymore.
$ xbps-query --list-orphans libglvnd-1.7.0_1 orc-0.4.34_1
- search(query, extended, exact)[source]¶
Fetch matching packages.
Caution
xbps-query --searchmatches againstpkgverandshort_descproperties at the same time. Extended and exact matching are not supported, so the best subset of results is returned and refined later bymeta_package_manager.manager.PackageManager.refiltered_search().$ xbps-query --repository --search firefox [-] firefox-120.0_1 Standalone web browser from mozilla.org [*] firefox-esr-115.5.0_1 Extended support release of Firefox
- install(package_id, version=None)[source]¶
Install one package.
$ sudo xbps-install --yes firefox
- Return type:
- upgrade_all_cli()[source]¶
Generates the CLI to upgrade all packages.
$ sudo xbps-install --sync --update --yes
- upgrade_one_cli(package_id, version=None)[source]¶
Generates the CLI to upgrade one package.
$ sudo xbps-install --update --yes firefox
- remove(package_id)[source]¶
Remove one package and one only.
$ sudo xbps-remove --yes firefox
- Return type:
- id: str = 'xbps'¶
Package manager’s ID.
Derived by defaults from the lower-cased class name in which underscores
_are replaced by dashes-.This ID must be unique among all package manager definitions and lower-case, as they’re used as feature flags for the mpm CLI.
- remove_orphan(package_id)[source]¶
Remove one package, recursively dropping orphaned dependencies.
$ sudo xbps-remove --recursive --yes firefox
- Return type:
- virtual: bool = False¶
Should we expose the package manager to the user?
Virtual package manager are just skeleton classes used to factorize code among managers of the same family.
- sync()[source]¶
Synchronize remote repository indexes.
$ sudo xbps-install --sync --yes
- Return type:
- cleanup_orphan()[source]¶
Remove installed packages no longer required by any other, sparing the cache.
$ sudo xbps-remove --remove-orphans --yes
- Return type: