들어가며
- 운영 중인 서버에 신규 패키지를 설치해야 하는 경우가 있습니다. 이때 대다수는 외부 망과 차단된 환경이기에 패키지를 따로 받아서 설치해야 합니다.
- 이 과정은 온라인 환경의 서버에서 패키지를 다운 받아 오프라인 서버로 옮긴 후 설치합니다. 따라서 온라인 환경의 서버가 있어야 하고 해당 서버는 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 ![apt—get install Reading package lists... Done Bui Iding dependency tree Reading state information... Done ——downtoad—onty nfs—common The following additional packages will be installed: dmsetup file keyutils krb5—10ca1es Iibcap2 Iibdevmapper1.02.1 libexpatl til Iibheimnttmo—heimdal Iibk5crypt03 tibkeyutitsl Iibkrb5—3 tibkrb5supportO Iibnfsidmap2 Iibpython3—std1ib Iibpython3.6—minima1 Iibpython3.6—std1ib libreadtine7 libroken18—heimdat Iibsas12—2 Iibsas12—1 Iibti rpc1 Iibwindo—heimdat IibwrapO mime—support python3 python3—minima1 python3.6 python3.6—minima1 readiine—common rpcbind Suggested packages : krb5—doc krb5—user I python3—tk python3—venv python3.6—venv python3.6—doc binutits binfmt—support readiine—doc The following NEW packages wilt be installed: dmsetup file keyutils krb5—10ca1es Iibcap2 Iibdevmapper1.02.1 libexpatl til Iibheimnttmo—heimdal Iibk5crypt03 tibkeyutitsl Iibkrb5—3 tibkrb5supportO Iibnfsidmap2 Iibpython3—std1ib Iibpython3.6—minima1 Iibpython3.6—std1ib libreadtine7 libroken18—heimdat Iibsas12—2 Iibsas12—1 Iibti rpc1 tibwindo—heimdat tibwrapO mime—support nfs—common python3 python3—minima1 python3.6 python3.6—minima1 readiine—coml O upgraded, 49 newly installed, O to remove and 2 not upgraded. Need to get 9137 kB of archives. After this operation, 43.0 MB of additional disk space wilt be used. Do you want to continue? [Y/n] y Get: 1 Get: 2 Get: 3 Get: 4 Get: 5 Get: 6 Get •.7 http. • / / archi ve.ubuntu.com/ubuntu http. •//archive.ubuntu.com/ubuntu http. •//archive.ubuntu.com/ubuntu http. •//archive.ubuntu.com/ubuntu http. • / / archi ve.ubuntu.com/ubuntu http. •//archive.ubuntu.com/ubuntu http. • / / archi ve.ubuntu.com/ubuntu bionic—updates/main amd64 tibsstl.l amd64 1.1. [1302 kB] bionic—updates/main amd64 Iibpython3.6—minima1 amd64 [533 kB] bionic—updates/main amd64 libexpatl amd64 2.2.5—3ubuntuO.7 [82.6 kB] bionic—updates/main amd64 python3.6—minima1 amd64 [1611 kB] bionic—updates/main amd64 python3—minima1 amd64 3.6.7—1—18.04 [23.7 kB] bionic/main amd64 mime—support alt 3.60ubuntu1 [30.1 kB] bionic/main amd64 Iibmpdec2 amd64 2.4.2—1ubuntu1 [84.1 kB]](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/150000903181/original/gZPhFNGwYBTYQyW1twvG2fFigaJGkSUgsg.png?1663569000)  
- 다운 받은 파일들은 /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/* ![[root@hdcd—master—133 nfs—uti Is] # Updating / installing... .5-32. e17 2: libevent—2. O. 21—4. et7 3: Iibcollection—0 7 0 . . -32.e17 4 : I-i bbasi cobj ects—O. 1. 1-32. et7 5: bverto—t-i bevent—O. 2.5-4. eu 6: tcp_wrappers—7.6—77. et7 7 et7 8 •.quota-1•.4.01-1g.et7 Is—0 2 1 . . -32.e17 . . -32.e17 10: 3 1 11 : gssproxy—O. 7.0—30. et7_g 12: I-i bnfsidmap—O. 25—19. et7 13: keyuti Is—I. 5.8—3. et7 14 :nfs-uti Is-I : 1.3.0-0.68. e17.2 rpm —ivh /home/chun/test/nfs—uti is/* [100%] [ 14%] [ 21%] [ 29%] [ 36%] [ 43%] [ 50%] [ 57%] 64%] [ 71%] [ 79%] [ 86%] [100%]](https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/150000903238/original/qsSHvWb0JSjb0DXeDWfpe93TOYZ-4O2J2Q.png?1663569346)  
마무리
- 설치하려는 패키지를 온라인 환경에서 받을 때 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
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.