web-dev-qa-db-ja.com

ソースからインストールされたソフトウェア、パッケージからインストールしないようにyumを言うには?

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

foobar2がインストールされていて、baz以来、yumに知らせたいfoobar >= 1または単にfoobarが必要です。foobar-1.0.0-0.el7.x86_64.rpmインストールしないでくださいインストールする必要があります。

14
YSC

「ソースからコンパイルされたfoobarバージョン2をインストールしました」

システムにカスタムソフトウェアを追加するときは追加の労力を費やし、追加したものをRPMにパッケージ化します。それを行う方法については、 Martin Streicher、2010-01-12、パッケージの構築と配布、IBM を参照してください。

次に、その結​​果のRPMをインストールして、パッケージマネージャーの競合と依存関係の処理、アップグレード、ダウングレード、削除の手順、およびセキュリティレポートでできるようにします

27
HBruijn

別のオプション(間違いなく最良の答えではありません):問題の名前でダミーのrpmファイルを作成します。

rpmbuildをインストールし、ダミーのtarballが必要です。

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

ダミースペックファイルを書き込みます。これはFedora 29で動作します。CentOS7でも問題ありません。

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

10
bgStack15

これはrpmの動作方法ではありません。

rpmは、システムにインストールされているrpmを格納するdbを使用します。一部のファイルを手動でインストールした場合、rpmはそれを認識しません。

これを解決する最良の方法は、foobar 2をrpmでインストールすることです。他の解決策は回避策にすぎず、長期的には機能しません。

6
Chris Maes

五月 rpm --nodeps探している答えになりますか?これは、Serverfaultの古いスレッドで議論されました。

単一の依存関係を無視するようにyumに伝えます

3
Mikael H