2017-12-05 05:31:23 +08:00
|
|
|
# Installation Instructions
|
|
|
|
|
2018-01-03 01:48:35 +08:00
|
|
|
## System Requirements
|
|
|
|
|
|
|
|
### Kernel Version Requirements
|
|
|
|
To run Buildah on Red Hat Enterprise Linux or CentOS, version 7.4 or higher is required.
|
|
|
|
On other Linux distributions Buildah requires a kernel version of 4.0 or
|
|
|
|
higher in order to support the OverlayFS filesystem. The kernel version can be checked
|
|
|
|
with the 'uname -a' command.
|
|
|
|
|
|
|
|
### runc Requirement
|
|
|
|
|
|
|
|
Buildah uses `runc` to run commands when `buildah run` is used, or when `buildah build-using-dockerfile`
|
|
|
|
encounters a `RUN` instruction, so you'll also need to build and install a compatible version of
|
|
|
|
[runc](https://github.com/opencontainers/runc) for Buildah to call for those cases. If Buildah is installed
|
|
|
|
via a package manager such as yum, dnf or apt-get, runc will be installed as part of that process.
|
|
|
|
|
|
|
|
## Package Installation
|
|
|
|
|
|
|
|
Buildah is available on several software repositories and can be installed via a package manager such
|
|
|
|
as yum, dnf or apt-get on a number of Linux distributions.
|
|
|
|
|
|
|
|
## Installation from GitHub
|
|
|
|
|
|
|
|
Prior to installing Buildah, install the following packages on your Linux distro:
|
2017-12-05 05:31:23 +08:00
|
|
|
* make
|
|
|
|
* golang (Requires version 1.8.1 or higher.)
|
|
|
|
* bats
|
|
|
|
* btrfs-progs-devel
|
|
|
|
* bzip2
|
|
|
|
* device-mapper-devel
|
|
|
|
* git
|
|
|
|
* go-md2man
|
|
|
|
* gpgme-devel
|
|
|
|
* glib2-devel
|
|
|
|
* libassuan-devel
|
2018-02-23 01:46:09 +08:00
|
|
|
* libseccomp-devel
|
2017-12-05 05:31:23 +08:00
|
|
|
* ostree-devel
|
|
|
|
* runc (Requires version 1.0 RC4 or higher.)
|
|
|
|
* skopeo-containers
|
|
|
|
|
2018-01-03 01:48:35 +08:00
|
|
|
### Fedora
|
2017-12-12 00:13:17 +08:00
|
|
|
|
2017-12-05 05:31:23 +08:00
|
|
|
In Fedora, you can use this command:
|
|
|
|
|
|
|
|
```
|
|
|
|
dnf -y install \
|
|
|
|
make \
|
|
|
|
golang \
|
|
|
|
bats \
|
|
|
|
btrfs-progs-devel \
|
|
|
|
device-mapper-devel \
|
|
|
|
glib2-devel \
|
|
|
|
gpgme-devel \
|
|
|
|
libassuan-devel \
|
2018-02-23 01:46:09 +08:00
|
|
|
libseccomp-devel \
|
2017-12-05 05:31:23 +08:00
|
|
|
ostree-devel \
|
|
|
|
git \
|
|
|
|
bzip2 \
|
|
|
|
go-md2man \
|
|
|
|
runc \
|
|
|
|
skopeo-containers
|
|
|
|
```
|
|
|
|
|
|
|
|
Then to install Buildah on Fedora follow the steps in this example:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
mkdir ~/buildah
|
|
|
|
cd ~/buildah
|
|
|
|
export GOPATH=`pwd`
|
|
|
|
git clone https://github.com/projectatomic/buildah ./src/github.com/projectatomic/buildah
|
|
|
|
cd ./src/github.com/projectatomic/buildah
|
|
|
|
make
|
2017-12-12 00:22:17 +08:00
|
|
|
sudo make install
|
2017-12-05 05:31:23 +08:00
|
|
|
buildah --help
|
|
|
|
```
|
|
|
|
|
2018-01-03 01:48:35 +08:00
|
|
|
### RHEL, CentOS
|
2017-12-12 00:13:17 +08:00
|
|
|
|
|
|
|
In RHEL and CentOS 7, ensure that you are subscribed to `rhel-7-server-rpms`,
|
2017-12-05 05:31:23 +08:00
|
|
|
`rhel-7-server-extras-rpms`, and `rhel-7-server-optional-rpms`, then
|
|
|
|
run this command:
|
|
|
|
|
|
|
|
```
|
|
|
|
yum -y install \
|
|
|
|
make \
|
|
|
|
golang \
|
|
|
|
bats \
|
|
|
|
btrfs-progs-devel \
|
|
|
|
device-mapper-devel \
|
|
|
|
glib2-devel \
|
|
|
|
gpgme-devel \
|
|
|
|
libassuan-devel \
|
2018-02-23 01:46:09 +08:00
|
|
|
libseccomp-devel \
|
2017-12-05 05:31:23 +08:00
|
|
|
ostree-devel \
|
|
|
|
git \
|
|
|
|
bzip2 \
|
|
|
|
go-md2man \
|
|
|
|
runc \
|
|
|
|
skopeo-containers
|
|
|
|
```
|
|
|
|
|
2017-12-12 00:13:17 +08:00
|
|
|
The build steps for Buildah on RHEL or CentOS are the same as Fedora, above.
|
|
|
|
|
2018-01-03 01:48:35 +08:00
|
|
|
### Ubuntu
|
2017-12-05 05:31:23 +08:00
|
|
|
|
2018-01-03 01:48:35 +08:00
|
|
|
In Ubuntu zesty and xenial, you can use these commands:
|
2017-12-05 05:31:23 +08:00
|
|
|
|
|
|
|
```
|
|
|
|
apt-get -y install software-properties-common
|
|
|
|
add-apt-repository -y ppa:alexlarsson/flatpak
|
|
|
|
add-apt-repository -y ppa:gophers/archive
|
|
|
|
apt-add-repository -y ppa:projectatomic/ppa
|
|
|
|
apt-get -y -qq update
|
|
|
|
apt-get -y install bats btrfs-tools git libapparmor-dev libdevmapper-dev libglib2.0-dev libgpgme11-dev libostree-dev libseccomp-dev libselinux1-dev skopeo-containers go-md2man
|
|
|
|
apt-get -y install golang-1.8
|
|
|
|
```
|
|
|
|
Then to install Buildah on Ubuntu follow the steps in this example:
|
|
|
|
|
|
|
|
```
|
|
|
|
mkdir ~/buildah
|
|
|
|
cd ~/buildah
|
|
|
|
export GOPATH=`pwd`
|
|
|
|
git clone https://github.com/projectatomic/buildah ./src/github.com/projectatomic/buildah
|
|
|
|
cd ./src/github.com/projectatomic/buildah
|
|
|
|
PATH=/usr/lib/go-1.8/bin:$PATH make runc all TAGS="apparmor seccomp"
|
2017-12-12 02:25:42 +08:00
|
|
|
sudo make install install.runc
|
2017-12-05 05:31:23 +08:00
|
|
|
buildah --help
|
|
|
|
```
|
2017-12-12 00:20:47 +08:00
|
|
|
|
2018-01-03 01:48:35 +08:00
|
|
|
### Debian
|
2017-12-12 00:20:47 +08:00
|
|
|
|
|
|
|
To install the required dependencies, you can use those commands, tested under Debian GNU/Linux amd64 9.3 (stretch):
|
|
|
|
|
|
|
|
```
|
|
|
|
gpg --recv-keys 0x018BA5AD9DF57A4448F0E6CF8BECF1637AD8C79D
|
|
|
|
gpg --export 0x018BA5AD9DF57A4448F0E6CF8BECF1637AD8C79D >> /usr/share/keyrings/projectatomic-ppa.gpg
|
|
|
|
echo 'deb [signed-by=/usr/share/keyrings/projectatomic-ppa.gpg] http://ppa.launchpad.net/projectatomic/ppa/ubuntu zesty main' > /etc/apt/sources.list.d/projectatomic-ppa.list
|
|
|
|
apt update
|
2017-12-12 03:26:34 +08:00
|
|
|
apt -y install -t stretch-backports libostree-dev golang
|
|
|
|
apt -y install bats btrfs-tools git libapparmor-dev libdevmapper-dev libglib2.0-dev libgpgme11-dev libseccomp-dev libselinux1-dev skopeo-containers go-md2man
|
2017-12-12 00:20:47 +08:00
|
|
|
```
|
|
|
|
|
|
|
|
The build steps on Debian are otherwise the same as Ubuntu, above.
|