18

I am doing a system wide yum update on RHEL 5.5 and the IUS EPEL repository is throwing a missing dependency error:

php53-mcrypt-5.3.3-4.ius.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-   5.3.3-4.ius.el5.x86_64 (installed)
Error: Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-5.3.3-4.ius.el5.x86_64 (installed)

Is there is a way to run YUM update against all the other repositories ignoring the IUS EPEL repo to skip this dependency issue?

Clarification

I am trying to install the updates from the Redhat Network only. I cannot find the repo name so I am unable to do something like sudo yum --disablerepo=* --enablerepo=rhel update as the version of yum I am using does not support multiple repositories listed after --disablerepo.

Update

My temporary workaround is to run sudo yum --exclude=php53* update. I am convinced that there is a better way. This better way includes fixing the actual problem, so I filed a bug with the IUS Community Project as well.

Update #2

Looks like I found the issue with the dependency. I still think there should be a viable workaround.

Thanks!

1
  • I've updated my answer to take your clarification into account.
    – plasmid87
    May 29, 2012 at 13:35

4 Answers 4

30

Try the disable repo switch:

--disablerepo=REPONAME

UPDATE

To find all repositories currently "known" (enabled and disabled):

yum repolist all

Then to find which repository is giving you grief for the above package, try:

yum list php53-mcrypt-5.3.3-4.ius.el5.x86_64 --showduplicates

This will then show which of your repositories provide the above package (you'll see "installed" on the list too, to show the locally installed packages).

Try the disable switch again once you know the repository using the disable repo switch.

yum update --disablerepo=[from above]

Failing the steps above to single-out the repository you want to omit, try having a look through /etc/yum.repos.d/, which is the RHEL default location for repository definitions. Once in this directory, locate all non-standard RHEL base and updates repository files and include enabled=0, e.g.,

[repo]
enabled=0

Hope this helps.

7
  • This might work if I was able to specify multiple repositories. I tried --disablerepo=epel --disablerepo=ius and --disablerepo=epel,ius.
    – Robin
    May 29, 2012 at 13:21
  • yum repolist all shows that only the following repos are enabled: epel, ius and rhel-x86_64-server-5. Your --showduplicates command shows that package as installed from the ius repo. So I tried the following sudo yum --disablerepo=* --enablerepo=rhel-x86_64-server-5 update and it is still throwing a dependency error on the same package. As well I tried disabling the repos by changing the enabled=0 setting under /etc/yum.repos.d/
    – Robin
    May 29, 2012 at 13:42
  • I imagine that when you installed the IUS repo, it was configured to be enabled by default. Try this instead: sudo yum update --disablerepo=ius assuming that all other repos are enabled by default. Otherwise, try just sudo yum update --exclude=php53-mcrypt-5.3.3-4.ius.el5.x86_64 to skip this package altogether.
    – plasmid87
    May 29, 2012 at 13:48
  • Neither of these options work. I am missing something.
    – Robin
    May 29, 2012 at 14:05
  • I can only imagine then that something else needs that package upgraded as part of the update process. If you run sudo yum deplist php53-mcrypt-5.3.3-4.ius.el5.x86_64 it'll show you all dependencies and providers for that particular package. In my experience with PHP packages and RHEL, this is a common problem. Not wanting to deviate from the issue at hand, but I've found Remi to provide the best packages for PHP, I have never had a dependency issue with PHP after moving to their repos.
    – plasmid87
    May 29, 2012 at 14:29
1

You can disable multiple repositories on the yum command line:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 --disablerepo=myrepo3

However, if you do that, you must explicitly enable the repo you want:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 \
           --disablerepo=myrepo3 --enablerepo=TheRepoIWant
1

The easiest way to do this is by commenting the lines with your unwanted repo in /etc/yum.repos.d/

0

You can add enabled=0 to the repository configuration file to disable it.

Example of repository configuration file http://www.cyberciti.biz/tips/rhel5-fedora-core-add-new-yum-repository.html.

You must log in to answer this question.

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