Advanced Usage - Void Linux Handbook (original) (raw)

  1. 1. About
    1. 1.1. History
    2. 1.2. About This Handbook
    3. 1.3. InfraDocs
  2. 2. Installation
    1. 2.1. Live Installers
      1. 2.1.1. Prepare Installation Media
        1. 2.1.2. Partitioning Notes
        2. 2.1.3. Installation Guide
    2. 2.2. Advanced Installation Guides
      1. 2.2.1. Installation via chroot (x86/x86_64/aarch64)
        1. 2.2.2. Full Disk Encryption
        2. 2.2.3. Root on ZFS
        3. 2.2.4. ARM Devices
          1. 2.2.4.1. Apple Silicon (Asahi)
            1. 2.2.4.2. Lenovo Thinkpad X13s
            2. 2.2.4.3. Pinebook Pro
            3. 2.2.4.4. Raspberry Pi
    3. 2.3. musl
  3. 3. Configuration
    1. 3.1. Package Documentation
      1. 3.1.1. Manual Pages
    2. 3.2. Firmware
    3. 3.3. Locales and Translations
    4. 3.4. Users and Groups
    5. 3.5. Services and Daemons - runit
      1. 3.5.1. Per-User Services
        1. 3.5.2. Logging
    6. 3.6. rc.conf, rc.local and rc.shutdown
    7. 3.7. Cron
    8. 3.8. Solid State Drives
    9. 3.9. Security
      1. 3.9.1. AppArmor
    10. 3.10. Date and Time
    11. 3.11. Kernel
    12. 3.12. Power Management
    13. 3.13. Network
      1. 3.13.1. Firewalls
      2. 3.13.2. wpa_supplicant
      3. 3.13.3. IWD
      4. 3.13.4. NetworkManager
      5. 3.13.5. ConnMan
    14. 3.14. Network Filesystems
    15. 3.15. Session and Seat Management
    16. 3.16. Graphical Session
      1. 3.16.1. Graphics Drivers
        1. 3.16.1.1. AMD or ATI
          1. 3.16.1.2. Intel
          2. 3.16.1.3. NVIDIA
          3. 3.16.1.4. NVIDIA Optimus
      2. 3.16.2. Xorg
      3. 3.16.3. Wayland
      4. 3.16.4. Fonts
      5. 3.16.5. Icons
      6. 3.16.6. XDG Desktop Portals
      7. 3.16.7. GNOME
      8. 3.16.8. KDE
    17. 3.17. Multimedia
      1. 3.17.1. ALSA
      2. 3.17.2. PipeWire
      3. 3.17.3. PulseAudio
    18. 3.18. Bluetooth
    19. 3.19. TeX Live
    20. 3.20. External Applications
    21. 3.21. Printing
    22. 3.22. Containers and Virtual Machines
      1. 3.22.1. Chroots and Containers
      2. 3.22.2. libvirt
      3. 3.22.3. LXC
    23. 3.23. OpenPGP
    24. 3.24. PHP
  4. 4. XBPS Package Manager
    1. 4.1. Advanced Usage
    2. 4.2. Repositories
      1. 4.2.1. Mirrors
          1. 4.2.1.1. Changing Mirrors
            1. 4.2.1.2. Using Tor Mirrors
        1. 4.2.2. Restricted Packages
        2. 4.2.3. Custom Repositories
        3. 4.2.4. Signing Repositories
    3. 4.3. Troubleshooting XBPS
      1. 4.3.1. Common Issues
        1. 4.3.2. Static XBPS
  5. 5. Contributing
    1. 5.1. Contributing To void-docs

Advanced Usage

Downgrading

XBPS allows you to downgrade a package to a specific package version.

Via xdowngrade

The easiest way to downgrade is to use xdowngrade from the xtools package, specifying the package version to which you wish to downgrade:

# xdowngrade /var/cache/xbps/pkg-1.0_1.xbps

Via XBPS

XBPS can be used to downgrade to a package version that is no longer available in the repository index.

If the package version had been installed previously, it will be available in/var/cache/xbps/. If not, it will need to be obtained from elsewhere; for the purposes of this example, it will be assumed that the package version has been added to /var/cache/xbps/.

First add the package version to your local repository:

# xbps-rindex -a /var/cache/xbps/pkg-1.0_1.xbps

Then downgrade with xbps-install:

# xbps-install -R /var/cache/xbps/ -f pkg-1.0_1

The -f flag is necessary to force downgrade/re-installation of an already installed package.

Holding packages

To prevent a package from being updated during a system update, usexbps-pkgdb(1):

# xbps-pkgdb -m hold <package>

The hold can be removed with:

# xbps-pkgdb -m unhold <package>

Repository-locking packages

If you've used xbps-src to build and install a package from a customized template, or with custom build options, you may wish to prevent system updates from replacing that package with a non-customized version. To ensure that a package is only updated from the same repository used to install it, you can_repolock_ it via xbps-pkgdb(1):

# xbps-pkgdb -m repolock <package>

To remove the repolock:

# xbps-pkgdb -m repounlock <package>

Ignoring Packages

Sometimes you may wish to remove a package whose functionality is being provided by another package, but will be unable to do so due to dependency issues. For example, you may wish to use doas(1) instead of sudo(8), but will be unable to remove thesudo package due to it being a dependency of the base-system package. To remove it, you will need to ignore the sudo package.

To ignore a package, add an appropriate ignorepkg entry in anxbps.d(5) configuration file. For example:

ignorepkg=sudo

You will then be able to remove the sudo package usingxbps-remove(1).

Virtual Packages

Virtual packages can be created withxbps.d(5) virtualpkg entries. Any request to the virtual package will be resolved to the real package. For example, to create a linux virtual package which will resolve to thelinux5.6 package, create an xbps.d configuration file with the contents:

virtualpkg=linux:linux5.6