Как установить g ++ 4.9 на debian stretch

POSIX указывает, что Утилита unlink вызывает функцию unlink библиотеки C и ничего больше. Это не требует выбора. Если вы передадите действительный путь чему-то, что не является каталогом, и если у вас есть права на запись в каталог, где находится этот объект, то unlink удалит его.

rm - это традиционная команда Unix, которая имеет немного других функций и не является надмножеством unlink (см. Ниже).

Во-первых, rm выполняет проверки безопасности. Если вы попытаетесь rm объект, для которого у вас нет разрешений на запись (которые не имеют отношения к вашей способности удалить его: разрешения содержащего каталога есть!) rm , тем не менее, не откажется, если -f указан. rm обычно жалуется, если файл не существует, как и unlink ; однако с -f , rm не жалуется. Это часто используется в файлах Makefile ( clean: @rm -f $ (OBJS) ... ), поэтому make clean не дает сбоев, когда нечего удалять.

Во-вторых, rm имеет параметр -i для интерактивного подтверждения удаления.

В-третьих, rm имеет -r для рекурсивного удаления каталога, что не требуется для unlink , поскольку функция библиотеки C не делает этого.

Утилита unlink не совсем урезанная rm . Он выполняет подмножество того, что делает rm , но имеет семантику, которая представляет собой комбинацию rm с -f и rm без -f .

Предположим, вы хотите просто удалить обычный файл независимо от его собственных прав. Кроме того, предположим, что вы хотите, чтобы команда завершилась ошибкой, если файл не существует, или по любой другой причине. Ни rm file , ни rm -f file не соответствуют требованиям. rm-файл откажется, если файл недоступен для записи. Но rm -f file не будет жаловаться, если файл отсутствует. unlink file выполняет свою работу.

unlink , вероятно, был введен, потому что rm слишком умен: иногда вам просто нужна чистая семантика Unix unlink : "удалите эту запись в каталоге, если разрешения каталога разрешают ".

8
18.11.2018, 16:34
3 ответа

Я заработал (очень ненадежно), добавив репозиторий jessie и затем установив его. Включите в /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

Сделайте apt-get update && apt-get install g++-4.9

После установки закомментируйте строки jessie, чтобы они не конфликтовали позже с stretch.Было бы намного лучше, если бы Debian включал другие версии g++. Как ни странно, у нас есть много версий gcc, но только одна версия g++ (6.0).

4
27.01.2020, 20:13

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

Обратите внимание на следующий полезный ответ: https://askubuntu.com/a/428199 / 456089

Вместо этого просто загрузите все это:

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

С серверов Debian, например:

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

Затем установите их, например: $ для пакета в * .deb; сделать sudo dpkg --install "$ package"; done

Обратите внимание, что вы можете столкнуться с некоторыми проблемами с зависимостями, поэтому вы хотите использовать как можно меньше пакетов в этом списке.

2
27.01.2020, 20:13

Это работает для debian10.3 без каких-либо конфликтов пакетов .

Он загружает пакеты напрямую с FTP-сервера Debian, а затем устанавливает их через 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
8
25.03.2020, 16:10

Теги

Похожие вопросы