소스에서 소프트웨어를 설치했습니다. yum이 패키지에서 설치하지 말라고 말하는 방법은 무엇입니까?


14

CentOS 7에서는 소스에서 컴파일 된 foobar 버전 2를 설치했습니다 .

yum이 해당 설치를 인식하도록 설정 하여 종속을 위해 foobar 버전 1을 설치하지 않습니까?


foobar 설치

$ git clone https://example.com/foobar.git
[...]
$ cd foobar
$ make && sudo make install
[...]
$ foobar --version
foobar v2

foobar가 필요한 패키지 설치

$ sudo yum install baz
[...]
---> Package baz.x86_64 0:3.14.15-9 will be installed
--> Processing Dependency: foobar >= 1 for package: baz-3.14.15-9.x86_64
[...]
Dependencies Resolved

==============================================================
 Package           Arch      Version      Repository   Size
==============================================================
Installing:                  
 baz               x86_64    3.14.15-9    example      1.1 M
Installing for dependencies: 
 foobar            x86_64    1.0.0-0.el7  example      4.5 M

나는 냠 알고 싶습니다 FOOBAR 이후 2가 설치되어 바즈가 필요 foobar >= 1하거나 foobar, foobar-1.0.0-0.el7.x86_64.rpm 설치.


답변:


27

"소스에서 컴파일 한 foobar 버전 2를 설치했습니다"

시스템에 사용자 정의 소프트웨어를 추가 할 때 추가 노력을 기울이고 추가 사항을 RPM으로 패키지하십시오 . 참조 마틴 STREICHER, 2010-01-12, 건물 및 배포 패키지 , IBM을 그 작업을 수행하는 방법에.

그런 다음 결과 RPM을 설치하면 패키지 관리자의 충돌 및 종속성 처리, 업그레이드, 다운 그레이드 및 제거 절차 및 보안보고 기능을 활용할 수 있습니다 .


10

가장 좋은 대답은 아니지만 다른 옵션 : 문제의 이름으로 더미 rpm 파일을 만드십시오.

rpmbuild설치 및 더미 타르볼 이 필요합니다 .

mkdir ~/rpmbuild/{RPMS,SOURCES}
touch empty.txt
tar -zcf ~/rpmbuild/SOURCES/example.tar.gz empty.txt

더미 스펙 파일을 작성하십시오. 이것은 Fedora 29에서 저에게 효과적입니다. CentOS 7에서도 좋을 것입니다.

Name:           example
Version:        0.0.0
Release:        1%{?dist}
Summary:        Dummy package

Group:          Dummy
License:        CC-BY-SA 3.0
URL:            http://example.com
Source0:    example.tar.gz
BuildArch:  noarch

#BuildRequires:
#Requires:

%description
Dummy for example

%prep
:

%build
:

%install
:

%files
%doc

%changelog

필요에 따라 패키지 이름과 버전 번호를 조정 한 다음 패키지를 빌드하십시오.

rpmbuild -ba example.spec

출력 "이진"rpm 파일은 ~/rpmbuild/RPMS/noarch/example-0.0.0-1.fc29.x86_64.rpm


6

이것은 rpm작동 하지 않습니다 .

rpm시스템에 설치된 rpm을 저장하는 db를 사용합니다. 일부 파일을 수동으로 설치하면 rpm알 수 없습니다.

이를 해결하는 가장 좋은 방법은 foobar 2를 rpm으로 설치하는 것입니다. 다른 솔루션은 해결 방법 일 뿐이며 장기적으로는 작동하지 않습니다.


5
종속성 검사를 수동으로 무시할 수 없습니까? 그렇게 읽히기 때문에 OP가 원하는 것입니다.
Mast

예, 가능하지만 모든 종속성 검사를 무시합니다. 나중에 업데이트하는 데 문제가 있습니다.
Chris Maes

3

rpm --nodeps당신이 찾고있는 해답이 될? Serverfault의 이전 스레드에서 논의되었습니다.

( yum에게 단일 종속성을 무시하도록 지시하십시오 )


5
이로 인해 문제가 발생할 수 있으며 기본적으로 문제를 연기합니다. 시스템을 업데이트하거나 나중에 다른 패키지를 설치할 때 일부 패키지는 foobar 1을 종속성으로 가져 와서 수동으로 빌드 및 설치된 foobar 2를 덮어 쓰고 호환성 문제를 일으킬 수 있습니다.
Jiri Valenta
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.