Search code examples
c++dockergccdebian

How to install gcc-9 on debian:latest docker


In order to use the C++17 include <filesystem> I need gcc-9 package in my debian docker.

By default debian:latest (aka 10 or buster) will install gcc 8.3.0 from the regular distro repo.

Is there any PPA, testing repo, whatever, where I can easily install a gcc-9 (or later) package (i.e. not build it from source)

Thanks !

note: need gcc-9 to have good C++17 <filesystem> support.
GCC 9 Release note:

Using the types and functions in does not require linking with -lstdc++fs now.

src: https://gcc.gnu.org/gcc-9/changes.html

note2: CMake 3.16* doesn't support any cxx_filesystem compiler feature AFAIK.

note3: you can found log here: https://github.com/Mizux/KalistoUnpacker/runs/642516660?check_suite_focus=true


Solution

  • In my Dockerfile I did:

    FROM debian:latest AS env
    ...
    RUN echo 'deb http://deb.debian.org/debian testing main' >> /etc/apt/sources.list
    RUN apt update -y
    RUN apt install -y gcc
    

    note: I added these line after the install of build-essential so technically the container install the "default" gcc then it is updated by the one in the testing repo...

    note2: Using RUN gcc --version I've got gcc (Debian 9.3.0-11) 9.3.0 :D