본문 바로가기
IT/리눅스 이론

리눅스 외부 인터넷 없이 레포지토리 구성하기 - linux repository

by 꾸꾸웍스 2022. 5. 20.
반응형

 


리눅스 외부 인터넷 없이 레포지토리 구성하기 - linux repository

 


 

 

 

 

 

레포지토리를 구성하는 2가지 방법

리눅스 서버를 처음 구성하다 보면 아주 기본적인 패키지들만 설치가 되어있습니다. 원하는 명령어나 원하는 프로그램을 설치하기 위해서는 상호 간에 호환되는 패키지들이 필요하거나 필수 패키지들을 설치해야 되는 조건이 생깁니다. 따라서 레포지토리는 패키지의 저장소라고 불리는데 원하는 명령어 및 패키지를 설치할 때 이 레포지토리 저장소에서 패키지를 불러와 설치를 합니다.

 

즉, 패키지를 설치할 때는 외부 인터넷이 되는 환경에서는 패키지를 설치할때 외부로 부터 패키지 소스를 받아 다운받거나 외부인터넷이 되지 않는 곳에서는 iso 이미지 파일을 장치로 마운트하여 저장소를 만든 후 패키지를 다운로드합니다

 

 

 

 

리눅스 레포지토리 다운로드(linux repository download)

 

먼저, 외부 인터넷이 되는 환경에서 iso 파일을 받아 리눅스 서버에 옮기는 작업을 수행해야 됩니다. 아래 사이트는 centos 사이트에서 iso 파일을 받을 수 있는 경로입니다. 아래 사진 방법대로 원하는 iso 파일을 다운로드하시면 됩니다

 

↓↓ 레포지토리 다운로드 사이트 ↓↓

 

https://www.centos.org/download/

 

Download

Home Download Architectures Packages Others x86_64 RPMs Cloud | Containers | Vagrant ARM64 (aarch64) RPMs Cloud | Containers | Vagrant IBM Power BE (ppc64) RPMs Cloud | Containers | Vagrant IBM Power (ppc64le) RPMs Cloud | Containers | Vagrant ARM32 (armhf

www.centos.org

 

 

 

 



 

everything는 모든 패키지 파일을 모아놨다고 생각하시면 됩니다. 그만큼 파일의 용량이 제일 많습니다. 최소한의 필수 패키지를 설치하실 분들은 minimal로 다운로드하셔도 됩니다

 

 

 

리눅스 레포지토리(repository) 디렉토리 만들기

 

원하는 iso 파일을 다운로드 후에 리눅스 서버에 iso 파일을 업로드를 해주는 작업이 필요합니다. 사용하는 환경에 맞게 usb를 이용해서 리눅스 서버에 파일을 옮기거나 각자 방법에 맞게 리눅스 서버에 iso 파일을 업로드해줍니다.

 

(리눅스 서버에 usb를 이용하는 방법은 아래 링크에 자세한 설명이 나와있습니다)

 

↓↓링크↓↓

 

https://rhrhth23.tistory.com/62

 

리눅스 서버에 USB 연결하여 사용하기 - 리눅스 마스터 한걸음

리눅스 서버에 USB 연결하여 사용하기 - 리눅스 마스터 한걸음 리눅스 usb와 윈도우 usb의 차이점 윈도우 서버는 usb를 연결하면 자동으로 인식이 되어 사용이 가능하지만 리눅스 소프트웨어에서

rhrhth23.tistory.com

 

특정 디렉토리 만들기

iso 파일을 리눅스 서버에 옮기는 작업이 끝났다면 iso 파일을 작업할 디렉토리를 생성해야 됩니다. 원하는 경로를 지정하셔도 되지만 영구적으로 사용을 한다면 경로지정을 확실히 정하신 다음에 진행하시는 것을 추천드립니다. 저는 /var/repos/redhat 경로로 만들고 iso 파일을 이 경로로 옮기겠습니다

 

### 디렉토리 생성
root@server # mkdir -vp /var/repos/redhat
mkdir: created directory '/var/repos'
mkdir: created directory '/var/repos/redhat'

### iso 파일을 새로 만든 디렉토리로 이동
root@server # mv /home/CentOS-7-x86_64-Everything-2009.iso /var/repos/redhat/.

### 새로만든 디렉토리에 파일이 옮겨졌나 확인
root@server # ls -l /var/repos/redhat
-rw-r--r-- 1 root root 10200547328 May  6 11:04 CentOS-7-x86_64-Everything-2009.iso

 

 

 


 

 


 

 

 

리눅스 레포지토리(repository) iso 파일 마운트 작업

 

iso 파일을 리눅스 서버에 옮긴 후 마운트 할 디렉토리를 생성을 해주었다면 mount 명령어의 -o loop옵션을 사용해서 iso 파일을 마운트 해주면 사용하지 않는 장치를 찾아 iso 이미지 파일을 하나의 장치처럼 사용하도록 설정합니다

 

(df -h 명령어의 결과 중 나머지 값은 생략하였습니다)

root@server # mount -o loop CentOS-7-x86_64-Everything-2009.iso /var/repos/redhat
mount: /dev/loop0 is write-protected, mounting read-only

root@server # df -h
Filesystem	Size	Used	Avail	Use%	Mounted on
.....
/dev/loop0	9.5G	9.5G	0	100%	/var/repos/redhat

 

 

 

리눅스 레포지토리(repository) 설정파일 작업

 

/etc/yum.repo.d

위 디렉토리에는 yum 명령어를 사용할 때 위 디렉토리에 있는 파일을 참조하여 경로를 읽어 파일 다운로드를 시도합니다. 따라서 이전에 iso 파일을 하나의 장치처럼 마운트 작업을 해 주었으니 /var/repos/redhat 경로를 읽을 수 있게 아래처럼 repo 파일을 생성해줍니다.

 

root@server # cd /etc/yum.repos.d

root@server # cat > local.repo
[local-repo]
name=Local Repository
baseurl=file:///var/repos/redhat
enabled=1
gpgcheck=0

root@server # cat -n local.repo
	1	[local-repo]
	2	name=Local Repository
	3	baseurl=file:///var/repos/redhat
	4	enabled=1
	5	gpgcheck=0

 

 

 

리눅스 레포지토리(repository) 설정 완료 후 yum 명령어 실행

 

레포지토리 설정 구성을 끝낸 후 yum 명령어를 입력해보면 local-repo가 보입니다. 총 repolist에서 0이 아닌 값이 나오면 설치할 수 있는 리스트들이 존재하는 것입니다.

root@server # yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
local-repo                                                                                   | 3.6 kB  00:00:00
(1/2): local-repo/group_gz                                                                   | 153 kB  00:00:00
(2/2): local-repo/primary_db                                                                 | 6.1 MB  00:00:00
repo id                                             repo name                                                 status
local-repo                                          Local Repository                                          10,072
repolist: 10,072

 

실제로 패키지를 설치해보면 레포지토리가 구성이 되어 설치가 되는 것을 볼 수 있습니다.

root@server # yum install samba.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package samba.x86_64 0:4.10.16-5.el7 will be installed
--> Processing Dependency: samba-libs = 4.10.16-5.el7 for package: samba-4.10.16-5.el7.x86_64
--> Processing Dependency: samba-common-tools = 4.10.16-5.el7 for package: samba-4.10.16-5.el7.x86_64
--> Processing Dependency: samba-common-libs = 4.10.16-5.el7 for package: samba-4.10.16-5.el7.x86_64
--> Processing Dependency: samba-common = 4.10.16-5.el7 for package: samba-4.10.16-5.el7.x86_64
--> Processing Dependency: samba-common = 4.10.16-5.el7 for package: samba-4.10.16-5.el7.x86_64
--> Processing Dependency: samba-client-libs = 4.10.16-5.el7 for package: samba-4.10.16-5.el7.x86_64
--> Processing Dependency: libwbclient = 4.10.16-5.el7 for package: samba-4.10.16-5.el7.x86_64
--> Processing Dependency: libxattr-tdb-samba4.so(SAMBA_4.10.16)(64bit) for package: samba-4.10.16-5.el7.x86_64

....


Transaction Summary
====================================================================================================================
Install  1 Package (+18 Dependent packages)

Total download size: 8.9 M
Installed size: 29 M
Is this ok [y/d/N]:

 

 


 

반응형

 


 

반응형
그리드형

댓글