Na CentOS 7 zainstalowałem foobar w wersji 2, skompilowany ze źródeł.
Jak mogę poinformować yum o tej instalacji, aby nie instalowała foobar w wersji 1 dla zależności?
Instalacja foobar
$ git clone https://example.com/foobar.git
[...]
$ cd foobar
$ make && sudo make install
[...]
$ foobar --version
foobar v2
Instalacja pakietu wymagającego 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
Chciałbym wiedzieć yum foobar 2 jest zainstalowany i od baz wymaga foobar >= 1
albo po prostu foobar
, foobar-1.0.0-0.el7.x86_64.rpm
nie powinny być instalowane.
Odpowiedzi:
Dodatkowy wysiłek dodajesz niestandardowe oprogramowanie do swojego systemu i pakujesz swoje dodatki w RPM . Zobacz Martin Streicher, 2010-01-12, tworzenia i dystrybuowania pakietów , IBM , w jaki sposób to zrobić.
Następnie zainstaluj wynikowy RPM, aby mógł i będzie dobrze grał z obsługą konfliktu i zależności menedżera pakietów, procedurami aktualizacji, obniżania i usuwania oraz raportowaniem bezpieczeństwa.
źródło
Inna opcja (choć zdecydowanie nie najlepsza odpowiedź): stwórz fikcyjny plik RPM o podanej nazwie.
Będziesz musiał
rpmbuild
zainstalować i atrapę tarball.Napisz plik specyfikacji manekina. Ten działa dla mnie na Fedorze 29. Powinien być także dobry na CentOS 7.
W razie potrzeby popraw nazwę pakietu i numer wersji, a następnie skompiluj pakiet.
Wyjściowym „binarnym” plikiem rpm będzie
~/rpmbuild/RPMS/noarch/example-0.0.0-1.fc29.x86_64.rpm
źródło
To nie tak
rpm
działa.rpm
używa db, gdzie przechowuje, które rpms są zainstalowane w systemie. Jeśli instalujesz niektóre pliki ręcznie,rpm
nie wie o tym.Najlepszym sposobem na rozwiązanie tego jest zainstalowanie foobar 2 z prędkością obrotową na minutę. Inne rozwiązania byłyby tylko obejściem i nie działałyby na dłuższą metę.
źródło
Może
rpm --nodeps
to odpowiedź, której szukasz? Zostało to omówione w starszym wątku tutaj na Serverfault.( powiedz yum, aby zignorowało jedną zależność )
źródło