두 개의 RPM 패키지를 만들었습니다
proj1-1.0-1.x86_64.rpm
libtest1-1.0-1.x86_64.rpm
proj1
libtest1.so
존재 하는 파일 에 따라 다음 과 같이 RPM 패키지에 올바르게 반영됩니다.
user@my-pc:~$ rpm -qp --requires proj1-1.0-1.x86_64.rpm
libtest1.so()(64bit)
user@my-pc:~$ rpm -qp --provides libtest1-1.0-1.x86_64.rpm
libtest1.so()(64bit)
proj1
누락 된 종속성으로 인해 설치에 실패했습니다.
user@my-pc:~$ rpm -ivh proj1-1.0-1.x86_64.rpm
error: Failed dependencies:
libtest1.so()(64bit) is needed by proj1-1.0-1.x86_64.rpm
libtest1-1.0-1.x86_64.rpm
설치 중에 자동으로 설치 되도록하려면 어떻게해야 proj1-1.0-1.x86_64.rpm
합니까?
여기에 설명 된대로 --aid
옵션을 사용해 보았지만 효과가 없었습니다.rpm -i
다른 방법이 있습니까?
도움을 주셔서 감사합니다.
답변
(로컬) 저장소를 작성 yum
하고 종속성을 해결하는 데 사용 하십시오.
CentOS 위키에는 이에 대한 사용법을 제공하는 멋진 페이지가 있습니다. CentOS 위키 HowTos / CreateLocalRepos .
요약 및 추가 최소화 (이상적이지는 않지만 가장 빠름) :
- 로컬 저장소를위한 디렉토리를 작성하십시오 (예 🙂
/home/user/repo
. - RPM을 해당 디렉토리로 이동하십시오.
-
일부 소유권 및 파일 시스템 권한을 수정하십시오.
# chown -R root.root /home/user/repo
-
설치
createrepo
아직 설치되지 않은 경우 패키지를, 및 실행# createrepo /home/user/repo # chmod -R o-w+r /home/user/repo
-
예를 들면 저장소 구성 파일을 작성
/etc/yum.repos.d/myrepo.repo
포함을[local] name=My Awesome Repo baseurl=file:///home/user/repo enabled=1 gpgcheck=0
-
다음을 사용하여 패키지를 설치하십시오.
# yum install packagename
답변
@gertvdijk가 제공하는 링크는 로컬 리포지토리를 구성하지 않고 원하는 결과를 얻을 수있는 빠른 방법을 보여줍니다.
$ yum --nogpgcheck localinstall packagename.arch.rpm
packagename.arch.rpm
설치하려는 RPM 파일 이름으로 변경 하십시오.
편집 간단히 설명하면 시스템 YUM 리포지토리를 통해 이미 사용 가능한 모든 종속성이 자동으로 설치됩니다.
시스템 리포지토리에없는 다른 RPM에 의해 종속성이 충족 packagename.arch.rpm
되면 명령 줄에서 각 RPM을 지정하지 않으면이 방법이 작동하지 않습니다 .
답변
dnf 사용자는을 사용 dnf install *.rpm
하면 localinstall
더 이상 필요하지 않습니다.
답변
나와 함께 일한
# yum install ffmpeg-2.6.4-1.fc22.x86_64.rpm
그리고 depedencies를 다운로드 할 수있는 권한을 자동으로 요청했습니다. 아래 예에서 나는 fedora 22를 사용하고 있습니다.
[root@localhost lukas]# yum install ffmpeg-2.6.4-1.fc22.x86_64.rpm
Yum command has been deprecated, redirecting to '/usr/bin/dnf install ffmpeg-2.6.4-1.fc22.x86_64.rpm'.
See 'man dnf' and 'man yum2dnf' for more information.
To transfer transaction metadata from yum to DNF, run:
'dnf install python-dnf-plugins-extras-migrate && dnf-2 migrate'
Last metadata expiration check performed 0:28:24 ago on Fri Sep 25 12:43:44 2015.
Dependencies resolved.
====================================================================================================================
Package Arch Version Repository Size
====================================================================================================================
Installing:
SDL x86_64 1.2.15-17.fc22 fedora 214 k
ffmpeg x86_64 2.6.4-1.fc22 @commandline 1.5 M
ffmpeg-libs x86_64 2.6.4-1.fc22 rpmfusion-free-updates 5.0 M
fribidi x86_64 0.19.6-3.fc22 fedora 69 k
lame-libs x86_64 3.99.5-5.fc22 rpmfusion-free 345 k
libass x86_64 0.12.1-1.fc22 updates 85 k
libavdevice x86_64 2.6.4-1.fc22 rpmfusion-free-updates 75 k
libdc1394 x86_64 2.2.2-3.fc22 fedora 124 k
libva x86_64 1.5.1-1.fc22 fedora 79 k
openal-soft x86_64 1.16.0-5.fc22 fedora 292 k
opencv-core x86_64 2.4.11-5.fc22 updates 1.9 M
openjpeg-libs x86_64 1.5.1-14.fc22 fedora 89 k
schroedinger x86_64 1.0.11-7.fc22 fedora 315 k
soxr x86_64 0.1.2-1.fc22 updates 83 k
x264-libs x86_64 0.142-12.20141221git6a301b6.fc22 rpmfusion-free 587 k
x265-libs x86_64 1.6-1.fc22 rpmfusion-free 486 k
xvidcore x86_64 1.3.2-6.fc22 rpmfusion-free 264 k
Transaction Summary
====================================================================================================================
Install 17 Packages
Total size: 11 M
Total download size: 9.9 M
Installed size: 35 M
Is this ok [y/N]: y
답변
더 간단한 해결책을 찾았습니다. 동일한 디렉토리에 모든 RPM이있는 경우,
$ sudo rpm -i *.rpm
rpm
올바른 설치 순서를 파악하고 RPM을 설치하는 것 같습니다.
답변
마태의 대답은 여전히 사소한 세부 사항이 없기 때문에 많은 감정을 일으켰습니다. 일반적인 명령은 다음과 같습니다.
# yum --nogpgcheck localinstall <package1_file_name> ... <packageN_file_name>
package_file_name
위 의 내용에는 로컬 절대 또는 상대 경로가 포함되거나 URL (아마도 URI) 일 수 있습니다.
Yum은 명령 줄에 제공된 모든 패키지 파일 간의 종속성을 검색하고 IT 실패시 종속성을 찾는 경우 구성 및 활성화 된 yum 리포지토리도 사용합니다.
package_file_name
이 디렉토리 중 하나가 이전에 사용 가능한 yum
저장소 로 구성된 경우를 제외하고 현재 작업 디렉토리 나 경로는 검색 되지 않습니다 .
따라서 OP의 경우 yum
명령은 다음과 같습니다.
# cd <path with pkg files>; yum --nogpgcheck localinstall ./proj1-1.0-1.x86_64.rpm ./libtest1-1.0-1.x86_64.rpm
할 것입니다 rpm
:
# cd <path with pkg files>; rpm -i proj1-1.0-1.x86_64.rpm libtest1-1.0-1.x86_64.rpm
설치와 나열된 패키지 중 하나가 명령 행에 나열되지 않은 패키지에 추가 종속성이있는 경우에만 이러한 호출 yum
과 rpm
호출 의 차이점을 볼 수 있습니다.
이러한 경우에 rpm
불과하지만, 계속 거부합니다 yum
종속성을 검색 할 수있는 구성 및 활성화 냠 저장소를 사용하는 것, 그리고 아마도 성공할 수 있습니다.
현재 작업 디렉토리는 이전에 사용 가능한 yum
저장소 로 구성된 경우를 제외하고는 검색되지 않습니다 .
답변
나는 이것을 만났고 나를 위해 일한 yum localinstall enterPkgNameHere.rpm
것은 .rpm 파일이있는 디렉토리 내부에서 실행하는 것이 었습니다 .
참고 :를 enterPkgNameHere.rpm
.rpm 파일 이름으로 바꾸십시오 .