1

I have an RHEL OS running as a VM that my team wants to update two specific RPMS (the agent/program is already installed but is an outdated version, so we want to update).

I was having issues downloading the RPM using yum (pointed to the jfrog artifactory in the MyRepo.repo file in the /etc/yum.repos.d directory), I kept getting 404 - Error not found errors

So I decided to just use curl and download the RPMs manually to the VM. There are only (2) RPMs, one named something like my-prog-app-8.0.rpm and the other my-prog-libs-8.0.rpm in the /root/rpms directory I created.

NOW, my only issue is when I run something like: yum update my-prog-app or yum update my-prog-libs, it fails each time with a failure like:

failure: repodata/repomd.xml from MyRepo: [Errno 256] No more mirrors to try.
file:///root/rpms/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /root/rpms/repodata/repomd.xml"

I'm not sure what the heck this /repodata directory or the repomd.xml file its looking for is. I did see this same error when I was trying to use yum to download the RPM by pointing to the artifactory in the MyRepo.repo file earlier. I figured I would be safe now because I have the RPMs locally and they are defined in the /etc/yum.repos.d directory as:

# cat /etc/yum.repos.d/MyRepo.repo
[MyRepo]
name=My Local Repo
baseurl=file:///root/rpms
enabled=1
gpgcheck=0

Can anyone tell me what I could be doing wrong here? It can't be my connection/firewall issues, as the RPMs are already installed/downloaded/located locally on this OS (at /root/rpms) right?

what is this /repodata/repod.xml? How can I just update these (2) rpms?? or would I bet better off doing a fresh install with them or something?

2

The /repodata/repod.xml is the main repository metadata file which yum expects any repository to have.

It's not clear why you simply didn't install update the downloaded RPMs directly via rpm or yum, but created a repo definition /etc/yum.repos.d/MyRepo.repo instead.

To make your repository work, you must use createrepo /root/rpms. This will create repository metadata after scanning .rpm files in the directory.

Then your local repository will be usable by yum.

| improve this answer | |
  • I said in my question why I simply didn't install update the RPMs.. I told you I get an "404 - Error Not found" everytime. "createrepo" doesn't work, it says "command not found". When I try to install "yum install createrepo" , it says "There are no enabled repos" Everywhere on google , tutorials said to create a .repo file in /etc/yum.repos.d – ennth Jun 6 at 18:32
  • What I meant was - you downloaded RPMs already and they are in /root/rpms. Why not rpm install them? "There are no enabled repos" message would mean what it says. Have you removed all repo definitions from /etc/yum.repos.d/ or otherwise disabled them? – Danila Vershinin Jun 6 at 18:37
  • @Danilla Vershinin This is at my company. We build up a VM (virtual machine) from a RHEL (Red Hat Linux 7) .iso using a bunch of shell/bash scripts. I am trying to upgrade 2 things from a BIG package of applications that we install using "yum install...." in one of the .sh scripts..... So like, "yum install -y app-A app-B app-C app-D app-E app-F app-G .....app-X app-Y" app-X and app-Y are installed already on this VM but I am trying to update them. I thought "yum" would be the easiest option but its turned to be hell. I just tried "rpm -U" and "rpm -i" and I'm getting errors also... – ennth Jun 6 at 18:47
  • ..... All the apps A through G come from a big artifactory (jfrog), but they don't have the newest version of app-X and app-Y, that's why I am trying to "point" or "add" this new repo to "update" these new versions of app-X and app-Y that are already installed.... but its definitely not that simple as I think there are dependencies involved (I didn't build this application but I'm am just trying to solve this and having a hard time) – ennth Jun 6 at 18:52
  • gyazo.com/2882769f830026847c870ffbf4b1e17d That's me trying "rpm -i" and upgrade... I think it's because it doesn't have the dependencies for RPM? but "yum " solves this? that's why I was trying to use yum... – ennth Jun 6 at 18:56
0

figured this out. needed to point to baseurl where /repodata/repomd.xml/ file was located.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.