CentOS 6: Install package dependencies with yum-builddep

This article will describe installing package dependencies with yum-builddep.

1 yum-builddep does not work

yum-builddep cannot install package dependencies on CentOS.

$ sudo yum-builddep -y emacs
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
No source RPM found for 1:emacs-23.1-28.el6.x86_64
No uninstalled build requires

This is because source repository is not defined in /etc/yum.repos.d.

2 Append source repository

Append source repository to etc/yum.repos.d with the following script.

#!/bin/sh

GPGKEY=`ls /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-[0-9]*`
REPO=/etc/yum.repos.d/CentOS-Sources.repo

if [ ! -f ${REPO} ]; then
  echo '[base-source]
name=CentOS-$releasever - Base Sources
baseurl=http://vault.centos.org/centos/$releasever/os/Source/
gpgcheck=1
enabled=0
gpgkey=file://GPGKEY

#released updates
[updates-source]
name=CentOS-$releasever - Updates Sources
baseurl=http://vault.centos.org/centos/$releasever/updates/Source/
gpgcheck=1
enabled=0
gpgkey=file://GPGKEY

#additional packages that may be useful
[extras-source]
name=CentOS-$releasever - Extras Sources
baseurl=http://vault.centos.org/centos/$releasever/extras/Source/
gpgcheck=1
enabled=0
gpgkey=file://GPGKEY

#additional packages that extend functionality of existing packages
[centosplus-source]
name=CentOS-$releasever - Plus Sources
baseurl=http://vault.centos.org/centos/$releasever/centosplus/Source/
gpgcheck=1
enabled=0
gpgkey=file://GPGKEY
' | sudo tee ${REPO} > /dev/null
  sudo sed -i -e "s;gpgkey=file://GPGKEY;gpgkey=file://${GPGKEY};g" ${REPO}
fi

Now, yum-builddep can install package dependencies on CentOS.

$ sudo yum-builddep -y emacs
Loaded plugins: fastestmirror, refresh-packagekit
Enabling base-source repository
Enabling extras-source repository
Enabling updates-source repository
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
base-source
base-source/primary_db
extras-source
extras-source/primary_db
updates-source
updates-source/primary_db
Getting requirements for 1:emacs-23.1-28.el6.src
 --> zlib-devel-1.2.3-29.el6.x86_64
 --> xorg-x11-proto-devel-7.7-13.el6.noarch
 --> texinfo-4.13a-8.el6.x86_64
<snip>

Complete!