-
#1. Rocky Linux 9 - dnf localinstall 실행하기 (오프라인 환경)개발노트/Linux 2025. 2. 4. 18:00반응형
오프라인 환경에서
dnf localinstall
시BaseOS
를 외부에서 찾는 문제 해결 방법🔍 문제 상황
오프라인 환경에서
dnf localinstall
을 실행할 때,BaseOS
패키지를 외부 리포지토리에서 찾으려 하면서 실패하는 경우가 발생할 수 있습니다.🔹 원인
dnf
는 기본적으로 설정된 온라인 리포지토리에서 패키지를 검색합니다.localinstall
을 사용해도, 설치하려는 패키지가 의존성을 추가로 요구할 경우BaseOS
등 기본 리포지토리를 사용하려고 시도할 수 있습니다.- Rocky Linux는
BaseOS
와AppStream
을 포함한 여러 공식 리포지토리를 사용하지만, 오프라인 환경에서는 이를 접근할 수 없습니다.
✅ 해결 방법
1️⃣
dnf
가 외부 리포지토리를 참조하지 않도록 설정오프라인 설치를 수행할 때,
dnf
가 온라인 리포지토리를 사용하려고 시도하는 것을 차단해야 합니다.sudo dnf --disablerepo="*" localinstall -y package.rpm
🔹
--disablerepo="*"
옵션을 사용하면 모든 온라인 리포지토리를 비활성화하고, 제공된.rpm
패키지만 설치하도록 강제합니다.
2️⃣
dnf
의 기본 리포지토리를 비활성화 (영구 적용)온라인 리포지토리를 영구적으로 비활성화하려면
dnf
의 설정 파일을 수정해야 합니다.1)
BaseOS
와AppStream
리포지토리를 임시로 비활성화다음 명령을 실행하면 특정 리포지토리를 제외하고 패키지를 설치할 수 있습니다.
sudo dnf --setopt=BaseOS.enabled=0 --setopt=AppStream.enabled=0 install -y package.rpm
2)
/etc/yum.repos.d/
내 리포지토리 파일 수정 (영구 설정)기본 리포지토리를 아예 비활성화하려면
BaseOS.repo
와AppStream.repo
파일을 수정해야 합니다.sudo sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/Rocky-BaseOS.repo sudo sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/Rocky-AppStream.repo
⚠️ 설치 후 다시 온라인 리포지토리를 사용하려면,
enabled=1
로 복구해야 합니다.
3️⃣ 의존성 패키지를 함께 다운로드하여 오프라인에서 설치
일반적으로 단일
.rpm
파일만 설치하면 의존성 부족 문제가 발생할 수 있습니다.
이를 방지하려면 온라인 환경에서 필요한 패키지를 미리 다운로드하여 함께 이동해야 합니다.1) 온라인 환경에서 패키지 및 의존성 다운로드
mkdir -p ~/offline-packages cd ~/offline-packages sudo dnf install --downloadonly --downloaddir=. package-name
2) 오프라인 서버로 이동 후 일괄 설치
scp -r ~/offline-packages user@192.168.xxx.xxx:/tmp/ cd /tmp/offline-packages sudo dnf install -y *.rpm
4️⃣
BaseOS
패키지를 로컬 리포지토리로 등록하여 활용 (추천)오프라인 환경에서
BaseOS
패키지가 필요하면, 미리 다운로드하여 로컬 리포지토리로 등록하면 더 편리합니다.1) 온라인 환경에서
BaseOS
패키지 다운로드mkdir -p ~/rocky9-baseos cd ~/rocky9-baseos sudo dnf install --downloadonly --downloaddir=. BaseOS tar -czvf rocky9-baseos.tar.gz ~/rocky9-baseos
2) 오프라인 서버로 전송 후 압축 해제
scp rocky9-baseos.tar.gz user@192.168.xxx.xxx:/mnt/repo/ cd /mnt/repo/ tar -xzvf rocky9-baseos.tar.gz
3) 로컬 리포지토리 구성
sudo createrepo /mnt/repo/ sudo tee /etc/yum.repos.d/local.repo <<EOF [local-repo] name=Local Repository baseurl=file:///mnt/repo/ enabled=1 gpgcheck=0 EOF
4)
dnf
캐시 업데이트 및 설치sudo dnf clean all sudo dnf makecache sudo dnf install -y package.rpm
🎯 결론
🔹 오프라인 환경에서
dnf localinstall
시BaseOS
를 찾는 문제 해결 방법
✅dnf --disablerepo="*"
옵션을 사용하여 외부 리포지토리를 비활성화
✅BaseOS.repo
파일을 수정하여 기본 리포지토리를 비활성화
✅dnf install --downloadonly
를 사용하여 필요한 패키지 및 의존성을 미리 다운로드
✅createrepo
를 활용하여 로컬 리포지토리를 구성하여 오프라인에서dnf
사용 가능하도록 설정이제 오프라인 환경에서도
dnf
를 활용하여 패키지를 설치할 수 있습니다! 🚀반응형'개발노트 > Linux' 카테고리의 다른 글
#3. Rocky Linux 9 - Docker에 PostgreSQL 설치 및 설정 방법 (0) 2025.02.07 #2. Rocky Linux 9 - Docker 설치하기 (확인 편) (0) 2025.02.03 #1. Rocky Linux 9 - Docker 설치하기 (0) 2025.02.03 #3. Rocky Linux 9 - Oracle JDK 8 설치 (1) 2025.02.03 #2. Rocky Linux 9 - 여러 버전의 Java를 관리하는 방법 (alternatives) (0) 2025.02.03