본문 바로가기

인프라 노트

인터넷 없을 때 서비스 패키지 설치하는 방법

목차
1. 인터넷 되는 리눅스 서버에서 사전 준비
2. 다운로드한 패키지를 오프라인 서버로 복사
3. 설치 도중 의존성 에러가 발생하는 경우 해결 방법
4. 주의사항

 

개요

 

• 보안이 중요한 고객사에서 시스템 엔지니어가 필요한 서비스를 설치해야하는 경우 인터넷이 안되는 환경이 많다.

• 필요한 서비스 패키지를 미리 가지고 들어가야할 때 패키지 파일을 준비하는 방법부터 설명하겠다.

• 인터넷이 안되면 의존성 파일을 알 수 없기 때문에 아래 가이드가 필요하다.

 

방법

 

인터넷 되는 리눅스 서버에서 사전 준비

※ Ubuntu 22.04 서버를 예시로 들겠음.

※ test 서비스 패키지는 mysql-server 로 하겠음.

• [sudo apt install apt-rdepends] 로 의존성 패키지 툴 설치

 

• 의존성 [.deb] 를 받기 위한 경로 생성

※ 나는 /data/psg5678/mysql-debs 경로에서 진행하겠다.

• [apt-rdepends mysql-server | grep -v "^ " | grep -v "< " > packages.txt] 입력 후 packages.txt 파일 생성 확인 

 

• [xargs -a packages.txt apt download] 실행

※ 만약 에러가 발생하면 packages.txt 파일에서 문제가 되는 패키지 삭제 후 진행

 

• 설치가 완료된 후 다운 받은 [.deb] 파일들 확인

 

[*.deb] 파일 하나로 묶기 : [tar -zcvf mysql-server.deb.tar.gz ./*.deb] 실행

 

[mysql-server.deb.tar.gz] 파일을 USB로 복사 또는 Host 서버에 저장한다.

※ 나는 WinSCP 프로그램으로 host 서버에 저장할 것이다.

   ∘ WinSCP 를 이용한 내려받기 는 아래 절차 진행

 

• Host 서버에서 파일 확인

 

 

다운로드한 패키지를 오프라인 서버로 복사

• WinSCP 로 오프라인 서버 접속 후 설치할 경로에 파일 이동

 

• 오프라인 서버에서 복사한 디렉토리로 이동 후 [tar -zxvf mysql-server.deb.tar.gz] 으로 압축 해제

 

• [dpkg -i *.deb] 로 설치 시작

 

• 정상 설치 되는 경우 아래와 같이 서비스 자동 실행됨

※ 만약 에러가 발생하는 경우 다음 목차 과정을 진행한다.

 

[systemctl status mysql] 로 서비스 확인

 

 

설치 도중 의존성 에러가 발생하는 경우 해결 방법

• [dpkg -i *.deb] 설치 도중 아래와 같은 에러가 발생했다고 가정하자.

 

• perl 패키지 설치가 안되어 mysql-server-8.0, mysql-server 설치까지 문제가 있는 것으로 해석되므로 perl 의 의존성 패키지도 위와 같은 방식으로 deb 파일들을 인터넷 되는 서버에서 다운받는다.

• [apt-rdepends perl | grep -v "^ " | grep -v "< " > packages.txt] 로 perl 의존성 관련 deb 파일 다운

 

• [xargs -a packages.txt apt download] 실행 후 위와 같은 절차 진행

 

• WinSCP로 perl.deb.tar.gz 파일 옮기기

 

• 오프라인 서버에서 perl.deb.tar.gz 압축 해제

 

[dpkg -i *.deb] 다시 실행

 

[ps -ef | grep mysql] 또는 [systemctl status mysql] 로 서비스 확인

 

 

주의사항

 

• 위와 같이 의존성 에러가 언제든 발생할 수 있으므로 인터넷이 되는 환경에서 설치해야할 패키지에 대해 충분히 테스트를 하고 준비해야한다.

• 서버 상황에 따라 발생하는 의존성 에러가 다를 수 있으므로 테스트 하는 서버는 basic 환경의 서버에서 테스트하는 것을 추천한다.

 

 

끝.