Skip to content
  • bpkg v3 badge v4 badge#


    Our universal package manager.

    • Language:
    • Size:27.63 KB
    • GUI:
    • Comes with blendOS:

    Config file location
    📁 ~
    └── 📁 .config
        └── ⭐ bpkg.yaml
    

    Download Source Code

What is bpkg?

bpkg is our package management utility that allows you to use the package managers of all your containers. This allows you to quickly install packages from any repo.

Installation#

Unzip the file into any folder (open it with your archive manager), then open your terminal.

cd to the folder you extracted it to, then do chmod +x install.sh && ./install.sh.

Reference#

bpkg.yaml#

bpkg will generate a config file at first run.

The config file will need to be updated every time you add or delete a container by running bpkg overwrite-config in your terminal.

Its contents will look something like this based on your containers:

Obtaining the container list

The container list is obtained by using the following commands:

podman ps -a --no-trunc --size --format '{{.Names}}'
podman ps -a --no-trunc --size --format '{{.Image}}'

The YAML code is generated from the output.

bpkg.yaml
# bpkg config file
# Auto-generated by bpkg 0.2.0pre
# Example config file with a bunch of containers

# This segment is autogenerated

containers: # (4)!
  - name: ar # (1)!
    distro: arch # (2)!
  - name: ub
    distro: ubuntu-22.04
  - name: fe
    distro: fedora-38
  - name: alma
    distro: almalinux-9
  - name: crystal
    distro: crystal-linux
  - name: deb
    distro: debian
  - name: kali
    distro: kali-linux
  - name: neurodeb
    distro: neurodebian-bookworm
  - name: rocky
    distro: rocky-linux
  - name: ub23
    distro: ubuntu-23.04

# end autogenerated segment

update_flatpak: true # (3)!
  1. containers.name

    Type: string

    Container's name, set by the user

  2. containers.distro

    Type: string

    Container's distro

  3. update_flatpak

    Type: boolean

    Toggles whether or not Flatpak is checked during update operations.

  4. containers

    Type: object array

    Container list

Configuration#

Changes made here will be overwritten whenever you run bpkg overwrite-config!

Changing Priority#

To change the priority, change the order of the entries. In the reference file, the Arch container will be checked first, followed by Ubuntu 22.04, Fedora 38, etc.

If we change the config file so it starts like this:

containers:
  - name: ub
    distro: ubuntu-22.04
  - name: ar
    distro: arch
...

then the Ubuntu 22.04 container will be checked first.

Excluding Containers#

To exclude a container from bpkg, remove it from the config.

If we remove Arch so the config file looks like this:

containers:
  - name: ub
    distro: ubuntu-22.04
  - name: fe
    distro: fedora-38
...

then the Arch container will not be used by bpkg.

CLI#

Help Page#

bpkg

Shows a help page.

Install a package#

bpkg install <package>

This will search for the package in your installed distros and install it from the first package manager it finds by your order of preference in bpkg.yaml. Use user install <container> <package> to install to a specific container.

Remove a package#

bpkg remove <package>

This will remove a package from the first container in bpkg.yaml the package is found in. Use user remove <container> <package> to remove from a specific container.

Update packages#

bpkg update

This will update all the packages in all your containers. If update_flatpak is set to true in the config, this will also update your Flatpaks.

bpkg search <package>

You can search for a package in all of your containers.

Container list#

bpkg list-containers

Lists all containers on your system (even if they aren't in the config).

Config Regeneration#

Run this after creating or deleting containers to ensure your config file is always up-to-date!

bpkg overwrite-config

This will pull all your containers and generate a new config file, overwriting your current one.

YOU WILL LOSE ALL YOUR CHANGES!

Container List#

You can view the container list here:

View Container List