Установка старого пакета gcc на Centos 8 через dnf

for (( i = 1; i <= 30; ++i )); do
    ( cd "directory$i" &&
      paste tableNC023.txt tableNC088.txt tableNC102.txt... ) >"./merged_tables/tables_directory$i.txt"
done

Это использует cdдля входа в каталог в подоболочке. Если cdуспешно, pasteиспользуется для создания объединенных данных. Вывод из подоболочки перенаправляется в ваш файл результатов, как и раньше.

Поскольку cdвыполняется в подоболочке, не требуется никаких cd.., cd -или cd "$OLDPWD", чтобы "отступить" для следующей итерации.


Альтернатива для более аккуратного кода:

tables=( tableNC023.txt tableNC088.txt tableNC102.txt
         more tables here )

for (( i = 1; i <= 30; ++i )); do
    ( cd "directory$i" &&
      paste "${tables[@]}" ) >"./merged_tables/tables_directory$i.txt"
done

Мое использование for (( i... ))вместо for i in {...}основано исключительно на личных предпочтениях.

1
25.08.2020, 13:41
1 ответ

Вы можете перейти только на версию, уже предлагаемую CentOS 8, а GCC 6.3.1 не отвечает всем требованиям.

К сожалению, единственный способ установить эту версию GCC, не причиняя вреда вашей системе, — загрузить исходный код, скомпилировать и установить его, например, в. /опт/gcc6

Что касается флагов компиляции, проверьте Fedora или CentOS src.rpms -, вам нужно только добавить--prefix=/opt/gcc6

Обновление :вот как я скомпилировал GCC 4 -7:

Распакуйте его.

(under root/sudo) yum install gcc make glibc-devel gmp-devel mpfr-devel gmp-devel

export CFLAGS="-O2 -march=native -pipe"
export CXXFLAGS=$CFLAGS
cd gcc-6.3.1
mkdir BUILD
cd BUILD

../configure --enable-shared --enable-threads=posix --disable-stage1-checking \
--with-system-zlib --enable-__cxa_atexit --enable-multilib --with-gnu-as \
--with-gnu-ld --enable-languages="c,c++" --without-x --prefix=/opt/gcc \
--disable-libunwind-exceptions --with-gmp=/usr
1
18.03.2021, 23:10

Теги

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