forked from containers/skopeo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Ubuntu/Debian install instructions
Signed-off-by: Sascha Grunert <[email protected]>
- Loading branch information
1 parent
71c382c
commit bae3378
Showing
2 changed files
with
161 additions
and
82 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
# Installing from packages | ||
|
||
`skopeo` may already be packaged in your distribution, for example on | ||
RHEL/CentOS ≥ 8 or Fedora you can install it using: | ||
|
||
```sh | ||
$ sudo dnf install skopeo | ||
``` | ||
|
||
on RHEL/CentOS ≤ 7.x: | ||
|
||
```sh | ||
$ sudo yum install skopeo | ||
``` | ||
|
||
for openSUSE: | ||
|
||
```sh | ||
$ sudo zypper install skopeo | ||
``` | ||
|
||
on alpine: | ||
|
||
```sh | ||
$ sudo apk add skopeo | ||
``` | ||
|
||
Debian (10 and newer including Raspbian) and Ubuntu (18.04 and newer): Packages | ||
are available via the [Kubic][0] project repositories: | ||
|
||
[0]: https://build.opensuse.org/project/show/devel:kubic:libcontainers:stable | ||
|
||
```bash | ||
# Debian Unstable/Sid: | ||
$ echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_Unstable/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list | ||
$ wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/Debian_Unstable/Release.key -O- | sudo apt-key add - | ||
``` | ||
|
||
```bash | ||
# Debian Testing: | ||
$ echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_Testing/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list | ||
$ wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/Debian_Testing/Release.key -O- | sudo apt-key add - | ||
``` | ||
|
||
```bash | ||
# Debian 10: | ||
$ echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_10/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list | ||
$ wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/Debian_10/Release.key -O- | sudo apt-key add - | ||
``` | ||
|
||
```bash | ||
# Raspbian 10: | ||
$ echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Raspbian_10/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list | ||
$ wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/Raspbian_10/Release.key -O- | sudo apt-key add - | ||
``` | ||
|
||
```bash | ||
# Ubuntu (18.04, 19.04 and 19.10): | ||
$ . /etc/os-release | ||
$ sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" | ||
$ wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O- | sudo apt-key add - | ||
``` | ||
|
||
```bash | ||
$ sudo apt-get update -qq | ||
$ sudo apt-get install skopeo | ||
``` | ||
|
||
Otherwise, read on for building and installing it from source: | ||
|
||
To build the `skopeo` binary you need at least Go 1.12. | ||
|
||
There are two ways to build skopeo: in a container, or locally without a | ||
container. Choose the one which better matches your needs and environment. | ||
|
||
### Building without a container | ||
|
||
Building without a container requires a bit more manual work and setup in your | ||
environment, but it is more flexible: | ||
|
||
- It should work in more environments (e.g. for native macOS builds) | ||
- It does not require root privileges (after dependencies are installed) | ||
- It is faster, therefore more convenient for developing `skopeo`. | ||
|
||
Install the necessary dependencies: | ||
|
||
```bash | ||
# Fedora: | ||
$ sudo dnf install gpgme-devel libassuan-devel btrfs-progs-devel device-mapper-devel | ||
``` | ||
|
||
```bash | ||
# Ubuntu (`libbtrfs-dev` requires Ubuntu 18.10 and above): | ||
$ sudo apt install libgpgme-dev libassuan-dev libbtrfs-dev libdevmapper-dev | ||
``` | ||
|
||
```bash | ||
# macOS: | ||
$ brew install gpgme | ||
``` | ||
|
||
```bash | ||
# openSUSE: | ||
$ sudo zypper install libgpgme-devel device-mapper-devel libbtrfs-devel glib2-devel | ||
``` | ||
|
||
Make sure to clone this repository in your `GOPATH` - otherwise compilation fails. | ||
|
||
```bash | ||
$ git clone https://github.com/containers/skopeo $GOPATH/src/github.com/containers/skopeo | ||
$ cd $GOPATH/src/github.com/containers/skopeo && make binary-local | ||
``` | ||
|
||
### Building in a container | ||
|
||
Building in a container is simpler, but more restrictive: | ||
|
||
- It requires the `podman` command and the ability to run Linux containers | ||
- The created executable is a Linux executable, and depends on dynamic libraries | ||
which may only be available only in a container of a similar Linux | ||
distribution. | ||
|
||
```bash | ||
$ make binary # Or (make all) to also build documentation, see below. | ||
``` | ||
|
||
To build a pure-Go static binary (disables devicemapper, btrfs, and gpgme): | ||
|
||
```bash | ||
$ make binary-static DISABLE_CGO=1 | ||
``` | ||
|
||
### Building documentation | ||
|
||
To build the manual you will need go-md2man. | ||
|
||
```bash | ||
# Debian: | ||
$ sudo apt-get install go-md2man | ||
``` | ||
|
||
``` | ||
# Fedora: | ||
$ sudo dnf install go-md2man | ||
``` | ||
|
||
Then | ||
|
||
```bash | ||
$ make docs | ||
``` | ||
|
||
### Installation | ||
|
||
Finally, after the binary and documentation is built: | ||
|
||
```bash | ||
$ sudo make install | ||
``` |