≡ Menu

CentOS / RHEL 7: Install GCC (C and C++ Compiler) and Development Tools

How do I install gnu gcc compiler and related tools such as autoconf, automake, flex, c++ compiler, and bison on a CentOS 7 or Red Hat Enterprise Linux version 7 server?

You can setup a basic development environment with the following packages on a CentOS Enterprise Linux or Red Hat Enterprise Linux version 7:

  1. autoconf
  2. automake
  3. binutils
  4. bison
  5. flex
  6. gcc
  7. gcc-c++
  8. gettext
  9. libtool
  10. make
  11. patch
  12. pkgconfig
  13. redhat-rpm-config
  14. rpm-build
  15. rpm-sign

Open the Terminal app and type the following commands.

Command to list groups on a CentOS / RHEL 7

Type the following yum command:
# yum group list
Sample outputs:

Fig. 01: CentOS / RHEL 7: List Package Groups Command

Fig. 01: CentOS / RHEL 7: List Package Groups Command


Another option:
# yum group list ids
Sample outputs:

Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * epel: mirror01.idc.hinet.net
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
Available Environment Groups:
   Minimal Install (minimal)
   Compute Node (compute-node-environment)
   Infrastructure Server (infrastructure-server-environment)
   File and Print Server (file-print-server-environment)
   MATE Desktop (mate-desktop-environment)
   Basic Web Server (web-server-environment)
   Virtualization Host (virtualization-host-environment)
   Server with GUI (graphical-server-environment)
   GNOME Desktop (gnome-desktop-environment)
   KDE Plasma Workspaces (kde-desktop-environment)
   Development and Creative Workstation (developer-workstation-environment)
Available Groups:
   CIFS file server (cifs-file-server)
   Compatibility Libraries (compat-libraries)
   Console Internet Tools (console-internet)
   Desktop (basic-desktop)
   Desktop Platform (desktop-platform)
   Desktop Platform Development (desktop-platform-devel)
   Development Tools (development)
   Eclipse (eclipse)
   Educational Software (education)
   Electronic Lab (electronic-lab)
   FCoE Storage Client (storage-client-fcoe)
   Fedora Packager (fedora-packager)
   General Purpose Desktop (general-desktop)
   Graphical Administration Tools (graphical-admin-tools)
   Haskell (haskell)
   Legacy UNIX Compatibility (legacy-unix)
   Messaging Client Support (system-management-messaging-client)
   Messaging Server Support (system-management-messaging-server)
   Milkymist (milkymist)
   MySQL Database client (mysql-client)
   MySQL Database server (mysql)
   NFS file server (nfs-file-server)
   Network Storage Server (storage-server)
   SNMP Support (system-management-snmp)
   Scientific Support (scientific)
   Security Tools (security-tools)
   Server Platform (server-platform)
   Server Platform Development (server-platform-devel)
   Smart Card Support (smart-card)
   Storage Availability Tools (storage-client-multipath)
   System Administration Tools (system-admin-tools)
   System Management (system-management)
   TeX support (tex)
   TurboGears application framework (turbogears)
   Virtualization (virtualization)
   Web-Based Enterprise Management (system-management-wbem)
   Xfce (xfce-desktop)
   iSCSI Storage Client (storage-client-iscsi)
Done

Command to install GCC and Development Tools on a CentOS / RHEL 7 server

Type the following yum command as root user:
# yum group install "Development Tools"
OR
$ sudo yum group install "Development Tools"
If above command failed, try:
# yum groupinstall "Development Tools"
Sample outputs:
Animated gif.01: Installing C & C++ and related packages on a CentOS and RHEL 7

Animated gif 01: Installing C & C++ and related packages on a CentOS and RHEL 7

A note about failing groupinstall on CentOS/RHEL 7.x

To install all the packages belonging to a package group called “Development Tools” use the following command:
# yum --setopt=group_package_types=mandatory,default,optional groupinstall "Development Tools"
OR
# yum --setopt=group_package_types=mandatory,default,optional group install "Development Tools"
The yum has changed in Red Hat Enterprise Linux 7/CentOS 7. The package group “Development Tools”” has only the optional packages which by default doesn’t get installed. So we will need to pass the option --setopt=group_package_types=mandatory,default,optional to install the optional packages too.

Verify your gcc installation on a CentOS / RHEL 7 server

Type the following command to see gcc location:

$ whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz

Type the following command to see gcc compiler version:

$ gcc --version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Test gcc C compiler with a sample foo.c program

Create a file called foo.c as follows:

#include<stdio.h>
int main(void){
	printf("Hello World!\n");
	return 0;
}

To compile foo.c into foo executable file, type:
$ cc foo.c -o foo
To execute foo program, type:

$ ./foo
Hello World!

Sysadmin because even developers need heroes!!!

Share this tutorial on:
{ 17 comments… add one }
  • danilo July 14, 2014, 8:53 pm

    Just use yum install gcc*

    It will install all gcc software and upgrade all the files to satisfy dependices

  • kirti October 21, 2014, 7:09 am

    We should have no space between group and install.
    #yum groupinstall “Development Tools”

    Please update.
    Thanks

  • greendruid October 29, 2014, 10:17 am

    Please, fix ‘group install’ -> ‘groupinstall’.
    For example:
    yum groupinstall “Development Tools”

  • xfree November 27, 2014, 3:44 am

    yum group install “Development Tools”
    right is
    yum groupinstall “Development Tools”

  • tom July 12, 2015, 12:26 am

    hello, i have a Problem with gcc, when i need
    when I run include command I get the following message:
    bash: syntax error near unexpected token `newline ‘

  • lata July 12, 2015, 5:28 pm

    #yum install “development tools” is not working in centos 7

    • Mickey December 2, 2015, 5:54 pm

      Use groupinstall as the article says…

      • Donavan May 3, 2016, 10:42 pm

        for centos/rhel 7 use (missing the “s” off groups):
        yum groups install “Development Tools”

        Durring install if you get any errors regarding kernel packages ex:

        –> Finished Dependency Resolution
        Error: Package: systemtap-devel-2.8-10.el7.x86_64 (base)
        Requires: kernel-devel

        All kernel packages are on the yum exclude list so you may need to do the following:
        yum -y install kernel-devel –disableexcludes=all

        to see all groups available:
        yum groups list

  • Richard Klein July 20, 2015, 5:30 pm

    In Centos 7:
    Warning: Group development does not have any packages to install.

    • Mickey December 2, 2015, 5:55 pm

      Put quotes around the “Development Tools” group name, as per the article (copy and paste is your friend)!

  • aref ghobadi August 15, 2015, 9:39 am

    I really appreciate your help

  • AlucarD March 4, 2016, 3:34 pm

    on CentOS 7 you can try this( It is one line !!) :
    yum groupinstall "Development Tools" --setopt=group_package_types=mandatory,default,optional

    this is a yum setup.
    Have a nice day,
    AlucarD

    • vietsoft April 29, 2016, 12:27 am

      @AlucarD’s way is definitely works

  • boboc alexandru September 1, 2016, 2:34 pm

    so, how do i became root? it says i have to be root to perform this action

  • Morvan November 13, 2016, 12:07 am

    Good evening.
    Hint from AlucarD saved my day:
    yum groupinstall "Development Tools" --setopt=group_package_types=mandatory,default,optional
    Now, my Server is optimal.

  • dAnarchy November 22, 2016, 10:00 am

    Wow this is great for automating installs, thanks for the info!

Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">


   Tagged with: , ,