이번 포스팅은 Rocky Linux 9 CentOS-7-x86 환경에서 테스트를 하고
패키지 도구는 dnf를 주로 사용하니 참고해주세요
현재 제 cd-rom에는 C:\02_ISO\CentOS-7-x86_64-Minimal-2009.iso 파일이 있습니다.
이번 포스팅 에서는 sr0을 마운트 해서 CentOS의 패키지를 가져온 뒤
Local 이라는 새로운 repository를 만들어볼겁니다.
우선 새로운 repository를 만들기 위해서는 createrepo 라는 패키지를 설치해야 합니다.
y 옵션을 붙여서 설치하겠냐는 질문에 자동으로 yes 대답을 하도록 합시다.
dnf install -y createrepo
dnf를 사용하니 의존성 패키지도 같이 설치된 것을 볼 수 있습니다.
이 패키지는 나중에 사용할겁니다.
1. 기존 repository 확인 및 삭제(백업)
dnf repollist
활성화된 repository가 3개 있습니다.
이 repository를 백업해두고 Local 이라는 repository를 새로 만들 계획입니다.
루트 디렉토리에 backup 이라는 디렉토리를 만들어서 여기에 백업을 해둡니다.
mkdir backup
mv /etc/yum.repos.d/* /backup/
이제 기존 repository는 원래 디렉토리에서 사라졌습니다.
repository 정보가 들어있던 파일이 사라졌으니 이제 패키지 관리 도구를 사용할 수 없게 됐습니다.
다시 패키지 관리 도구를 사용할 수 있도록 CentOS를 마운트 해볼까요?
2. 디스크 마운트
이전 포스팅에서 배웠듯이 디스크를 사용하기 위해서는 마운트 과정이 꼭 필요하고,
마운트란 디렉토리에 디스크를 연결하는 작업을 말합니다.
루트 디렉토리에 cd 라는 디렉토리를 만들어서 여기에 마운트를 합니다.
mkdir /cd
mount /dev/sr0 /cd
cd 디렉토리에 Packages 라는 패키지 저장소가 보입니다.
이 디렉토리를 가져와서 Local repository의 패키지 저장소로 사용할 겁니다.
3. CentOS repository 설정
우선 루트 디렉토리에 repo 디렉토리를 만들고 Package 디렉토리에 있는 모든 파일을 옮깁니다.
그냥 cp /cd/Packages/* /repo 명령어를 사용해도 되지만
파일 양이 많기 떼문에 백그라운드에서 실행되도록 &를 추가해줬습니다.
mkdir /repo
cp /cd/Packages/* /repo &
파일을 옮겼으면 본적적으로 Local repository를 만들어봅시다.
repository 저장소 /etc/yum.repos.d 경로에 local.repo 파일을 만들어서 repository 설정을 해줍니다.
vi /etc/yum.repos.d/local.repo
Local repository의 이름은 Locak_Repository고
패키지가 있는 곳은 /repo 디렉토리고 활성화 상태로 둘겁니다.
gpgcheck는 요청하지 않습니다.
설정을 완료하고 /etc/yum.repos.d 디렉토리를 확인해 봅시다.
파일 설정을 하는 동안 백그라운드로 실행시켜둔 copy도 다 됐고,
local.repo 파일도 잘 확인됩니다.
4. CentOS repository 생성
드디어 createrepo 명령어를 사용할 때가 왔습니다.
/repo 디렉토리를 repository 로 만들고 repolist를 확인해봅시다.
createrepo /repo
dnf repolist
repository 생성 완료입니다.
패키지 관리 도구도 잘 작동하는지 확인하기 위해 아무 패키지나 설치해봤습니다.
repository 생성 전까지만 해도 동작하지 않았던 dnf가 잘 되는걸 볼 수 있습니다.
그리고 처음에 createrepo를 설치했을 때와 차이점이 보이시나요?
사용된 repository 이름이 다릅니다.
zip 패키지는 직접 만든 local repsitory에서 설지된 걸 확인할 수 있었습니다.
+ 복구
실습을 끝냈으니 원리 상태로 되돌립니다.
마운트를 해제하고
복사해둔 CentOS Package 와 local repository를 삭제하고
백업해둔 원래 repository 를 돌려놓는 작업을 하고 마치겠습니다.
umount /cd
mv /backup/* /etc/yum.repos.d/
rm -rf /cd /repo /backup
[K-Digital Training, 애티버스러닝 교육 내용을 정리한 포스팅입니다.]
'Linux > 패키지 관리' 카테고리의 다른 글
리눅스 패키지 관리 ②리눅스 repository 설정하기(repolist) (0) | 2023.03.17 |
---|---|
리눅스 패키지 관리 ①dnf, rpm, binary 차이 비교 (1) | 2023.03.15 |