На CentOS 7 я установил foobar версия 2, собранная из исходников.
Как я могу сообщить yum об этой установке, чтобы она не установилась foobar версия 1 для зависимости?
$ git clone https://example.com/foobar.git
[...]
$ cd foobar
$ make && sudo make install
[...]
$ foobar --version
foobar v2
$ 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
не должна быть установлен.
«Я установил foobar версии 2, собранной из исходников»
Приложите дополнительные усилия при добавлении специального программного обеспечения в вашу систему и упакуйте свои дополнения в RPM. Видеть Мартин Штрайхер, 12 января 2010 г., Сборка и распространение пакетов, IBM о том, как это сделать.
Затем установите полученный RPM, чтобы он может и будет поиграйте с обработкой конфликтов и зависимостей, процедурами обновления, понижения и удаления вашего менеджера пакетов и отчетами о безопасности.
Другой вариант (хотя и не лучший ответ): создать фиктивный rpm-файл с заданным именем.
Тебе понадобится rpmbuild
установлен и фиктивный tarball.
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
Это не как rpm
работает.
rpm
использует базу данных, в которой хранит, какие rpms установлены в системе. Если вы устанавливаете некоторые файлы вручную, rpm
не знает об этом.
Лучший способ решить эту проблему - установить foobar 2 со скоростью вращения. Другие решения могут быть только обходным путем и не будут работать в долгосрочной перспективе.
май rpm --nodeps
быть тем ответом, который ты ищешь? Это обсуждалось в более старой ветке на Serverfault.