Search code examples
dockerdocker-composedockerfiledocker-machine

How to install latest version of make in centos6.6 docker container


I want to have 3.82 or newer version of make in docker container for centos6.6

[root@046f4766b93f build]# make --version
GNU Make 3.81
Copyright (C) 2006  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.

This program built for x86_64-redhat-linux-gnu

Can someone let me know how can I install latest make version using yum in my docker container for centos6.6?

[root@046f4766b93f build]# yum install make
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirrors.unifiedlayer.com
 * extras: centos.mirrors.hoobly.com
 * updates: mirrors.kernel.org
Package 1:make-3.81-23.el6.x86_64 already installed and latest version
Nothing to do

Solution

  • You can follow the procedure listed on this page. It uses an RPM made for CentOS 6 located in the Russian Fedora Fixes repository though, so be aware of that.

    I tried it like this and it works:

    # docker run --rm -it centos:6.6 bash
    [root@1857c0d2c37b /]# yum -y update
    [root@1857c0d2c37b /]# curl http://mirror.yandex.ru/fedora/russianfedora/russianfedora/fixes/el/releases/6/Everything/i386/os/russianfedora-fixes-release-6-2.R.noarch.rpm > russianfedora-fixes-release-6-2.R.noarch.rpm
    [root@1857c0d2c37b /]# rpm -Uvh russianfedora-fixes-release-6-2.R.noarch.rpm
    [root@1857c0d2c37b /]# yum install -y make
    

    After that, the version of make is 3.82:

    [root@1857c0d2c37b /]# make --version
    GNU Make 3.82
    Built for x86_64-redhat-linux-gnu
    Copyright (C) 2010  Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    

    If you want to have it already in a container, just put the commands into a Dockerfile like this:

    FROM centos:6.6
    
    WORKDIR /root
    
    RUN yum -y update && yum clean all; \
        curl http://mirror.yandex.ru/fedora/russianfedora/russianfedora/fixes/el/releases/6/Everything/i386/os/russianfedora-fixes-release-6-2.R.noarch.rpm > russianfedora-fixes-release-6-2.R.noarch.rpm && \
        rpm -Uvh russianfedora-fixes-release-6-2.R.noarch.rpm && \
        yum install -y make
    
    CMD bash
    

    And then build and run your image.

    Looking for the package through rpmfind.net shows make 3.82 available starting with CentOS 7. I tried installing that one as well, but there are too many unmet dependencies.