티스토리 뷰
Linux Local reository 설정 (RHEL , centso , debian)
우주아줌마 2023. 4. 13. 13:20yum , apt 를 통해서 패키지를 설치 하거나 업데이트 를 하게 되는데 패키지들의 위치를 지정해주는 것이 repository 이다.
경로로는 RHEL - /etc/yum.repos.d/ [이름].repo , Debian - /etc/apt/sources.list 이다.
RHEL 은 YUM , DNF 를 사용 하고 debian 계열은 apt , apt-get 을 사용하고...
RHEL 은 역시 RPM 이라는 패키징 을 사용 하고 debian 은 deb 라는 패키지를 사용 하게 된다.
git 같은 형상관리 사이트 들이 워낙 잘되어 있고 curl , wget 같은 바이너리 를 이용해서 웹에서 직접 받아오며 설치를
진행 을 많이 하기 때문에 rpm , deb 를 직접 받아서 설치 하는 일이 많이 줄었고 ...
나도 요즘 가물가물 하다.... rpm , deb 설치 하는 법이.. 그래서 조금 정리 해볼까 하는데
실무에서는 외부 네트워크가 연결이 되지 않고 private 네트워크 를 사용하는 곳이 많아 편리하게 사용할수 있는 툴 들을 설치 하지 못하거나 커널 관리 용 툴들을 설치 하지 않아서 불편 할때 local repository 를 구성해서 설치 , 업데이트 를 하곤한다.
간단히 말하면...
- 파일을 패키지 형태로 제공하여 쉽게 설치 및 관리할 수 있도록 하기 위해 패키지 관리자를 사용한다.
- 패키지 관리자는 각각의 배포판마다 다르지만, 보통 dpkg나 yum 등이 있습니다. 따라서 패키지 관리자가 무엇인지와 어떤 배포판을 사용하는지에 따라서 달라질 수 있습니다.
목차
1. RHEL Local repository
2. debian Local repository
Linux local repository
우선 local repository 를 만드는건 외부 네트워크가 연결이 되지 않아서가 가장 큰 이유이고 또는 외부 연결을 통해 최신 버전 까지 올리 필요가 없을때도 사용 되긴 한다...
이말은 리눅스 설치시 사용했던 DVD , ISO 파일을 이용 한다는 뜻이고 온프레미스 환경 이거나 vm 환경이건 repo 로 활용할 리눅스가 필요하다.
DVD , ISO 를 연결 하고 마운트 해서 임시로 사용 하고 연결을 해제 하거나 마운트 후 파일들을 모두 옮겨서 로컬스토리지 공간에 복사해서 사용 할수 있다.
이 포스트 는 vm 을 이용해서 iso 파일을 마운트 해서 사용 하는 방법으로 진행 한다.
RHEL local repository 설정
VM DVD 에 리눅스 iso 를 연결 하고 dvd 를 마운트한 다음 repository 를 만든 는 순서로 진행 하자.
1. vm 에 ISO 파일 연결
2. ISO 파일 마운트
3. repository 생성
dvd, iso 를 연결 하고 마운트 하려면 sr0 을 폴더에 연결 해주면 되는데
$ ls -al /dev/sr0
## 디바이스 sr0 을 확인하다 sr0 이 dvd장치 이다.
$ mkdir -p /mnt/dvd/
## /mnt/dvd/ 라는 디렉토리로 마운트할 경로를 만들어 준다.
$ mount /dev/sr0 /mnt/dvd/
## /mnt/dvd 에 마운트 한다.
위 과정은 DVD,ISO 파일을 마운트 하는 과정이고 rhel ,debian 모두 동일 하다.
이제 repository 를 설정 하는 방법을 알아보자
repository 를 등록 하는 방법은 손으로다 일일이 다 치는 하드 코딩식에 설저이 있고
yum-config-manager 를 통해서 간단히 넣는 방법이 있고 하다... ( rhcsa 과정 에서 한번 설명 했다.)
위 명령어는 yum-utils 가 설치가 되어 있어야 한다. ( rhel,centos 6버전 이상 부터 가능)
- yum-config-manager 로 등록 하는 방법
$ yum-config-manager --add-repo=file:///mnt/dvd/AppStream --nogpgcheck
# /mnt/dvd/Appstream 경로 지정하고 gpgcheck 를 하지 않는 "mnt_dvd_Appstream" 의 이름에 repo 파일을 생성
$ yum-config-manager --add-repo=file:///mnt/dvd/BaseOS --nogpgcheck --name="BaseOS"
# BaseOS 를 등록
이제 재대로 작동 하는 지 보자~ Appstream 만 등록 했당
그리고 또 한가지 간편한 방법은 createrepo 명령어를 사용 하는 방법이 있는데..
createrepo 가 우선 설치가 되어 있어야 하기 때문에;;;;
$ createrepo /mnt/dvd
# 명령어와 마운트 된 경로만 넣어 주면 간단하다.
## 여기서 에러가 발생 할경우 iso 파일을 읽기전용 으로 마운트 했거나 하는 문제 발생 하는데
### 당연한 것이iso 파일을 dvd로 인식해서 쓰기로 열리지 않았을것이다.
### mount -o rw /dev/sr0 /mnt/dvd 로 읽기 옵션을 넣어도 동일 하다.
## 이럴 때는 그냥 읽기 모드로 마운트 하고 모든파일을 복사 해서 다른 디렉토리에 옮기고 그 디렉토리를 repository 로 사요 하면된다.
하나더 하드 코딩 하는 방법;;;; rhcsa 시험때 유용 할수 있으나..... 뭐 기본기 다지기로 생각하고 외워도 된다 몇줄 안되니까..
1 [mnt_dvd_AppStream]
2 name=created by dnf config-manager from file:///mnt/dvd/AppStream
3 baseurl=file:///mnt/dvd/AppStream
4 enabled=1
5 gpgcheck=0
1번줄은 파일명 , 2번 은 ''name=' description 이다 , 3번은 baseurl= [URL:경로] , 4번은 enabled=1,0 (활성화 여부) 5, gpgcheck=1,0 ( gpgkey 확인여부)
추가로 gpgkey=[경로:key] 가 있는데 이건 내가 받게될 패키지들에 repo 가 변조되지 않고 배포하는 쪽에 관리 된다는 그런 차원..
debian local repository 설정
데비안 계열인 우분투 , 칼리 등은 좀더 쉬운 편인데 레드헷 계열에 createrepo 처럼 dpkg-dev 가 있다.
사용법 은!
$ vi /etc/apt/sources.list
# sources.list 파일을 수정
## 내용
deb file:/mnt/dvd/ stretch main
# stretch 는 배포판 코드네임 이다 내가 쓰고 있는 버전에 이름을 써주면 된다.
# 코드네임 확인 방법
$ lsb_release -c
또다른 방법 은 mirror 를 활용 하는 방법인데... 음. 이건좀 번거러워서;;;
$ sudo apt-get install apt-mirror
$ vi /etc/apt/mirror.list
#$아래 내용을 넣어 준다
######
debmirror::mirror_locally "/mnt/dvd";
debmirror::distro "buster"; # 또는 사용하는 Debian 버전에 맞는 codename 입력
debmirror::arch "amd64"; # 또는 사용하는 아키텍처 입력
clean;
######
$sudo apt-mirror
이 명령어를 실행하면 /var/spool/apt-mirror 디렉토리에 Debian 패키지 정보가 다운로드 되고
이제 /mnt/dvd 디렉토리에는 다운로드된 패키지 정보가 복사된다.
#local repository 등록
##마지막으로 /etc/apt/sources.list 파일을 열어서 아래와 같이 local repository를 등록합니다.
####
deb file:///mnt/dvd buster main
####
마무리
정말 많이 쓸일은 없지만... 가끔 가다 os새로 설치하거나 할때 외부 인터넷 연결 안되면vim 이나 dmidecode 같은거..net-tools 같은거;;
그럴거 필요할때 사용한다....
Linux Local reository 설정 (RHEL , centso , debian) 포스팅은 여기까지~~
다음은 아마 쿠버네티스타... 요즘 공부하는
'System > Linux(Rhel,Ubuntu)' 카테고리의 다른 글
rocky 9 - NFS utils 설정 , ( nfs 설정 , 방화벽 설정 ,오류 해결 방법 ) (4) | 2023.03.23 |
---|---|
(내용수정)리눅스 Admin III 과정(rhel8) - Network bonding 하기(티밍,브리징) (4) | 2023.03.21 |
리눅스 기초 - docker images 만들기 (0) | 2023.03.15 |
Rocky Linux yum update error 해결 방법 (1) | 2023.03.08 |
리눅스 개념 #3 - Linux 배포판 (0) | 2022.11.14 |
- Total
- Today
- Yesterday
- 리눅스
- gzip
- 리눅스본딩
- Grootsecurity
- rhcsa8 시험문제
- rhcsa8 기출문제
- grootboan
- 파이썬실습
- 리눅스 쉘 스크립트
- Rcity 9번
- Rcity
- Rcityboan.com
- rhcsa8 덤프
- PODman기초
- CTF
- Rcity1번
- rhcsa8덤프
- Rcity CTF
- grootsecuriry
- podman
- 7-zip
- 쉘 스크립트 기초
- 라쿤시티
- 주소DB만들기
- rhcsa8
- 리눅스 명령어
- 파이썬기초
- 리눅스 환경변수 지정
- RCity operation 1
- 맨탈훈련
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |