리눅스를 사용하면 보통 리눅스 종류에 따라 yum이나 apt같은 명령어를 사용하여
pkg를 설치, 삭제한다. 이게 불가능한 경우에는 설치 패키지를 직접 만들어서 수동으로 설치하는 경우도 많지만
그놈의 의존성 때문에 여간 불편한게 아니다.
이러한 경우를 해결하기 위해 local repository를 만들어 사용한다.
1. local repository란?
일반적인 repository란 내가 yum을 이용할 때 해당 패키지들이 저장되어 있는 주소라고 생각하면 된다.
그럼 이러한 repository에 대한 정보는 어디서 확인 가능한가?
위처럼 /etc/yum.repos.d 경로에 이런식으로 저장되어 있다.
기본적으로 os를 설치하면 생성되는 파일들이라고 보면 된다.
하나 정도만 안에 내용을 살펴보면,
[appstream] name=Rocky Linux $releasever - AppStream mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStream-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/os/ gpgcheck=1 enabled=0 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial |
이런식으로 되어 있고,
그중 중요한 부분은
mirrorlist : 다운받을 pkg가 들어있는 경로
enabled : 해당 repo를 사용할건지 안할건지
이정도만 알고 나머지는 필요할 때 찾아보면 된다.
그럼 현재 사용중인 repo들을 확인해보자.
yum repolist |
해당 명령을 수행하면, 현재 repo들의 list가 나오고,
yum repolist enabled |
repo 리스트 중에 현재 사용 상태로 되어 있는 리스트 출력
yum repolist disabled |
반대로 미사용 상태의 리스트를 출력한다.
2. local repository 만들기
먼저 iso라는 파일에 대해 짧게 설명하면,
현재 내가 사용중인 os를 그 상태 그대로 저장하여 만든 파일이라고 보면 된다.
때문에 해당 iso에서는 os에 설치되어 있던 pkg들이 모두 포함되어 있다.
그렇다면 이 글에서 말하는 iso는
현재 내가 사용중인 os의 상태 그대로를 새로운 환경에 설치하기 위한 파일이라고 보면 된다.
iso파일이 있다는 전제하에 다음을 진행하면 된다.
나는 해당 iso 파일을 준비해뒀다.
이제 남은건 간단하다.
1. iso를 내가 원하는 경로에 mount
mkdir -p "mount 경로" mount -o loop "iso 경로" "mount 경로" |
2. mount하면 repo 파일이 해당 경로에 생긴다.
해당 명령을 실행하고 mount 경로로 이동해보면,
위와 같이 파일들이 생성되어 있는데,
이건 iso 파일마다 다 다르다.
나는 여기서 AppStream과 BaseOS를 repo로 사용할거다.
맨 밑에 있는 media.repo 파일을 수정해보자.
[BaseOS] name=Rocky Linux 8.10 Base mediaid=None metadata_expire=-1 gpgcheck=0 cost=500 enabled=1 baseurl=file:///mnt/mount_iso/BaseOS/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [AppStream] name=Rocky Linux 8.10 AppStream mediaid=None metadata_expire=-1 gpgcheck=0 cost=500 enabled=1 baseurl=file:///mnt/mount_iso/AppStream/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release |
위와 같이 만들어주고,
간단히 중요부분을 보자면,
baseurl에 보면 내가 mount한 경로로 설정되어 있는걸 확인할 수 있다.
내 mount 경로는 /mnt/mount_iso 이고 해당 경로에 BaseOS 경로를 repo로 사용하기 위해 위처럼 설정했다.
AppStream도 똑같은 이유다.
3. 해당 파일을 편집한 후 /etc/yum.repos.d 경로에 넣어준다.
이제 위에서 만든 파일을 해당 경로로 옮겨준다.
나는 이름만 rhel8dvd.repo로 바꿔서 넣어줬다.
4. 기존에 enabled 되어 있던 repo 리스트를 모두 disable 해준다.
yum repolist enabled # 리스트 조회 yum-config-manager --disable "저장소 ID" |
저장소 ID는 repo 파일 내에 있는
해당 부분이 된다.
5. 내가 만든 repo만 enable 한 후 yum 을 사용하면 끝.
yum-config-manager --enable "저장소 ID" |
나의 경우
yum-config-manager --enable BaseOS
yum-config-manager --enable AppStream
여기까지 했으면,
yum update |
yum 명령을 사용하면 된다.
그러면 iso 파일 내에 있는 pkg만 local repository를 사용하여 설치가 가능해진다.
'Linux > 명령어' 카테고리의 다른 글
현재 폴더의 가장 마지막 파일 열기 (0) | 2024.05.03 |
---|---|
vim에서 바로 커맨드 실행하기 (0) | 2024.01.23 |
vim을 좀 더 편리하게 써보기(~/.vimrc) (1) | 2023.12.28 |
호스트네임 변경 (0) | 2023.11.30 |
SSH를 이용한 다양한 로그인 방법 정리. (1) | 2023.11.28 |