Run The Bridge

podman 4.0.0 install 본문

Cloud/Linux

podman 4.0.0 install

anfrhrl5555 2022. 3. 7. 20:44
728x90
반응형

0. 들어가기에 앞서

물개

얼마 전에 podman 관련해서 포스팅을 하였다.

 

그때는 Centos7.x 버전으로 설치하여서 podman 버전이 1.6.4로 매우 낮은 버전이었다.

 

현재 github상에서는 4.0.2까지 릴리즈 된 상태로 오늘은 Centos8.x로 podman 4.0.0버전을 구축해본다.

 

그리고 github에 있는걸 build 해서 구축한 블로그를 못봐서 내가 직접 할려고한다...!!!

https://github.com/containers/podman

 

GitHub - containers/podman: Podman: A tool for managing OCI containers and pods.

Podman: A tool for managing OCI containers and pods. - GitHub - containers/podman: Podman: A tool for managing OCI containers and pods.

github.com


1. Centos8.x 구축

podman를 찾아볼 정도면 클라우드를 어느 정도 하셨고, vm정도는 많이 구축해본 사람이라 판단하고 간단하게 적고 넘어간다.

 

나는 vm 리소스를 다음과 같이 설정하였다.

CPU 2core, RAM 2GB

 

내가 설치한 CentOS 버전은 8.4 버전이다.

cat /etc/*release
CentOS Linux release 8.4.2105
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
CentOS Linux release 8.4.2105
CentOS Linux release 8.4.2105

아 그리고 CentOS8.x 버전으로 넘어오면서 repo 주소가 바뀌었다.

 

현재는 mirrorlist가 centos로 잡혀있지만, Centos가 EOS 되어버려서 mirror site가 vault로 바뀌었다.

 

그래서 'dnf -y update' 명령을 하면 다음과 같은 오류가 나온다.

Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

그리고 repo를 바꿀 때 혹시 모르니 현재 repo파일을 압축한다.

tar -cvf repo.tar /etc/yum.repos.d/*

그 후 repo를 변경해준다.

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*

'dnf -y update'까지 해주고 초기 설정을 마친다.

 

이제 빠르게 podman을 설치한다.


2. Podman 종속성 설치

podman github에 Rootless부분에서 install guide를 확인할 수 있다.

https://github.com/containers/podman#rootless

 

GitHub - containers/podman: Podman: A tool for managing OCI containers and pods.

Podman: A tool for managing OCI containers and pods. - GitHub - containers/podman: Podman: A tool for managing OCI containers and pods.

github.com

해당 부분을 클릭하고 리다이렉션 되는 곳에선 다음을 누른다.

그러면 이렇게 podman.io 하면서 install 사이트로 이동된다.

install

우리는 여기서 Centos부분을 살펴보면 된다.

 

중간에 'yum -y install podman', 'dnf -y install podman'이 있는데 이 명령어로 설치하면 3.3.4 버전이 설치된다.

 

우리는 직접 빌드하기 위해서 https://podman.io/getting-started/installation#building-from-scratch 해당 링크로 이동한다.

 

먼저 podman 관련해서 종속성 설치를 해주어야 한다.

 

진짜 이거 때문에 삽질을 얼마나 했는지 모른다....ㅠㅠ 진작에 설치 가이드 꼼꼼하게 살펴볼걸 ㅠㅠㅠ

 

이렇게 많이 있는데, 내가 하나씩 해본 결과 다음 6개가 안된다.

sudo yum install -y \
  btrfs-progs-devel \
  conmon \
  containernetworking-plugins \
  containers-common \
  crun \
  device-mapper-devel \
  git \
  glib2-devel \
  glibc-devel \
  glibc-static \
  go \
  golang-github-cpuguy83-md2man \
  gpgme-devel \
  iptables \
  libassuan-devel \
  libgpg-error-devel \
  libseccomp-devel \
  libselinux-devel \
  make \
  pkgconfig
  • 되는 것들
yum install -y conmon
yum install -y containernetworking-plugins
yum install -y containers-common
yum install -y crun
yum install -y git
yum install -y glib2-devel
yum install -y glibc-devel
yum install -y go
yum install -y iptables
yum install -y libgpg-error-devel
yum install -y libseccomp-devel
yum install -y libselinux-devel
yum install -y make
yum install -y pkgconfig
  • 안 되는 것들
btrfs-progs-devel
device-mapper-devel
glibc-static
golang-github-cpuguy83-md2man
gpgme-devel
libassuan-devel

이제 안되는 것들은 rpm을 직접 다운받아서 설치해주면 된다.

https://pkgs.org/

찾아봤는데 btrfs-progs-devel 이라는 라이브러리는 centos7까지만 지원했었다.

 

rpm이 존재하니 그래도 설치한다.  

 

우린 64bit이므로 x86_64가 붙은걸로 전부 설치해주면 된다.

Download 부분에서 wget으로 BInary Package 주소를 입력하면 다운로드 된다.

현재 2022. 03. 07 기준 다음 명령을 wget 할 수 있다.

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/btrfs-progs-devel-4.9.1-1.el7.x86_64.rpm
wget https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/device-mapper-devel-1.02.177-10.el8.x86_64.rpm86_64.rpm
wget https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/qgpgme-devel-1.13.1-9.el8.x86_64.rpm
wget https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/glibc-static-2.28-164.el8.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/g/golang-github-cpuguy83-md2man-2.0.0-4.20210612gitaf8da76.el8.x86_64.rpm
wget https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/libassuan-devel-2.5.1-3.el8.x86_64.rpm

그리고 rpm을 설치한다.

rpm -ivh *.rpm --force --nodeps

밑에 내리면 go, conmon 버전을 출력하는데 2022. 03. 07 기준으로 podman에서 요구하는 버전보다 높다.

[root@localhost podman_rpm]# go version
go version go1.16.12 linux/amd64

[root@localhost podman_rpm]# conmon --version
conmon version 2.0.29
commit: 84384406047fae626269133e1951c4b92eed7603

[root@localhost podman_rpm]# runc --version
runc version 1.0.2
spec: 1.0.2-dev
go: go1.16.7
libseccomp: 2.5.1

3. Podman 설치

https://podman.io/getting-started/installation#get-source-code

 

Podman Installation

Podman Installation Instructions Installing packaged versions of Podman MacOS Podman is a tool for running Linux containers. You can do this from a MacOS desktop as long as you have access to a linux box either running inside of a VM on the host, or availa

podman.io

 

github에서 podman 소스를 clone 해온다.

git clone https://github.com/containers/podman/
cd podman
make BUILDTAGS="selinux seccomp"
sudo make install PREFIX=/usr

여기서 make 하고 buildtag를 주는데 막 주면 오류나고...한참 삽질하다가 github issues에 어떤사람이 올려놨다.

 

태그를 다음과같이 여러개 줘야 podman이 설치된다.

make BUILDTAGS="containers_image_openpgp exclude_graphdriver_btrfs btrfs_noversion exclude_graphdriver_devicemapper selinux seccomp"

buildtag 관련해서는 아래와 같이 있는데, 위의 명령은 내용을 보니까 systemd를 제외한 나머지를 입력해준 것으로 보인다.

 

아 그리고 buildtag에 systemd가 있어 오류가 발생했는데 systemd를 제거하니까 오류가 해결되었다.

해당 명령어를 입력하고, 터미널을 하나 더 켜서 보면 compile 프로세스가 열심히 돌고있다.

make 작업이 완료되면 make install 까지 해준다.

make install

최종적으로 설치가 끝나면 podman 버전을 출력한다.

[root@localhost podman]# podman version
Client:       Podman Engine
Version:      4.0.0-dev
API Version:  4.0.0-dev
Go Version:   go1.16.12
Git Commit:   f4d6e8777213880204ccbce92201c47c74b33036
Built:        Mon Mar  7 09:34:13 2022
OS/Arch:      linux/amd64

4.0.0-dev 버전이 정상적으로 잘 설치되었다.

 

4.0.0 관련해서 변경사항은 github 릴리즈 노트에 매우 잘 나와있다.

 

편의성, docker 옵션을 웃도는 명령어들, 버그수정 많은 개선점들이 나왔다.

 

꼭 한 번 씩 실습해본다.

 

https://github.com/containers/podman/releases/tag/v4.0.0

 

Release v4.0.0 · containers/podman

Features Podman has seen an extensive rewrite of its network stack to add support for Netavark, a new tool for configuring container networks, in addition to the existing CNI stack. Netavark will ...

github.com


감사합니다.

728x90
반응형

'Cloud > Linux' 카테고리의 다른 글

tshark 란?  (6) 2022.03.13
lsof 란?  (0) 2022.03.07
알마 리눅스, 로키 리눅스  (0) 2022.03.04
disk i/o 확인하기  (0) 2022.03.04
package의 의존성 파일 출력 및 설치  (1) 2022.02.22
Comments