Ossian Story
article thumbnail

[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

 

 

 

 

profile

Ossian Story

@ossians