Instalar compiladores en Centos 7

Hace ya unos cinco años (como pasa el tiempo) publiqué una entrada muy escueta en la que indicaba la forma de instalar los compiladores en Centos y RHEL. Básicamente era instalar vía yum los siguientes paquetes:

# yum install gcc gcc-c++ autoconf automake

Quería ampliar esta información ahora que tenemos Centos 7 y RHEL 7. En este caso, vamos a ver como instalar todo lo necesario para compilar en el sistema junto con el resto de herramientas de desarrollo que también necesitaremos.

Toda la instalación se va a basar en un único comando ya que podemos instalar todos los paquetes a través de un grupo preestablecido de yum llamado «Development Tools«:

# yum group list | grep "Development Tools"
  Development Tools

Si hacemos una consulta de la información del grupo vemos todos los paquetes que instalarán, entre ellos se encuentran paquetes imprescindibles (autoconf, gcc, gcc++, automake, patch, make) y otros opcionales (cscope, byacc, patchutils, git…):

# yum group info "Development Tools"
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.nfsi.pt
 * epel: anorien.csc.warwick.ac.uk
 * extras: mirrors.nfsi.pt
 * updates: mirrors.nfsi.pt

Group: Development Tools
 Group-Id: development
 Description: A basic development environment.
 Mandatory Packages:
   +autoconf
   +automake
    binutils
   +bison
   +flex
   +gcc
   +gcc-c++
    gettext
   +libtool
    make
   +patch
    pkgconfig
   +redhat-rpm-config
   +rpm-build
   +rpm-sign
 Default Packages:
   +byacc
   +cscope
   +ctags
   +diffstat
   +doxygen
   +elfutils
   +gcc-gfortran
   +git
   +indent
   +intltool
   +patchutils
   +rcs
   +subversion
   +swig
   +systemtap
 Optional Packages:
   ElectricFence
   ant
   babel
   bzr
   ccache
   chrpath
   clips
   clips-devel
   clips-doc
   clips-emacs
   clips-xclips
   clipsmm-devel
   clipsmm-doc
   cmake
   cmucl
   colordiff
   compat-gcc-44
   compat-gcc-44-c++
   compat-gcc-44-g77
   cvs
   cvsps
   darcs
   dejagnu
   email2trac
   expect
   ftnchek
   gcc-gnat
   gcc-objc
   gcc-objc++
   ghc
   git
   haskell-platform
   imake
   javapackages-tools
   ksc
   libstdc++-docs
   lua
   mercurial
   mock
   mod_dav_svn
   nasm
   nqc
   nqc-doc
   ocaml
   perltidy
   python-docs
   qgit
   rpmdevtools
   rpmlint
   sbcl
   systemtap-sdt-devel
   systemtap-server
   trac
   trac-git-plugin
   trac-mercurial-plugin
   trac-webadmin
   translate-toolkit

Para instalar el grupo de paquetes, tan sencillo como ejecutar.

# yum group install "Development Tools"

Si por algún casual no quisieramos instalar los paquetes opcionales, o quisieramos personalizar los paquetes a instalar del un grupo según categoría (mandatory, optional, default) lo podemos definir con la variable «group_package_types» en el archivo de configuraciónd de yum /etc/yum.conf:

group_package_types
List of the following: optional, default, mandatory. Tells yum which type of packages in groups
will be installed when 'groupinstall' is called. Default is: default, mandatory