Recently, there has been some gnashing of teeth around the Internet regarding the latest ATrpms build of ffmpeg for RHEL and its clones (including Scientific Linux and CentOS). If you try to install or upgrade it, you get something like the following not-terribly-helpful error once yum finishes its dependency resolution:

Error: Package: libavcodec53-0.10-54.el6.x86_64 (atrpms)
           Requires: libvpx.so.1()(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Thankfully, this is very easy to fix! Read on for details!

The problem stems, of course, from the fact that RHEL rarely updates software versions in a major release. (This is why we run it, right?) So, the libvpx provided by the system is old and will stay that way. ffmpeg, obviously, is expecting functionality that has been introduced since that time.

ATrpms has a (poorly named) "testing" repository, which is where they place things that overwrite OS-provided packages. Since they have many things in their testing repository, and you only want the updated libvpx, all you have to do is tell yum this. Simple, eh?

The summary of what you need to do is as follows:

  1. Enable the atrpms-testing repo.
  2. Ensure it has a high priority. (It seems most sites use the yum priorities plugin, so do this.)
  3. Tell it you only want the libvpx packages.
  4. Update your packages.

If the summary isn't enough to get it done for you, fear not! It's simpler than it sounds!

Edit (as root) /etc/yum.repos.d/atrpms-testing.repo in your text editor of choice and make sure that the [atrpms-testing] section reads as follows: (Note that changed/added lines are emphasized.)

[atrpms-testing]
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms testing
failovermethod=priority
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/testing
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms
priority=1
includepkgs=libvpx*

You should be able to safely just replace your existing [atrpms-testing] section with that and save the file, but if you want to know what the three changed lines do, good for you!

  • enabled=1 simply enables the repository so yum can update from it.
  • priority=1 makes sure this repository has the highest priority. You really just want to make sure it's at least lower than the vendor (rhel, sl, centos, etc.) repositories to be safe. The vendor repositories are 99 if you haven't set a specific priority for them. (It's only used by the priorities yum plugin, but it's perfectly safe and ineffective if you don't use priorities and probably a good thing to have in case you enable the plugin later.)
  • includepkgs=libvpx* is the real magic here. The includepkgs keyword is a list of (space-separated) packages which are the only ones that yum will see from this repository. As you can see, it allows wildcards and will now only see the libvpx packages from the testing repository.

Now, you should be able to just yum update (or yum install if you don't have ffmpeg yet) and yum will do its usual magic!

By the way, Axel Thimm of ATrpms gives a brief synopsis of the basic problem in a post on their mailing list. Unfortunately, they haven't posted instructions on how to resolve the problem, hence these directions.

Hopefully this will get your yum happy again with ffmpeg. Enjoy!

If you have a desire to share these instructions on twitter, you can retweet this:
(Click the date to see the original tweet.)

0 comments

Please insert the result of the arithmetical operation from the following image:

Please insert the result of the arithmetical operation from this image. =