This seems like a simple question, but the docs don't seem to have anything to say on the subject. I would like to do something like Requires: vim or emacs
but when I do that, I in fact depend on vim
, or
and emacs
. What is the syntax for depending on one or another of two packages?
Rpmerizor is a script that allows you to create an RPM package from installed files. You simply have to specify files on the command line and answering a few interactive questions to fill rpm meta-data (package name, version ...). You can also use it in batch mode with command line options for meta-data.
You can also get a list of dependencies for a RPM package using repoquery tool. repoquery works whether or not a target package is installed. This tool is included in yum-utils package. For repoquery to work, your computer needs network connectivity since repoquery pulls information from Yum repositories.
RPM stands for Red Hat Package Manager. It was developed by Red Hat and is primarily used on Red Hat-based Linux operating systems (Fedora, CentOS, RHEL, etc.). An RPM package uses the . rpm extension and is a bundle (a collection) of different files.
The standard way to do this is via virtual provides: the providing RPMs each state that they provide a virtual package, and the dependent RPM requires that virtual package. So, in your example, vim
and emacs
both Provides: text-editor
, and your package would Requires: text-editor
.
If the packages that you're depending on don't provide an appropriate virtual package, you could probably hack around this by making up your own. Make dummy my-package-vim-mode
and my-package-emacs-mode
RPMs that Requires: vim
and Requires: emacs
, respectively, and Provides: my-package-text-editor
, then have your package Requires: my-package-text-editor
.
If packages don't have common Provide, and you don't want to rebuild and maintain forks of that packages, but they both do provide same file, you can depend on a file. For example:
Requires: /usr/bin/pear
That way your package won't matter if pear binary is provided by php-pear or php53-pear.
There is no such capability in rpm. Require a virtual provides that the packages have in common, if there is one.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With