How install g++ 4.9 on debian stretch

This works for debian10.3 without any package conflicts.

It downloads packages directly from the Debian FTP server and then installs them through dpkg.

#!/bin/bash
set -xe

BASE_URL=http://ftp.us.debian.org/debian/pool/main/
PACKAGES=$(cat <<-END
g/gcc-4.9/cpp-4.9_4.9.2-10%2Bdeb8u1_amd64.deb
g/gcc-4.9/g%2B%2B-4.9_4.9.2-10%2Bdeb8u1_amd64.deb
g/gcc-4.9/gcc-4.9-base_4.9.2-10%2Bdeb8u1_amd64.deb
g/gcc-4.9/gcc-4.9_4.9.2-10%2Bdeb8u1_amd64.deb
g/gcc-4.9/libgcc-4.9-dev_4.9.2-10%2Bdeb8u1_amd64.deb
g/gcc-4.9/libasan1_4.9.2-10%2Bdeb8u1_amd64.deb
g/gcc-4.9/libubsan0_4.9.2-10%2Bdeb8u1_amd64.deb
g/gcc-4.9/libcilkrts5_4.9.2-10%2Bdeb8u1_amd64.deb
g/gcc-4.9/libstdc%2B%2B-4.9-dev_4.9.2-10%2Bdeb8u1_amd64.deb
m/mpfr4/libmpfr4_3.1.5-1_amd64.deb
c/cloog/libcloog-isl4_0.18.4-1+b1_amd64.deb
i/isl/libisl10_0.12.2-2_amd64.deb
i/isl/libisl15_0.18-1_amd64.deb
END
)

mkdir -p ./downloads/gcc4.9
cd ./downloads/gcc4.9

while IFS= read -r package; do
    wget -c $BASE_URL$package
done <<< "$PACKAGES"

sudo apt-get install multiarch-support
sudo dpkg -i ./*.deb

I got it working (very unsoundly) by adding jessie repo and then installing from it. Include in /etc/apt/sources.list:

deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free

Do apt-get update && apt-get install g++-4.9

After installation comment out jessie lines so that it doesn't conflict later with stretch. It would have been much better if Debian had included other g++ versions. Strangely enough, we have many versions of gcc bundled but only one version of g++ (6.0).


http://ftp.us.debian.org/debian/pool/main/g/gcc-4.9/

Note the following useful answer: https://askubuntu.com/a/428199/456089

Instead, simply download all these:

binutils_2.25-5_amd64.deb
cpp_4.9.2-2_amd64.deb
g++_4.9.2-2_amd64.deb
gcc_4.9.2-2_amd64.deb
gcc-4.9-base_4.9.2-10_amd64.deb
libasan1_4.9.2-10_amd64.deb
libatomic1_4.9.2-10_amd64.deb
libcilkrts5_4.9.2-10_amd64.deb
libgcc1_4.9.2-10_amd64.deb
libgcc-4.9-dev_4.9.2-10_amd64.deb
libgomp1_4.9.2-10_amd64.deb
libitm1_4.9.2-10_amd64.deb
liblsan0_4.9.2-10_amd64.deb 
libmpfr4_3.1.2-2_amd64.deb
libquadmath0_4.9.2-10_amd64.deb
libstdc++-4.9-dev_4.9.2-10_amd64.deb
libstdc++6
libtsan0_4.9.2-10_amd64.deb
libubsan0_4.9.2-10_amd64.deb

From Debian's servers, e.g.:

http://ftp.us.debian.org/debian/pool/main/b/binutils/binutils_2.25-5_amd64.deb

Then install them, e.g.: $ for package in *.deb; do sudo dpkg --install "$package"; done

Note that you might hit some issues with dependencies, so you want to use as few of the packages in that list as you can get away with.

Tags:

Debian

G++