내 상황도 비슷해로컬 종속 RPM 파일만 사용하여 로컬 RPM을 설치하는 방법은 무엇입니까?또는종속성을 제공하는 rpm이 종속성 rpm보다 먼저 설치되도록 RPM으로 가득 찬 디렉토리를 설치하시겠습니까?, 하지만 CentOS 대신 Fedora를 사용하고 있고 Yum 대신 DNF를 사용하고 있습니다.
.rpm
디렉토리에 여러 개의 파일을 다운로드했습니다 . 그 중 하나(예: )를 설치하고 해당 종속성을 갖고 싶습니다 foo-1.0-1.rpm
. 내가 다운로드한 다른 모든 파일 foo-debuginfo-1.0-1.rpm
이 아닌 필요한 것만 설치하고 싶습니다 foo-extraplugin-that-no-one-uses-1.0-1.rpm
. 그렇게 하면 dnf install *
추가 쓰레기가 생길 것입니다. 이렇게 하면 종속성 누락 dnf install foo-1.0-1.rpm
에 대한 오류가 발생합니다 .bar
baz
foo-essential
어떻게 해야 합니까?
답변1
Yum의 답변은 로컬 저장소를 생성하고 저장소 구성 파일을 /etc/yum.repos.d
.you 에 추가하는 것을 제안합니다.할 수 있다하지만 DNF를 사용하면 그럴 필요가 없습니다. 구성 파일 없이 로컬 저장소를 가리킬 수 있습니다. 하지만 디렉터리에 저장소를 만들어야 합니다.
그래서:
- 문제가 있는 디렉터리로 변경합니다.
cd ~/Downloads/RPMs
, 예를 들어. createrepo_c .
이 디렉터리에서 실행하세요. (또는createrepo_c ~/Downloads/RPMs
어디서나.)- 달리기
dnf --repofrompath local,. install foo
노트:
createrepo_c
예, 직접적이고 빠른 대안입니다 createrepo
.
제공된 저장소의 구문은 reponame comma path입니다. 그러니 --repofrompath "My Repository",/home/mattdm/Downloads/RPMs
원한다면 할 수 있습니다. URL( file:///
URL 또는 원격 URL)을 제공할 수도 있습니다.
설치하려는 패키지를 파일 이름(예: )이 foo
아닌 패키지 이름 foo-1.0-1.rpm
(예: ) 으로 지정해야 합니다.
마지막으로, 프로비저닝되고 foo
끌어오기되는 다른 구성된 리포지토리가 있는 경우 이는 향후 문제가 될 것이지만 지금은 이를 사용하여 --disablerepo
문제의 다른 리포지토리를 제거할 수 있습니다.