티스토리 뷰
Red Hat System Administration I: Redhat 소프트웨어 설치 및 업그레이드
Happy@Cloud 2020. 6. 12. 10:09Redhat S/W설치와 업그레이드를 위한 명령어에 대해 설명합니다.
subscription-manager
redhat s/w의 repository에 접근하기 위한 subscription 권한을 현재 서버에 등록, 수정, 조회, 삭제하는 명령입니다.
전체 subscription 추가
$ subscription-manager register --username [username] --password [password] --auto-attach
subscription별 추가: list에서 Pool ID확인하여 추가함
$ subscription-manager register --username [username] --password [password]
$ subscription-manager list --available
$ subscription-manager attach --pool=<POOL ID>
참고: subscription refresh
$ subscription-manager refresh
rpm
rpm은 Redhat Package Manager의 약자로 Redhat S/W의 설치를 간편하게 만들어주는 프로그램입니다.
rpm package파일 다운로드는 아래 redhat사이트에서 할 수 있습니다. 단, rpm download subscription이 있어야 합니다.
access.redhat.com/downloads/content/package-browser
주요 사용법은 아래와 같습니다.
rpm -qa는 query, all로서 모든 설치된 S/W리스트를 리턴합니다.
[root@bastion rhsm]# rpm -q dbus
dbus-1.10.24-13.el7_6.x86_64
[root@bastion rhsm]#
[root@bastion rhsm]# rpm -qa
binutils-2.27-43.base.el7_8.1.x86_64
authconfig-6.2.8-30.el7.x86_64
ncurses-base-5.9-14.20130511.el7_4.noarch
util-linux-2.23.2-63.el7.x86_64
...
특정 S/W가 설치되었는지 보려면 -q를 사용합니다. 그리고, 그 S/W의 상세정보까지 보려면 -qi 옵션을 이용합니다.
[root@bastion rhsm]# rpm -q dbus
dbus-1.10.24-13.el7_6.x86_64
[root@bastion rhsm]# rpm -qi dbus
Name : dbus
Epoch : 1
Version : 1.10.24
Release : 13.el7_6
Architecture: x86_64
Install Date: Tue Dec 10 23:35:36 2019
Group : System Environment/Libraries
Size : 595216
License : (GPLv2+ or AFL) and GPLv2+
Signature : RSA/SHA256, Wed Mar 20 04:51:06 2019, Key ID 24c6a8a7f4a80eb5
Source RPM : dbus-1.10.24-13.el7_6.src.rpm
Build Date : Thu Mar 14 19:18:13 2019
Build Host : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.freedesktop.org/Software/dbus/
Summary : D-BUS message bus
Description :
D-BUS is a system for sending messages between applications. It is
used both for the system-wide message bus service, and as a
per-user-login-session messaging facility.
package내의 파일들 목록은 -ql 옵션으로 봅니다.
[root@bastion rhsm]# rpm -ql dbus
/etc/dbus-1
/etc/dbus-1/session.conf
/etc/dbus-1/session.d
/etc/dbus-1/system.conf
/etc/dbus-1/system.d
/lib64/dbus-1
/lib64/dbus-1/dbus-daemon-launch-helper
/run/dbus
/usr/bin/dbus-cleanup-sockets
...
configuration file 목록만 보려면 -qc를 이용합니다.
[root@bastion rhsm]# rpm -qc dbus
/etc/dbus-1/session.conf
/etc/dbus-1/system.conf
document file 목록은 -qd를 사용합니다.
[root@bastion rhsm]# rpm -qd dbus
/usr/share/doc/dbus-1.10.24/AUTHORS
/usr/share/doc/dbus-1.10.24/ChangeLog
/usr/share/doc/dbus-1.10.24/HACKING
/usr/share/doc/dbus-1.10.24/NEWS
/usr/share/doc/dbus-1.10.24/README
/usr/share/doc/dbus-1.10.24/examples/GetAllMatchRules.py
/usr/share/doc/dbus-1.10.24/examples/GetAllMatchRules.pyc
/usr/share/doc/dbus-1.10.24/examples/GetAllMatchRules.pyo
/usr/share/doc/dbus-1.10.24/examples/example-session-disable-stats.conf
...
패키지를 설치하려면 -i옵션을 주십시오.
- v: verbose. 결과UI를 좀 더 보기 좋게 하는 옵션
- h: hash. 진행상태를 '#'으로 표시하는 옵션
[root@bastion tmp]# rpm -ivh ./mariadb-5.5.65-1.el7.src.rpm
Updating / installing...
1:mariadb-1:5.5.65-1.el7 ################################# [100%]
어떤 특정 파일이 어떤 rpm에 속해있는지를 알려면 -qf를 사용합니다.
아래는 sshd_config파일이 어떤 rpm에 속해 있는지 보여줍니다. -ql 또는 -qc로 진짜 속해 있는지 검증할 수 있습니다.
[root@bastion tmp]# rpm -qf /etc/ssh/sshd_config
openssh-server-7.4p1-21.el7.x86_64
[root@bastion tmp]# rpm -ql openssh-server-7.4p1-21.el7.x86_64 | grep sshd_config
/etc/ssh/sshd_config
/usr/share/man/man5/sshd_config.5.gz
[root@bastion tmp]# rpm -qc openssh-server-7.4p1-21.el7.x86_64
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
rpm package를 download하는 방법은 아래 redhat사이트에서 직접 다운로드하거나, yumdownloader를 이용할 수 있습니다.
yum repolist: repository 목록을 표시합니다. repository는 /etc/yum.repos.d 디렉토리에 정의합니다.
yumdownloader : 각 repository에서 package keyword로 시작하는 rpm 패키지가 있는지 검색하고 다운로드합니다.
[root@bastion tmp]# yumdownloader openssh-server
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, product-id, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
openssh-server-7.4p1-21.el7.x86_64.rpm | 459 kB 00:00:01
rpm파일내 목록을 보려면 -qpl, -qpc, -qpd를 사용하십시오. 'p'는 package라는 뜻입니다.
이는 설치된 rpm의 파일 목록을 보는 -ql, -qc, -qd와 동일합니다.
[root@bastion tmp]# rpm -qpl openssh-server-7.4p1-21.el7.x86_64.rpm
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/usr/lib/systemd/system/sshd-keygen.service
/usr/lib/systemd/system/sshd.service
[root@bastion tmp]# rpm -qpc openssh-server-7.4p1-21.el7.x86_64.rpm
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
[root@bastion tmp]# rpm -qpd openssh-server-7.4p1-21.el7.x86_64.rpm
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
또한, -q --scripts명령을 rpm파일에 대해서 하려면 -qp --scripts를 이용하십시오.
[root@bastion tmp]# rpm -qp --scripts openssh-server-7.4p1-21.el7.x86_64.rpm
preinstall scriptlet (using /bin/sh):
getent group sshd >/dev/null || groupadd -g 74 -r sshd || :
getent passwd sshd >/dev/null || \
useradd -c "Privilege-separated SSH" -u 74 -g sshd \
-s /sbin/nologin -r -d /var/empty/sshd sshd 2> /dev/null || :
postinstall scriptlet (using /bin/sh):
if [ $1 -eq 1 ] ; then
# Initial installation
systemctl preset sshd.service sshd.socket >/dev/null 2>&1 || :
fi
preuninstall scriptlet (using /bin/sh):
if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
systemctl --no-reload disable sshd.service sshd.socket > /dev/null 2>&1 || :
systemctl stop sshd.service sshd.socket > /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 sshd.service >/dev/null 2>&1 || :
fi
rpm패키지를 rpm2cpio라는 명령으로 extract할 수 있습니다.
[root@bastion scratch]# rpm2cpio openssh-server-7.4p1-21.el7.x86_64.rpm | cpio -duim
1946 blocks
[root@bastion scratch]# ls -l
total 480
drwxr-xr-x. 5 root root 4096 Jun 15 11:24 etc
-rw-r--r--. 1 root root 470036 Aug 23 2019 openssh-server-7.4p1-21.el7.x86_64.rpm
drwxr-xr-x. 7 root root 4096 Jun 15 11:24 usr
drwxr-xr-x. 3 root root 4096 Jun 15 11:24 var
yum
yum search로 원하는 프로그램을 찾습니다.
[root@bastion tmp]# yum search nmap
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
============================================================== N/S matched: nmap ==============================================================
nmap-frontend.noarch : The GTK+ front end for nmap
nmap-ncat.x86_64 : Nmap's Netcat replacement
perl-Nmap-Parser.noarch : Parse nmap scan data with perl
nmap.x86_64 : Network exploration tool and security scanner
Name and summary matches only, use "search all" for everything.
[root@bastion tmp]#
yum info로 프로그램의 세부정보를 볼 수도 있습니다.
[root@bastion ~]# yum info nmap
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
Installed Packages
Name : nmap
Arch : x86_64
Epoch : 2
Version : 6.40
Release : 19.el7
Size : 16 M
Repo : installed
From repo : base
Summary : Network exploration tool and security scanner
URL : http://nmap.org/
License : GPLv2 and LGPLv2+ and GPLv2+ and BSD
Description : Nmap is a utility for network exploration or security auditing. It supports
: ping scanning (determine which hosts are up), many port scanning techniques
: (determine what services the hosts are offering), and TCP/IP fingerprinting
: (remote host operating system identification). Nmap also offers flexible target
: and port specification, decoy scanning, determination of TCP sequence
: predictability characteristics, reverse-identd scanning, and more. In addition
: to the classic command-line nmap executable, the Nmap suite includes a flexible
: data transfer, redirection, and debugging tool (netcat utility ncat), a utility
: for comparing scan results (ndiff), and a packet generation and response analysis
: tool (nping).
repoquery명령으로 yum패키지 설치 전에 내부의 파일 목록을 볼 수 있습니다.
[root@bastion ~]# repoquery -l nmap
/usr/bin/ndiff
/usr/bin/nmap
/usr/bin/nping
/usr/share/doc/nmap-6.40
/usr/share/doc/nmap-6.40/COPYING
/usr/share/doc/nmap-6.40/README
/usr/share/doc/nmap-6.40/nmap.usage.txt
/usr/share/man/de/man1/nmap.1.gz
/usr/share/man/es/man1/nmap.1.gz
/usr/share/man/fr/man1/nmap.1.gz
...
특정 파일이 어떤 yum 패키지에 있는지 알려면 yum provides <파일>를 이용하십시오.
[root@bastion ~]# yum provides /etc/fstab
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
setup-2.8.71-11.el7.noarch : A set of system configuration and setup files
Repo : base
Matched from:
Filename : /etc/fstab
setup-2.8.71-11.el7.noarch : A set of system configuration and setup files
Repo : @base
Matched from:
Filename : /etc/fstab
yum provides는 wildcard를 이용하여 검색할 수도 있습니다. 아래 예는 netstat라는 실행파일이 어떤 yum package에 있는지 찾습니다.
[root@bastion ~]# yum provides *bin/netstat
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
Repo : base
Matched from:
Filename : /bin/netstat
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
Repo : @base
Matched from:
Filename : /bin/netstat
yum package설치 명령은 yum install <package명>입니다.
[root@bastion ~]# yum install -y nmap
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
Resolving Dependencies
--> Running transaction check
---> Package nmap.x86_64 2:6.40-19.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================
Installing:
nmap x86_64 2:6.40-19.el7 base 3.9 M
Transaction Summary
===============================================================================================================================================
Install 1 Package
Total download size: 3.9 M
Installed size: 16 M
Downloading packages:
nmap-6.40-19.el7.x86_64.rpm | 3.9 MB 00:00:04
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 2:nmap-6.40-19.el7.x86_64 1/1
Verifying : 2:nmap-6.40-19.el7.x86_64 1/1
Installed:
nmap.x86_64 2:6.40-19.el7
Complete!
만약, rpm파일을 다운로드 하였다면 yum localinstall명령을 이용하여 다운로드한 rpm파일을 이용하여 설치할수 있습니다.
업그레이드는 yum update입니다.
[root@bastion ~]# yum update nmap
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
No packages marked for update
삭제는 yum remove입니다.
[root@bastion ~]# yum remove -y nmap
Resolving Dependencies
--> Running transaction check
---> Package nmap.x86_64 2:6.40-19.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================
Removing:
nmap x86_64 2:6.40-19.el7 @base 16 M
Transaction Summary
===============================================================================================================================================
Remove 1 Package
Installed size: 16 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : 2:nmap-6.40-19.el7.x86_64 1/1
Verifying : 2:nmap-6.40-19.el7.x86_64 1/1
Removed:
nmap.x86_64 2:6.40-19.el7
Complete!
yum package를 category group별로 볼 수 있습니다.
먼저 yum package group의 목록을 확인합니다.
[root@bastion ~]# yum group list
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
Available Environment Groups:
Minimal Install
Compute Node
...
Available Groups:
Cinnamon
Compatibility Libraries
Console Internet Tools
Development Tools
Educational Software
...
Done
각 group내의 yum package는 yum group info <그룹명>을 이용합니다.
[root@bastion ~]# yum group info "Development Tools"
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
Group: Development Tools
Group-Id: development
Description: A basic development environment.
Mandatory Packages:
+autoconf
+automake
...
Default Packages:
+byacc
+cscope
+ctags
+diffstat
...
Optional Packages:
ElectricFence
ant
...
yum 사용 history를 볼 수 있습니다.
[root@bastion ~]# yum history
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
32 | remove autoconf | 2020-06-17 12:02 | Erase | 1
31 | install autoconf | 2020-06-17 12:01 | Install | 3
30 | remove -y nmap | 2020-06-17 11:49 | Erase | 1
29 | install -y nmap | 2020-06-17 11:47 | Install | 1
history,의 특정 transaction 상세정보를 볼 수 있습니다.
[root@bastion ~]# yum history info 35
Transaction ID : 35
Begin time : Wed Jun 17 12:33:01 2020
Begin rpmdb : 441:948ae879b5f0beb9dfaf00466058372b72a239bc
End time : 12:33:02 2020 (1 seconds)
End rpmdb : 442:aea465938682bd126d7c4ee166d6ff85bdfe8b5d
User : root <root>
Return-Code : Success
Command Line : install -y bash-completion
Transaction performed with:
Installed rpm-4.11.3-43.el7.x86_64 @base
Installed subscription-manager-1.24.26-3.el7.centos.x86_64 @updates
Installed yum-3.4.3-167.el7.centos.noarch @base
Installed yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch @updates
Packages Altered:
Install bash-completion-1:2.1-8.el7.noarch @base
history info
또한, history상의 특정 transaction을 취소할 수도 있습니다.
[root@bastion ~]# yum history undo 32
Undoing transaction 32, from Wed Jun 17 12:02:36 2020
Erase autoconf-2.69-11.el7.noarch @base
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
Resolving Dependencies
--> Running transaction check
---> Package autoconf.noarch 0:2.69-11.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
...
Is this ok [y/d/N]: y
Downloading packages:
autoconf-2.69-11.el7.noarch.rpm | 701 kB 00:00:07
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : autoconf-2.69-11.el7.noarch 1/1
Verifying : autoconf-2.69-11.el7.noarch 1/1
Installed:
autoconf.noarch 0:2.69-11.el7
Complete!
yum repository
yum repository를 관리하는 방법을 학습합니다.
현재 추가된 yum repository목록은 yum repolist 명령으로 확인합니다.
[root@bastion ~]# yum repolist
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10070
docker-ce-stable/x86_64 Docker CE Stable - x86_64 77
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13323
extras/7/x86_64 CentOS-7 - Extras 397
updates/7/x86_64 CentOS-7 - Updates 759
repolist: 24626
모든 repository목록은 yum repolist all 명령으로 볼 수 있습니다.
[root@bastion yum.repos.d]# yum repolist all
Loading mirror speeds from cached hostfile
* epel: ftp.riken.jp
repo id repo name status
C7.0.1406-base/x86_64 CentOS-7.0.1406 - Base disabled
C7.0.1406-centosplus/x86_64 CentOS-7.0.1406 - CentOSPlus disabled
C7.0.1406-extras/x86_64 CentOS-7.0.1406 - Extras disabled
C7.0.1406-fasttrack/x86_64 CentOS-7.0.1406 - Fasttrack disabled
C7.0.1406-updates/x86_64 CentOS-7.0.1406 - Updates disabled
C7.1.1503-base/x86_64 CentOS-7.1.1503 - Base disabled
C7.1.1503-centosplus/x86_64 CentOS-7.1.1503 - CentOSPlus disabled
C7.1.1503-extras/x86_64 CentOS-7.1.1503 - Extras disabled
...
repository정보 설정파일들은 /etc/yum.repos.d 디렉토리에 있습니다.
[root@bastion yum.repos.d]# ls -l /etc/yum.repos.d/
total 52
-rw-r--r--. 1 root root 1708 Oct 28 2014 CentOS-Base.repo
-rw-r--r--. 1 root root 1618 Oct 28 2014 CentOS-Base.repo.orig
-rw-r--r--. 1 root root 1309 Apr 8 07:01 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Apr 8 07:01 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 630 Apr 8 07:01 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 8 07:01 CentOS-Sources.repo
-rw-r--r--. 1 root root 7577 Apr 8 07:01 CentOS-Vault.repo
-rw-r--r--. 1 root root 314 Apr 8 07:01 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 616 Apr 8 07:01 CentOS-x86_64-kernel.repo
-rw-r--r--. 1 root root 2424 Oct 19 2019 docker-ce.repo
-rw-r--r--. 1 root root 1050 Oct 3 2017 epel-testing.repo
-rw-r--r--. 1 root root 951 Oct 3 2017 epel.repo
각 repository정보에는 url, name, gpgkey 등이 있습니다.
[cr]
name=CentOS-$releasever - cr
baseurl=http://mirror.centos.org/centos/$releasever/cr/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
참고) gpg(Gnu private Guard) key란 ?
gpg key는 repository에서 내려 받은 소프트웨어가 위변조 되지 않았는지 검증하기 위한 repository의 public key입니다.
먼저 암호화와 전자서명에 대한 이해를 먼저 하시고 이 사이트에서 직접 gpg key를 만들어 사용해 볼 수 있습니다.
reposiroty추가는 yum-config-manager --add-repo="<url>"을 이용합니다.
[root@bastion yum.repos.d]# yum-config-manager --add-repo="http://dl.fedoraproject.org/pub/epel/7/x86_64"
adding repo from: http://dl.fedoraproject.org/pub/epel/7/x86_64
[dl.fedoraproject.org_pub_epel_7_x86_64]
name=added from: http://dl.fedoraproject.org/pub/epel/7/x86_64
baseurl=http://dl.fedoraproject.org/pub/epel/7/x86_64
enabled=1
module관리
module은 rpm을 그룹핑한것입니다. module의 각 버전을 Streams라고 합니다. rpm package는 각 Streams 하위에 존재합니다.
* centos의 yum에는 module명령이 지원되지 않습니다. rhel에서만 지원되는것 같습니다.
module의 Stream목록은 yum module list <module명>으로 확인합니다.
module 설치는 yum module install <module명>으로 합니다. 또는 yum install @<module명>도 동일한 명령입니다.
module 삭제는 yum module remove <module명>으로 합니다.
삭제 후에는 Profiles 컬럼에 (i)가 없어진걸 볼 수 있습니다.
'Infrastructure > OS' 카테고리의 다른 글
Red Hat System Administration II: 반복문, 조건문, 재귀식 사용 (0) | 2020.07.16 |
---|---|
Red Hat System Administration I: Linux 파일 시스템 (0) | 2020.06.17 |
Red Hat System Administration I: 압축/해제와 파일 전송 (0) | 2020.06.09 |
Red Hat System Administration I: 네트워크 관리 (0) | 2020.06.08 |
Red Hat System Administration I: Logs (0) | 2020.06.08 |
- Total
- Today
- Yesterday
- 스포티파이
- 리퀴드폴리탄
- CQRS
- SAGA
- API Composition
- 분초사회
- 호모프롬프트
- 도파밍
- AXON
- agile
- 스핀프로젝트
- micro service
- 마이크로서비스 패턴
- 디토소비
- 마이크로서비스
- spotify
- Event Sourcing
- 요즘남편 없던아빠
- 버라이어티가격
- 돌봄경제
- 애자일
- 육각형인간
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |