Sur un CentOS 7, j'ai installé foobar version 2, compilé à partir des sources.
Comment puis-je informer miam de cette installation pour qu'elle n'installe pas foobar version 1 pour la dépendance?
$ 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
J'aimerais que miam sache foobar 2 est installé et depuis baz a besoin foobar >= 1
ou simplement foobar
, foobar-1.0.0-0.el7.x86_64.rpm
ne devrait pas être installé.
"J'ai installé foobar version 2, compilé à partir des sources"
Faites l'effort supplémentaire lors de l'ajout de logiciels personnalisés à votre système et empaquetez vos ajouts dans un RPM . Voir Martin Streicher, 2010-01-12, Création et distribution de packages, IBM sur la façon de procéder.
Ensuite, installez ce RPM résultant pour qu'il puisse et va jouez bien avec les procédures de gestion des conflits et des dépendances de votre gestionnaire de paquets, la mise à niveau, la rétrogradation et la suppression et les rapports de sécurité.
Une autre option (mais certainement pas la meilleure réponse): créer un fichier rpm factice avec le nom en question.
Vous aurez besoin de rpmbuild
installé et d'un tarball factice.
mkdir ~/rpmbuild/{RPMS,SOURCES}
touch empty.txt
tar -zcf ~/rpmbuild/SOURCES/example.tar.gz empty.txt
Écrivez le fichier de spécifications factices. Celui-ci fonctionne pour moi sur Fedora 29. Il devrait également être bon sur 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
Modifiez le nom et le numéro de version du package si nécessaire, puis générez le package.
rpmbuild -ba example.spec
Le fichier rpm de sortie "binaire" sera ~/rpmbuild/RPMS/noarch/example-0.0.0-1.fc29.x86_64.rpm
Ce n'est pas ainsi que fonctionne rpm
.
rpm
utilise une base de données où elle stocke les rpms installés sur le système. Si vous installez certains fichiers manuellement, rpm
ne le sait pas.
La meilleure façon de résoudre ce problème est d'installer foobar 2 avec un rpm. D'autres solutions ne seraient qu'une solution de contournement et ne fonctionneraient pas à long terme.
Mai rpm --nodeps
être la réponse que vous cherchez? Il a été discuté dans un fil plus ancien ici sur Serverfault.