들어가며
- 운영 중인 서버에 신규 패키지를 설치해야 하는 경우가 있습니다. 이때 대다수는 외부 망과 차단된 환경이기에 패키지를 따로 받아서 설치해야 합니다.
- 이 과정은 온라인 환경의 서버에서 패키지를 다운 받아 오프라인 서버로 옮긴 후 설치합니다.
따라서 온라인 환경의 서버가 있어야 하고 해당 서버는 minimal 버전으로 설치되지 않은 경우 의존성 패키지가 일부 누락될 수 있습니다.
리눅스 배포 이미지 종류는 크게 4가지로 구분됩니다.
1. Minimal : 리눅스 시스템에 필요한 최소한의 패키지만 포함되어 있는 이미지 입니다.
2. DVD : Minimal + 일반 패키지, 설치 중 패키지 선택이 가능합니다.
3. Netinstall : 네트워크 설치를 위한 최소의 이미지 입니다.
4. Everything : 모든 기능의 패키지를 포함한 이미지 입니다.
내용
스파클링소다가 사용하는 리눅스 배포 버전(ubuntu16.04/centos7) 기준으로 설명합니다.
Devian 계열 (ubuntu)
- 온라인 환경에서 패키지 설치를 위한 준비합니다.
$ apt-get update
설치하려는 패키지 파일 및 의존성 파일을 다운 받습니다.
$ apt-get install --download-only <패키지명> ex) apt-get install -download-only nfs-common
다운 받은 파일들은 /var/cache/apt/archives 디렉토리 하위에 위치하게 됩니다.
$ ll /var/cache/apt/archives
다운 받은 패키지를 오프라인 환경의 서버로 옮깁니다.
옮긴 서버의 .deb 파일들이 위치한 경로에서 패키지 설치를 진행합니다.
$ dpkg --force-all -i <.deb 파일들이 위치한 경로>/*.deb
Rhel 계열 (centos)
- 온라인 환경에서 패키지 설치를 위한 준비합니다.
$ yum update && yum -y install yum-utils
설치하려는 패키지의 의존성 정보를 확인합니다.
$ yum deplist <패키지명> ex) yum deplist nfs-utils
설치할 패키지와 의존성 패키지를 다운 받습니다. (실제 설치는 되지 않습니다.)
$ yumdownloader --downloadonly --resolve --downloaddir=/test/nfs-package <패키지명> - downloadonly : 설치 없이 파일 다운만 받는 옵션입니다. - resolve : 의존성 있는 패키지도 같이 다운합니다. - downloaddir : 다운받는 파일의 저장되는 위치를 지정합니다. ex) yumdownloader --downloadonly --resolve --downloaddir=/test/mypackage nfs-utils
다운 받은 .rpm 파일들을 오프라인 서버로 옮깁니다.
패키지를 설치합니다.
$ rpm -ivh <rpm 파일들이 위치한 디렉토리 경로>/* ex) rpm -ivh /test/nfs-utils/*
마무리
- 설치하려는 패키지를 온라인 환경에서 받을 때 minimal 버전을 권장합니다.
- 온라인 환경 서버에 패키지가 설치 되어 있다면 삭제 후 위 과정을 다시 진행합니다.
이미 설치된 패키지 삭제하는 방법 - devian 계열 $ dpkg --list | grep <패키지명> $ dpkg --purge <패키지명> - rhel 계열 $ rpm -qa |grep <패키지명> $ rpm -e <rpm -qa 로 출력된 리스트에 해당하는 모든 패키지> ex) vim 패키지 삭제 $ rpm -qa |grep vim $ rpm -e vim-filesystem-7.4.629-8.el7_9.x86_64 $ rpm -e vim-common-7.4.629-8.el7_9.x86_64 $ rpm -e vim-minimal-7.4.160-5.el7.x86_64 $ rpm -e vim-enhanced-7.4.629-8.el7_9.x86_64
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.