0

I removed a yum package and installed a higher version of the same package from source. But yum doesn't see it. Whenever I try to install a yum package, it tries to install the older yum package and doesn't see the source package I installed.

Is there a way to get yum to see the source package? Bear in mind I don't know how to create rpms from source yet.

2
  • 1
    yum isn't going to see it unless it's in the rpm database. Commented Apr 13, 2022 at 15:59
  • a package that is not installed via yum does not exist, i agree to nasir about it. On Debian Systems you usually have to create the same name and depencies that it will be detected later by installing with dpkg
    – djdomi
    Commented Apr 13, 2022 at 16:44

2 Answers 2

1

Sadly (happily?) rpm does not have the equivalent of deb's equivs-build, "a program that creates Debian packages which can be used to inform dpkg about locally installed packages and their dependencies."

It is easy to hack together an empty rpm and install it to inform rpm that a package is installed (but not what files your source install added to your system).

The first is fpm:

$ fpm -s empty -t rpm -n foo -v 1.2.3 --iteration noop

Note that fpm eases building rpms if you want to go down that path in the future.

The second is rpmfluff:

$ python
>>> import rpmfluff
>>> foo = rpmfluff.SimpleRpmBuild("foo", "0.1", "1")
>>> foo.make()

Another simple option like fpm for making a real rpm with files in it is checkinstall. (I don't know if it works anymore.)

After you ./configure; make your program, CheckInstall will run make install (or whatever you tell it to run) and keep track of every file modified by this installation ... When make install is done, CheckInstall will create a Slackware, RPM or Debian compatible package and install it with Slackware's installpkg, "rpm -i" or Debian's "dpkg -i" as appropriate

1

I'll elaborate with an answer.

yum is basically a front-end for rpm in that it can query and install from remote repositories and also query and resolve dependencies rather than having to use rpm manually to install a package and its dependencies in the correct order. There are other things, but those are the most important.

Due to this, yum uses the rpm database and associated files in the /var/lib/rpm drectory. This database is updated when packages are installed, removed, erased, etc. If software is compiled from source or installed via a script that creates binaries, libraries, headers, etc or with another utility like snap, pip, cpan, gem, etc, then yum and rpm haven't the least idea that it's on the system because it's not in the database.

That is why yum can't see the software that you compiled from source.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .