YUM 리포지토리 설정 및 미러 사용
Linux 시스템에서 소프트웨어를 효율적으로 관리하기 위해 YUM(Yellowdog Updater, Modified)은 필수적인 도구입니다. 기본 제공되는 공식 리포지토리를 사용하는 대신, 더 빠른 다운로드 속도를 위해 국내 미러를 활용할 수 있습니다.
阿里云(Aliyun) 미러 적용 방법
Aliyun은 CentOS 및 EPEL(Epel Package Ecosystem) 리포지토리를 위한 안정적인 국내 미러를 제공합니다. 설정 절차는 다음과 같습니다.
EPEL 리포지토리 백업
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.bak
Aliyun 기반 EPEL 리포지토리 다운로드
RHEL/CentOS 버전에 따라 적절한 파일을 선택합니다:
- CentOS 7:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo - CentOS 6:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo - CentOS 5:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-5.repo
기본 OS 리포지토리 교체
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
외부 소프트웨어 리포지토리 추가 예시
Nginx 저장소 등록
[root@host ~]# cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx-stable]
name=Nginx Stable Repository
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
EOF
MySQL Community 저장소 설치
yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm
Zabbix 저장소 수동 등록
rpm -ivh http://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm
사용자 정의 YUM 서버 구축
대규모 환경에서는 외부 네트워크 접근 없이 내부 네트워크에서 패키지를 배포할 수 있는 로컬 YUM 서버가 유리합니다.
FTP 기반 YUM 저장소 준비
yum -y install vsftpd
mkdir -p /var/ftp/{centos7u2,addons/{nginx,zabbix}}
systemctl enable vsftpd --now
방화벽 및 SELinux 설정
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/sysconfig/selinux
ISO 이미지 마운트
mount -o loop /home/CentOS-7-x86_64-DVD-1908.iso /var/ftp/centos7u2
echo "/usr/bin/mount -o loop /home/CentOS-7-x86_64-DVD-1908.iso /var/ftp/centos7u2" >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
추가 패키지 저장소 생성
Nginx와 같은 외부 패키지를 로컬 저장소에 포함시키기 위해 캐시된 RPM을 복사하고 메타데이터를 재생성합니다.
YUM 캐시 활성화
sed -i 's/^keepcache=.*/keepcache=1/' /etc/yum.conf
yum clean all
패키지 설치 및 캐시 복사
yum -y install nginx
find /var/cache/yum -name "*.rpm" -exec cp {} /var/ftp/addons/nginx/ \;
createrepo를 이용한 저장소 메타데이터 생성
yum -y install createrepo
createrepo /var/ftp/addons/nginx
새로운 패키지가 추가될 경우 동일한 명령으로 메타데이터를 갱신하면 됩니다.
클라이언트에서 사용자 정의 저장소 사용
내부 클라이언트는 FTP 기반 저장소를 가리키도록 설정할 수 있습니다.
기본 OS 저장소 설정
[root@client ~]# cat > /etc/yum.repos.d/local-centos.repo << 'EOF'
[local-os]
name=Local CentOS 7 Base
baseurl=ftp://192.168.1.100/centos7u2
enabled=1
gpgcheck=0
EOF
추가 소프트웨어 저장소 등록
[root@client ~]# cat > /etc/yum.repos.d/local-nginx.repo << 'EOF'
[local-nginx]
name=Local Nginx Repository
baseurl=ftp://192.168.1.100/addons/nginx
enabled=1
gpgcheck=0
EOF
패키지 설치 테스트
yum -y install nginx
大规模 배포 자동화 방안
- Shell 스크립트를 통한 일괄 배포
- Ansible, SaltStack, Puppet 등의 구성 관리 도구 활용
GPG 서명 검증 관리
보안을 강화하기 위해 YUM은 패키지의 디지털 서명을 검증할 수 있습니다.
공개 키 수동 등록
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
리포지토리 파일에서 GPG 검증 활성화
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
서명 검증 일시 비활성화
테스트 환경에서는 아래 옵션으로 검사를 건너뛸 수 있습니다.
yum --nogpgcheck install package-name
로컬 미디어 기반 저장소 사용
인터넷 연결이 제한된 환경에서는 설치 DVD를 직접 마운트하여 로컬 저장소로 활용할 수 있습니다.
DVD 또는 ISO 마운트
mount /dev/cdrom /media
# 또는 ISO 파일 마운트
mount -o loop CentOS-7-DVD.iso /media
로컬 저장소 정의
[dvd-repo]
name=CentOS Local DVD
baseurl=file:///media
enabled=1
gpgcheck=0
YUM을 통한 패키지 관리 명령어
저장소 정보 확인
yum clean all
yum makecache
yum repolist
패키지 설치 및 업그레이드
yum list mariadb-server
yum install mariadb-server
yum reinstall mariadb-server
yum update samba
yum update # 전체 시스템 업데이트
검색 및 정보 조회
yum search keyword
yum info httpd
yum list installed | grep ssh
yum provides */vncviewer
그룹 기반 설치 및 제거
yum grouplist
yum groupinstall "Development Tools"
yum groupremove "PostgreSQL Database Server"
패키지 삭제
yum remove httpd
yum autoremove # 사용하지 않는 종속성 제거