skip to Main Content

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

2

Answers


  1. Chosen as BEST ANSWER

    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


  2. From a fresh start of debian:10:

    echo 'deb http://deb.debian.org/debian testing main' > /etc/apt/sources.list.d/testing.list
    apt update
    cat <<EOF > /etc/apt/preferences.d/pin
    Package: *
    Pin: release a=stable
    Pin-Priority: 700
    
    Package: *
    Pin: release a=testing
    Pin-Priority: 650
    EOF
    
    apt install -qq -y -t testing build-essential
    

    yields:

    # g++ -v
    gcc version 9.3.0 (Debian 9.3.0-11) 
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search