установите последний gcc на rhel 6 x86_64

Кэш Linux является кэшем блока не кэш файла. В этом отношении Linux уже имеет эту функцию, поскольку это - кэш. Кажется, что единственная специальная вещь о Суперкэше, это - кэш блока и не кэш файла.

От Системного руководства Adminstrator Linux...

Кэш на самом деле не буферизует файлы, но блоки, которые являются самыми маленькими единицами диска ввод-вывод (в соответствии с Linux, они обычно - 1 КБ). Таким образом, также каталоги, супер блоки, другие бухгалтерские данные файловой системы и диски нефайловой системы кэшируется.

http://linux.about.com/od/lsa_guide/a/gdelsa44.htm

Linux использует буферизацию обратной записи, которая пишет в диск после кэша. Это совпадает с записью задержки.

Таким образом, Linux уже имеет каждую функцию Суперкэша.

13
20.03.2017, 12:18
4 ответа

Самый простой способ - использовать бинарная сборка, предоставляемая через репозиторий YUM. Одним из таких вариантов может быть использование репозитория hop5.in . В частности, эта страница: gcc - Различные компиляторы (C, C ++, Objective-C, Java, ...) . Они предоставляют 4.8.2, который должен работать с CentOS 6.3 или 6.4. Возможно, вы захотите выполнить обновление заранее:

$ sudo yum update

Другой вариант - использовать Developer Toolset , в частности, версию в комплекте, предоставляемую Scientific Linux.

Следуя инструкциям по установке , вы в основном выполните следующие 2 шага:

добавите репозитории
$ sudo wget -O /etc/yum.repos.d/slc6-devtoolset.repo \
    http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
$ wget -O /etc/yum.repos.d/slc5-devtoolset.repo \
    http://linuxsoft.cern.ch/cern/devtoolset/slc5-devtoolset.repo
install devtoolset
$ sudo yum install devtoolset-2

Обновление # 1

Репозиторий hop5.in YUM, похоже, был удален, поэтому единственный выход - использовать метод devtoolset, выделенный выше.

Дополнительные примеры установки через devtoolset выделены в этом GitHub Gist: Установка gcc 4.8 и Linuxbrew на CentOS 6 .

4
27.01.2020, 19:54

вы можете попробовать Buid исходного кода gcc. GCC требует MPC, MPFR и GMP в качестве предварительных условий. Для GCC 4.8 зависимости версий: MPC 0.8 GMP 6.0 MPFR 2.4.2. Загрузить исходные пакеты и установить все пакеты в /usr/lib. Порядок установки: gmp, mpfr, mpc

{{1 }}
-1
27.01.2020, 19:54

Red Hat Software Collections поставляется с GCC 4.9, вы можете посмотреть на включение этого канала.

3
27.01.2020, 19:54

Я собирал новые версии gcc для rhel6 уже несколько версий (начиная с 4.7.x и заканчивая 5.3.1).

Процесс довольно прост благодаря Якубу Елинеку из Redhat fedora gcc builds found on koji

Просто возьмите последний src rpm для той версии, которая вам нужна (например, 5.3.1).

В принципе, вы должны начать с определения требований к сборке, выполнив rpm -qpR src.rpm, ища любые требования к версии:

rpm -qpR gcc-5.3.1-4.fc23.src.rpm | grep -E '= [[:digit:]]'
binutils >= 2.24
doxygen >= 1.7.1
elfutils-devel >= 0.147
elfutils-libelf-devel >= 0.147
gcc-gnat >= 3.1
glibc-devel >= 2.4.90-13
gmp-devel >= 4.1.2-8
isl = 0.14
isl-devel = 0.14
libgnat >= 3.1
libmpc-devel >= 0.8.1
mpfr-devel >= 2.2.1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
systemtap-sdt-devel >= 1.3

Теперь наступает утомительная часть - любой пакет, который имеет версию выше, чем предоставляет yum для вашего дистрибутива, должен быть загружен с koji, и рекурсивно повторять процесс, пока все требования к зависимостям не будут выполнены.

Я жульничаю, кстати.
Обычно я перепаковываю rpm, чтобы он содержал правильное дерево сборки, используя средства gnu для использования правильно размещенных и названных требований, поэтому gmp/mpc/mpfr/isl (cloog больше не требуется) загружаются и распаковываются по правильному пути, а новый (раздутый) tar перестраивается в новый src rpm (с небольшими изменениями в файле spec) без зависимости от их упакованных (rpm) версий. Поскольку я знаю, что никто не использует ADA, я просто удаляю части, относящиеся к gnat, из specfile, что еще больше упрощает процесс сборки, оставляя мне только binutils.
Gcc может собирать со старыми binutils, поэтому, если вы торопитесь, отредактируйте спецификационный файл так, чтобы он требовал версию binutils, которая уже есть в вашей системе. Это приведет к немного искалеченному gcc, но в основном он будет работать достаточно хорошо.
В основном это работает достаточно хорошо.

UPDATE 1

Самый простой метод открытия src rpm - это, вероятно, yum install rpm и доступ ко всему в ~/rpmbuild, но я предпочитаю

mkdir gcc-5.3.1-4.fc23
cd gcc-5.3.1-4.fc23
rpm2cpio ../gcc-5.3.1-4.fc23.src.rpm | cpio -id
tar xf gcc-5.3.1-20160212.tar.bz2
cd gcc-5.3.1-20160212
contrib/download_prerequisites
cd ..
tar caf gcc-5.3.1-20160212.tar.bz2 gcc-5.3.1-20160212
rm -rf gcc-5.3.1-20160212
# remove gnat
sed -i '/%global build_ada 1/ s/1/0/' gcc.spec
sed -i '/%if !%{build_ada}/,/%endif/ s/^/#/' gcc.spec
# remove gmp/mpfr/mpc dependencies
sed -i '/BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1, libmpc-devel >= 0.8.1/ s/.*//' gcc.spec
# remove isl dependency
sed -i '/BuildRequires: isl = %{isl_version}/,/Requires: isl-devel = %{isl_version}/ s/^/#/' gcc.spec
# Either build binutils as I do, or lower requirements
sed -i '/Requires: binutils/ s/2.24/2.20/' gcc.spec
# Make sure you don't break on gcc-java
sed -i '/gcc-java/ s/^/#/' gcc.spec

У вас также есть возможность установить префикс, чтобы этот rpm устанавливался бок о бок без нарушения distro rpm (но это требует изменения имени и некоторых модификаций внутренних имен пакетов). Я обычно добавляю модуль окружения, чтобы я мог загружать и выгружать этот gcc по мере необходимости (аналогично тому, как работают коллекции) как часть rpm (поэтому я добавляю новую зависимость).

Наконец, создайте дерево rpmbuild и поместите файлы туда, куда они должны пойти и собираться:

yum install rpmdevtools rpm-build
rpmdev-setuptree
cp * ~/rpmbuild/SOURCES/
mv ~/rpmbuild/{SOURCES,SPECS}/gcc.spec
rpmbuild -ba ~/rpmbuild/SPECS/gcc.spec

UPDATE 2

Обычно не следует использовать "серверную" ОС для разработки - вот почему у вас есть fedora, которая уже поставляется с последней версией gcc. У меня есть некоторые особые требования, но вам действительно следует рассмотреть возможность использования правильного инструмента для этой задачи - rhel/centos для запуска производственных приложений, fedora для разработки этих приложений и т.д.

2
27.01.2020, 19:54

Теги

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