Heesung Yang
[명령어] rpm
모든 옵션에 -p
를 붙여서 아직 설치되지 않는 rpm 파일에 대한 정보를 알 수 있다. 예를 들면 이런 식이다.
~$ rpm -ql docker-ce
~$ rpm -qlp docker-ce-20.10.12-3.el7.x86_64.rpm
~$ rpm -qi docker-ce
~$ rpm -qip docker-ce-20.10.12-3.el7.x86_64.rpm
rpm 설치
~$ rpm -ivh docker-ce-20.10.12-3.el7.x86_64.rpm
rpm 버전 업그레이드
~$ rpm -Uvh docker-ce-20.10.12-3.el7.x86_64.rpm
rpm 버전 다운그레이드
~$ rpm -Uvh --oldpackage docker-ce-20.10.12-3.el7.x86_64.rpm
rpm 에 포함된 파일 리스트 확인
~$ rpm -ql docker-ce
/usr/bin/docker-init
/usr/bin/docker-proxy
/usr/bin/dockerd
/usr/lib/systemd/system/docker.service
/usr/lib/systemd/system/docker.socket
rpm 메타 정보 확인
~$ rpm -qi docker-ce
Name : docker-ce
Epoch : 3
Version : 20.10.12
Release : 3.el7
Architecture: x86_64
Install Date: 2022년 01월 09일 (일) 오후 03시 46분 01초
Group : Tools/Docker
Size : 100894038
License : ASL 2.0
Signature : RSA/SHA512, 2021년 12월 13일 (월) 오후 11시 22분 11초, Key ID c52feb6b621e9f35
Source RPM : docker-ce-20.10.12-3.el7.src.rpm
Build Date : 2021년 12월 13일 (월) 오후 08시 45분 30초
Build Host : dde032a932d2
Relocations : (not relocatable)
Packager : Docker <support@docker.com>
Vendor : Docker
URL : https://www.docker.com
Summary : The open-source application container engine
Description :
Docker is a product for you to build, ship and run any application as a
lightweight container.
Docker containers are both hardware-agnostic and platform-agnostic. This means
they can run anywhere, from your laptop to the largest cloud compute instance and
everything in between - and they don't require you to use a particular
language, framework or packaging system. That makes them great building blocks
for deploying and scaling web apps, databases, and backend services without
depending on a particular stack or provider.
특정 파일의 rpm 확인
docker 라는 파일이 어떤 rpm에 포함되어 있는지 확인하고 싶을 때, docker 파일의 절대 경로를 인자로 넘긴다.
# docker 명령어 파일의 절대 경로 확인
~$ which docker
/usr/bin/docker
# rpm -qf /usr/bin/docker 또는 아래와 같이 실행
~$ rpm -qf $(which docker)
docker-ce-cli-20.10.12-3.el7.x86_64
rpm dependancy 확인
~$ rpm -qR docker-ce
/bin/sh
/bin/sh
/bin/sh
/usr/sbin/groupadd
container-selinux >= 2:2.74
containerd.io >= 1.4.1
docker-ce-cli
docker-ce-rootless-extras
iptables
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libcgroup
libdevmapper.so.1.02()(64bit)
libdevmapper.so.1.02(Base)(64bit)
libdevmapper.so.1.02(DM_1_02_97)(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libseccomp >= 2.3
libsystemd.so.0()(64bit)
libsystemd.so.0(LIBSYSTEMD_209)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
systemd
tar
xz
rpmlib(PayloadIsXz) <= 5.2-1
rpm에 포함된 설치/삭제 스크립트 내용 확인
~$ rpm -q --scripts docker-ce
postinstall scriptlet (using /bin/sh):
if [ $1 -eq 1 ] ; then
# Initial installation
systemctl preset docker.service >/dev/null 2>&1 || :
fi
if ! getent group docker > /dev/null; then
groupadd --system docker
fi
preuninstall scriptlet (using /bin/sh):
if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
systemctl --no-reload disable docker.service > /dev/null 2>&1 || :
systemctl stop docker.service > /dev/null 2>&1 || :
fi
postuninstall scriptlet (using /bin/sh):
systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
# Package upgrade, not uninstall
systemctl try-restart docker.service >/dev/null 2>&1 || :
fi
Previous post
Nginx docker container 안전하게 실행하기(security)Next post
Linux Kernel Tuning