일반적으로 리눅스 컴퓨터에서 새 프로그램을 설치할 경우, yum을 이용하는 것이 간단하고도 빠른 방법이 되겠다. 예를 들어, Octave를 설치한다면 다음과 같이 입력하면 된다.
[root@localhost ~]# yum install octave
그러나, 자신이 쓰고 있는 리눅스 배포판이 Centos (Community ENTerprise Operating System) 인 경우, 아래와 같은 메시지만 보게 되고, 설치가 되지 않는다.
[root@localhost ~]# yum install octave
Loading "priorities" plugin
Loading "fastestmirror" plugin
Determining fastest mirrors
0 packages excluded due to repository priority protections
Loading "priorities" plugin
Loading "fastestmirror" plugin
Determining fastest mirrors
0 packages excluded due to repository priority protections
이러한 이유는 Octave 프로그램이 RHEL (Red Hat Enterprise Linux) 에 포함되지 않으면서, 자동적으로 Centos 에서도 배제되었기 때문이다. 하지만, 다행히도 EPEL (Extra Packages for Enterprise Linux) 로부터 Octave를 내려받을 수 있다. 이를 위해서, 우선 yum의 저장소 목록(repository list)에 EPEL을 추가하여야 한다. 1 2
현 저장소 목록에 등록되어 있는 저장소(repository)들을 확인해 보자.
[root@localhost ~]# yum repolist
Loading "priorities" plugin
Loading "fastestmirror" plugin
repo id repo name status
addons CentOS-5 - Addons enabled
base CentOS-5 - Base enabled
extras CentOS-5 - Extras enabled
updates CentOS-5 - Updates enabled
Loading "priorities" plugin
Loading "fastestmirror" plugin
repo id repo name status
addons CentOS-5 - Addons enabled
base CentOS-5 - Base enabled
extras CentOS-5 - Extras enabled
updates CentOS-5 - Updates enabled
그리고, 아래의 명령어로 yum 의 repo list 에 EPEL repository를 추가한다.
[root@localhost ~]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
Retrieving http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
warning: /var/tmp/rpm-xfer.n5lIiD: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]
Retrieving http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
warning: /var/tmp/rpm-xfer.n5lIiD: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]
이제 다시금 yum의 repo list 를 확인해 보면 epel 이란 ID로 EPEL repository가 추가되었음을 알 수 있다.
[root@localhost ~]# yum repolist
Loading "priorities" plugin
Loading "fastestmirror" plugin
repo id repo name status
addons CentOS-5 - Addons enabled
base CentOS-5 - Base enabled
epel Extra Packages for Enterprise Linux 5 - enabled
extras CentOS-5 - Extras enabled
updates CentOS-5 - Updates enabled
Loading "priorities" plugin
Loading "fastestmirror" plugin
repo id repo name status
addons CentOS-5 - Addons enabled
base CentOS-5 - Base enabled
epel Extra Packages for Enterprise Linux 5 - enabled
extras CentOS-5 - Extras enabled
updates CentOS-5 - Updates enabled
실제로 하드 공간을 살펴보면, /etc/yum.repos.d 디렉토리 아래에 기존에 있던 CentOS-Base.repo 파일 외에 새로 epel.repo 생성되었음을 확인할 수 있다.
[root@localhost ~]# cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 5 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
...
[epel]
name=Extra Packages for Enterprise Linux 5 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
...
이제 yum을 이용해서 Octave를 설치하자. yum install octave라고 아래와 같이 명령어를 친 후, Is this ok [y/N]를 보면 y를 입력하여 설치를 진행한다.
[root@meso src]# yum install octave
Loading "priorities" plugin
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
0 packages excluded due to repository priority protections
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package octave.i386 6:3.0.5-1.el5 set to be updated
--> Processing Dependency: libglpk.so.0 for package: octave
--> Processing Dependency: libcolamd.so.2 for package: octave
--> Processing Dependency: libccolamd.so.2 for package: octave
--> Processing Dependency: libcholmod.so.1 for package: octave
--> Processing Dependency: libhdf5.so.0 for package: octave
--> Processing Dependency: libfftw3.so.3 for package: octave
--> Processing Dependency: libqhull.so.5 for package: octave
--> Processing Dependency: libcamd.so.2 for package: octave
--> Processing Dependency: libumfpack.so.5 for package: octave
--> Processing Dependency: libamd.so.2 for package: octave
--> Processing Dependency: libcxsparse.so.2 for package: octave
--> Running transaction check
---> Package fftw3.i386 0:3.2.2-3.el5 set to be updated
---> Package glpk.i386 0:4.20-2.el5 set to be updated
---> Package suitesparse.i386 0:3.1.0-1.el5 set to be updated
---> Package hdf5.i386 0:1.6.10-1.el5 set to be updated
---> Package qhull.i386 0:2003.1-8.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
octave i386 6:3.0.5-1.el5 epel 12 M
Installing for dependencies:
fftw3 i386 3.2.2-3.el5 epel 1.3 M
glpk i386 4.20-2.el5 epel 737 k
hdf5 i386 1.6.10-1.el5 epel 4.6 M
qhull i386 2003.1-8.el5 epel 380 k
suitesparse i386 3.1.0-1.el5 epel 931 k
Transaction Summary
=============================================================================
Install 6 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 20 M
Is this ok [y/N]:
Loading "priorities" plugin
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
0 packages excluded due to repository priority protections
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package octave.i386 6:3.0.5-1.el5 set to be updated
--> Processing Dependency: libglpk.so.0 for package: octave
--> Processing Dependency: libcolamd.so.2 for package: octave
--> Processing Dependency: libccolamd.so.2 for package: octave
--> Processing Dependency: libcholmod.so.1 for package: octave
--> Processing Dependency: libhdf5.so.0 for package: octave
--> Processing Dependency: libfftw3.so.3 for package: octave
--> Processing Dependency: libqhull.so.5 for package: octave
--> Processing Dependency: libcamd.so.2 for package: octave
--> Processing Dependency: libumfpack.so.5 for package: octave
--> Processing Dependency: libamd.so.2 for package: octave
--> Processing Dependency: libcxsparse.so.2 for package: octave
--> Running transaction check
---> Package fftw3.i386 0:3.2.2-3.el5 set to be updated
---> Package glpk.i386 0:4.20-2.el5 set to be updated
---> Package suitesparse.i386 0:3.1.0-1.el5 set to be updated
---> Package hdf5.i386 0:1.6.10-1.el5 set to be updated
---> Package qhull.i386 0:2003.1-8.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
octave i386 6:3.0.5-1.el5 epel 12 M
Installing for dependencies:
fftw3 i386 3.2.2-3.el5 epel 1.3 M
glpk i386 4.20-2.el5 epel 737 k
hdf5 i386 1.6.10-1.el5 epel 4.6 M
qhull i386 2003.1-8.el5 epel 380 k
suitesparse i386 3.1.0-1.el5 epel 931 k
Transaction Summary
=============================================================================
Install 6 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 20 M
Is this ok [y/N]:
옥타브 설치를 완료하였다.