다운로드한 여러 RPM에서 올바른 종속성을 갖는 패키지를 어떻게 설치합니까?

다운로드한 여러 RPM에서 올바른 종속성을 갖는 패키지를 어떻게 설치합니까?

내 상황도 비슷해로컬 종속 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에 대한 오류가 발생합니다 .barbazfoo-essential

어떻게 해야 합니까?

답변1

Yum의 답변은 로컬 저장소를 생성하고 저장소 구성 파일을 /etc/yum.repos.d.you 에 추가하는 것을 제안합니다.할 수 있다하지만 DNF를 사용하면 그럴 필요가 없습니다. 구성 파일 없이 로컬 저장소를 가리킬 수 있습니다. 하지만 디렉터리에 저장소를 만들어야 합니다.

그래서:

  1. 문제가 있는 디렉터리로 변경합니다. cd ~/Downloads/RPMs, 예를 들어.
  2. createrepo_c .이 디렉터리에서 실행하세요. (또는 createrepo_c ~/Downloads/RPMs어디서나.)
  3. 달리기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문제의 다른 리포지토리를 제거할 수 있습니다.

관련 정보