需通过包管理器、kubic仓库或静态二进制三种方式安装buildah,并配置user_namespaces、runc等运行时依赖;执行buildah version与buildah from scratch验证可用性。

如果您希望在Linux系统中使用Buildah构建容器镜像,但系统尚未安装该工具,则需通过对应发行版的包管理器完成安装,并配置必要的运行时依赖。以下是完成Buildah安装与基础可用性验证的具体步骤:
一、通过系统包管理器安装Buildah
Buildah已纳入主流Linux发行版的官方仓库,可直接使用原生包管理器安装,无需编译源码。该方式安装的版本经过发行版测试,兼容性与安全性有保障。
1、对于基于RHEL/CentOS/Rocky Linux/AlmaLinux 8或更新版本的系统,执行:
sudo dnf install -y buildah
2、对于RHEL/CentOS 7系统,需先启用EPEL与Extras仓库:
sudo yum install -y epel-release && sudo yum install -y buildah
3、对于Debian 11(bullseye)或更新版本及Ubuntu 22.04 LTS及以上系统:
sudo apt update && sudo apt install -y buildah
4、对于openSUSE Leap 15.4或Tumbleweed:
sudo zypper install -y buildah
二、从上游Kubic仓库安装最新稳定版
当系统默认仓库提供的Buildah版本过旧(如低于1.30),而您需要特定新特性(如OCIv2支持或改进的多阶段构建逻辑)时,可添加openSUSE Kubic官方仓库获取更新的预编译二进制包。
1、在RHEL/CentOS/Rocky Linux上添加Kubic仓库:
sudo dnf -y install 'dnf-command(copr)' && sudo dnf copr enable -y @rhcontainerbot/buildah
2、刷新元数据并安装:
sudo dnf update -y && sudo dnf install -y buildah
3、在openSUSE系统上启用Kubic主仓库:
sudo zypper ar -f https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/openSUSE_Tumbleweed/devel:kubic:libcontainers:stable.repo && sudo zypper refresh && sudo zypper install -y buildah
三、使用静态二进制文件手动部署
适用于无root权限、容器化环境(如CI流水线临时节点)或极简系统(如distroless基础镜像),可跳过包管理器,直接下载官方签名的静态可执行文件。
1、创建临时工作目录并进入:
mkdir -p ~/buildah-bin && cd ~/buildah-bin
2、下载最新release的静态二进制(以v1.36.0为例,实际请替换为GitHub Releases页面显示的最新版本号):
curl -L https://www.php.cn/link/69d0353e88f579cded20ed0c14345371/download/v1.36.0/buildah-static.tar.gz | tar xz
3、赋予执行权限并将二进制文件复制至PATH路径:
chmod +x buildah && sudo cp buildah /usr/local/bin/
4、验证签名完整性(需提前导入GPG公钥):
curl -L https://www.php.cn/link/69d0353e88f579cded20ed0c14345371/download/v1.36.0/buildah-static.tar.gz.asc | gpg --dearmor /usr/share/pki/rpm-gpg/RPM-GPG-KEY-buildah && gpg --verify buildah-static.tar.gz.asc buildah-static.tar.gz
四、配置运行时依赖与非特权支持
Buildah默认以非特权模式运行,但仍需确保底层内核功能(如user_namespaces、overlayfs)已启用,并安装配套工具(如runc、crun、skopeo)以支持完整镜像生命周期操作。
1、检查user namespace是否启用:
grep CONFIG_USER_NS /boot/config-$(uname -r)
2、若输出为"CONFIG_USER_NS=y",则继续;否则需启用内核参数:
echo 'user.max_user_namespaces=15000' | sudo tee /etc/sysctl.d/99-buildah.conf && sudo sysctl -p /etc/sysctl.d/99-buildah.conf
3、安装最小运行时依赖(runc作为默认OCI运行时):
sudo apt install -y runc(Debian/Ubuntu)
sudo dnf install -y runc(RHEL/CentOS/Rocky)
4、验证Buildah基础功能:
buildah version && buildah from scratch










