티스토리 뷰
[CentOS] Yum Repository(저장소) 추가 / 삭제
Yum Repository란?
Yum Repository는 Package를 모아놓은 저장소입니다. Yum을 통해 Package 설치 시 활성화 된 Yum Repository에서 Package를 다운로드하여 설치하기 때문에 Package가 Repository에 없을 경우 설치 할 수 없습니다.
Default Repository가 아닌 EPEL(Extra packages for Enterprise Linux), REMI 등 다른 Repository를 추가하여 원하는 Package 또는 최신버전의 Package를 설치 할 수 있습니다.
Yum repolist
- 현재 활성화 된 Yum Repository 목록을 확인합니다.
[root@yum-repository-test ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.hmc.edu
* extras: repos.lax.quadranet.com
* updates: mirrors.unifiedlayer.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base 9,911
extras/7/x86_64 CentOS-7 - Extras 313
google-cloud-compute Google Cloud Compute 10
google-cloud-sdk Google Cloud SDK 140
updates/7/x86_64 CentOS-7 - Updates 695
repolist: 11,069
|
- Yum Repository 파일의 위치는 " /etc/yum.repos.d " 저장소를 추가할 경우 해당 위치에 Repository 파일이 저장됩니다.
root@yum-repository-test ~]# cd /etc/yum.repos.d/
[root@yum-repository-test yum.repos.d]# ls -l
total 36
-rw-r--r--. 1 root root 1664 May 17 13:53 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 May 17 13:53 CentOS-CR.repo
-rw-r--r--. 1 root root 649 May 17 13:53 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 May 17 13:53 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 May 17 13:53 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 May 17 13:53 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 May 17 13:53 CentOS-Vault.repo
-rw-r--r--. 1 root root 581 Jun 11 18:35 google-cloud.repo
|
Yum Repository 추가
Yum Repository는 수동으로 입력하여 추가하는 방법과 RPM을 이용하여 설치하는 방법이 있습니다.
Yum Repository 수동추가
- Yum Repository 파일의 위치인 " /etc/yum.repos.d/[RepositoryName].repo " 형태로 파일을 생성하며 아래와 같은 내용으로 작성합니다.
[저장소 이름]
name=저장소 표시이름
baseurl=저장소 주소 예) http://nginx.org/packages/centos/$releasever/$basearch/
enabled=활성화 여부 (0 or 1)
gpgcheck=gpg 서명키 사용여부 (0 or 1)
gpgkey= 서명키를 사용한다면 서명키 주소 입력
# CentOS-Base.repo의 작성된 내용
[root@yum-repository-test yum.repos.d]# cat CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
|
Yum Repository RPM 설치와 YUM 설치
- Yum을 통해 EPEL Repository 설치
+ EPEL은 Default Repository에서 확장된 Package 저장소로 Default Repository 없는 Package들이 저장되어 있습니다.
- RPM을 통해 REMI Repostory 설치
+ REMI는 최신버전이 Package들이 저장되어 있습니다.
+ Default Repository에는 오래된 버전의 Package가 있는 경우가 많기 때문에 최신버전의 Package를 설치가 필요할 경우 REMI Repository를 사용하기도 합니다.
+ REMI는 EPEL과 의존성이 있는 관계로 REMI를 사용하고자 할 경우 EPEL을 먼저 추가해야 합니다.
EPEL Repository 설치
- " yum install -y epel-release " 명령어를 통해 EPEL Repository를 설치합니다.
[root@yum-repository-test yum.repos.d]# yum install -y epel-release
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.hmc.edu
* extras: repos.lax.quadranet.com
....
Installed:
epel-release.noarch 0:7-11
Complete!
|
- " /etc/yum/yum.repo.d/ " 위치에 EPEL Repository 파일이 추가되었는지 확인합니다.
[root@yum-repository-test yum.repos.d]# ls -l
total 44
-rw-r--r--. 1 root root 1664 May 17 13:53 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 May 17 13:53 CentOS-CR.repo
-rw-r--r--. 1 root root 649 May 17 13:53 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 May 17 13:53 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 May 17 13:53 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 May 17 13:53 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 May 17 13:53 CentOS-Vault.repo
-rw-r--r--. 1 root root 951 Oct 2 2017 epel.repo
-rw-r--r--. 1 root root 1050 Oct 2 2017 epel-testing.repo
-rw-r--r--. 1 root root 581 Jun 11 18:35 google-cloud.repo
|
- " yum repolist " 명령어를 통해 EPEL Repository가 활성화 되어 있는지 확인합니다.
+ EPEL Repository가 출력된다면 정상적으로 설치 완료된 것입니다.
[root@yum-repository-test yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.hmc.edu
* epel: mirrors.cat.pdx.edu
* extras: repos.lax.quadranet.com
* updates: mirrors.unifiedlayer.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base 9,911
*epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12,584
extras/7/x86_64 CentOS-7 - Extras 313
google-cloud-compute Google Cloud Compute 10
google-cloud-sdk Google Cloud SDK 140
updates/7/x86_64 CentOS-7 - Updates 695
repolist: 23,653
|
REMI Repository 설치
- Yum Repository에는 REMI Repository Package가 없는 관계로 RPM을 다운로드 받은 후 설치합니다.
- OS 버전별 Package URL을 참고하여 " rpm -ivh [URL] " 명령어를 통해 다운로드 후 설치합니다.
[OS 버전별 REMI Repository Download URL]
centos 5 : http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
centos 6 : http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
centos 7 : http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
[root@yum-repository-test /]# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Retrieving http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
warning: /var/tmp/rpm-tmp.41wQ1F: Header V4 DSA/SHA1 Signature, key ID 00f97f56: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:remi-release-7.5-2.el7.remi ################################# [100%]
|
- REMI Repository RPM 파일 다운로드 및 설치가 정상적으로 되었는지 확인합니다.
+ " rpm -qa | grep remi-release" 명령어로 REMI Repository Package가 설치되었는지 확인합니다.
+ " /etc/yum.repos.d/ " 위치에 REMI 관련 repo 파일이 생성되었는지 확인합니다.
root@yum-repository-test /]# rpm -qa | grep remi-release
remi-release-7.5-2.el7.remi.noarch
[root@yum-repository-test /]# ls -l /etc/yum.repos.d/
total 84
-rw-r--r--. 1 root root 1664 May 17 13:53 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 May 17 13:53 CentOS-CR.repo
-rw-r--r--. 1 root root 649 May 17 13:53 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 May 17 13:53 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 May 17 13:53 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 May 17 13:53 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 May 17 13:53 CentOS-Vault.repo
-rw-r--r--. 1 root root 951 Oct 2 2017 epel.repo
-rw-r--r--. 1 root root 1050 Oct 2 2017 epel-testing.repo
-rw-r--r--. 1 root root 581 Jun 11 18:35 google-cloud.repo
-rw-r--r--. 1 root root 446 Jun 19 08:28 remi-glpi91.repo
-rw-r--r--. 1 root root 446 Jun 19 08:28 remi-glpi92.repo
-rw-r--r--. 1 root root 446 Jun 19 08:28 remi-glpi93.repo
-rw-r--r--. 1 root root 456 Jun 19 08:28 remi-php54.repo
-rw-r--r--. 1 root root 1314 Jun 19 08:28 remi-php70.repo
-rw-r--r--. 1 root root 1314 Jun 19 08:28 remi-php71.repo
-rw-r--r--. 1 root root 1314 Jun 19 08:28 remi-php72.repo
-rw-r--r--. 1 root root 1314 Jun 19 08:28 remi-php73.repo
-rw-r--r--. 1 root root 2605 Jun 19 08:28 remi.repo
-rw-r--r--. 1 root root 750 Jun 19 08:28 remi-safe.repo
|
- " yum repolist " 명령어를 통해 REMI Repository가 활성화 되어있는지 확인합니다.
+ REMI Repository 출력된다면 정상적으로 설치 완료된 것입니다.
[root@yum-repository-test /]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.hmc.edu
* epel: mirrors.cat.pdx.edu
* extras: repos.lax.quadranet.com
* remi-safe: ftp.riken.jp
* updates: mirrors.unifiedlayer.com
remi-safe | 2.9 kB 00:00:00
remi-safe/primary_db | 1.2 MB 00:00:02
repo id repo name status
base/7/x86_64 CentOS-7 - Base 9,911
*epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12,584
extras/7/x86_64 CentOS-7 - Extras 313
google-cloud-compute Google Cloud Compute 10
google-cloud-sdk Google Cloud SDK 140
remi-safe Safe Remis RPM repository for Enterprise Linux 7 - x86_64 2,753
updates/7/x86_64 CentOS-7 - Updates 695
repolist: 26,406
[root@yum-repository-test /]#
|
Yum Repository 설치완료 후 " yum repolist " 명령어를 통해 Yum Repository 목록을 확인하였으나 추가된 저장소가 없다면 해당 저장소의 repo 파일을 연 후 활성화 여부를 확인합니다.
" enabled "의 값이 0일 경우 활성화 입니다.
[remi]
name=Remis RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/remi/httpsmirror
mirrorlist=http://cdn.remirepo.net/enterprise/7/remi/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
|
Yum Repository 삭제
" /etc/yum.repos.d/ " 위치에서 삭제 할 Repository를 " rm -rf [repo 파일] " 명령어로 삭제합니다.
+ 이때 " base.repo " 파일은 삭제하시면 안됩니다.
[root@yum-repository-test yum.repos.d]# rm -rf remi.* remi-*
[root@yum-repository-test yum.repos.d]# ls -l
total 44
-rw-r--r--. 1 root root 1664 May 17 13:53 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 May 17 13:53 CentOS-CR.repo
-rw-r--r--. 1 root root 649 May 17 13:53 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 May 17 13:53 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 May 17 13:53 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 May 17 13:53 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 May 17 13:53 CentOS-Vault.repo
-rw-r--r--. 1 root root 951 Oct 2 2017 epel.repo
-rw-r--r--. 1 root root 1050 Oct 2 2017 epel-testing.repo
-rw-r--r--. 1 root root 581 Jun 11 18:35 google-cloud.repo
|
Yum repository Cache Directory로 이동하여 Cache 파일을 삭제합니다.
[root@yum-repository-test yum.repos.d]# cd /var/cache/yum/
[root@yum-repository-test yum]# ls
x86_64
[root@yum-repository-test yum]# rm -rf x86_64
|
Yum headers, package, metadata를 삭제합니다.
[root@yum-repository-test yum]# yum clean headers
Loaded plugins: fastestmirror
Cleaning repos: base epel extras google-cloud-compute google-cloud-sdk updates
0 header files removed
[root@yum-repository-test yum]# yum clean packages
Loaded plugins: fastestmirror
Cleaning repos: base epel extras google-cloud-compute google-cloud-sdk updates
0 package files removed
[root@yum-repository-test yum]# yum clean metadata
Loaded plugins: fastestmirror
Cleaning repos: base epel extras google-cloud-compute google-cloud-sdk updates
0 metadata files removed
0 sqlite files removed
0 metadata files removed
|
" yum repolist " 명령어로 활성화 된 Yum Repository를 확인하였을 시 REMI Repository가 없을 경우 정상적으로 삭제된 것입니다.
[root@yum-repository-test yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.hmc.edu
* epel: mirrors.cat.pdx.edu
* extras: repos.lax.quadranet.com
* updates: mirrors.unifiedlayer.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base 9,911
*epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12,584
extras/7/x86_64 CentOS-7 - Extras 313
google-cloud-compute Google Cloud Compute 10
google-cloud-sdk Google Cloud SDK 140
updates/7/x86_64 CentOS-7 - Updates 695
repolist: 23,653
|
'[Server Story] > Linux' 카테고리의 다른 글
[CentOS] UEFI Kickstart 만들기(Hyper-V 2세대 - PXELinux) (0) | 2018.09.29 |
---|---|
[CentOS] Linux Package Management - RPM (0) | 2018.06.22 |
[CentOS] Linux Package Management - Yum (0) | 2018.06.19 |
[CentOS] Linux 반복 예약작업(스케줄러) - Crontab (1) | 2018.05.28 |
[Linux] LVM 구성 - 디스크 추가 LVM 구성 (3) | 2017.11.14 |