Установка gfortran в Linux как пользователь

Я не являюсь администратором на сервере Linux (CentOS 6.6) на работе. Я вхожу через терминальную программу на компьютере с Windows. Моя проблема в том, что ИТ-специалистам не очень удобно обновлять GCC/gfortran, поэтому я хочу просто запустить его из своих личных папок. Они утверждают, что последняя версия yum (devtoolset-3 для этой версии ОС) понизит некоторые другие функции, которые у них есть. Это не последняя версия GCC в любом случае.

Я загрузил последние версии GCC 5.3 и необходимые компоненты с gfortran.com и почти могу получить свой тестовый код для компиляции. На самом деле, когда я делаю следующее, он компилируется с -c, но не связывается. В эту папку я положил необходимые компоненты, а также скопировал туда содержимое из каталога /usr/lib64.

LD_LIBRARY_PATH=/users/home/me/me/gcc53mark/my_lib
export LD_LIBRARY_PATH
./gfortran test.f90 

Сообщение об ошибке выглядит следующим образом: collect2: неустранимая ошибка: не удается найти 'ld'

Но лд существует

-bash-4.1$ whereis ld
ld: /usr/bin/ld /usr/share/man/man1/ld.1.gz

1 ответ

Решение

После долгих усилий я ответил на свой вопрос! Чтобы установить GCC в мою личную учетную запись Linux без прав администратора, мне пришлось скомпилировать GCC, а не использовать двоичные файлы, которые я изначально скачал. Мой друг был make install, который знает, куда нужно идти, чего у меня не было с двоичными файлами.

Ключ должен был установить в мой пользовательский корневой каталог /GCC следующую команду, предоставляемую методом build-it-self (-prefix):

../gcc-5.3.0/configure --prefix$HOME/gcc-5.3.0 --enable-languages=c,c++,fortran --disable-multilib

Для меня мне пришлось отключить multilib, потому что я думаю, что моя система имеет только 64-битные библиотеки (я думаю, что это было причиной моей первоначальной проблемы).

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

https://gcc.gnu.org/wiki/InstallingGCC

Предварительные условия должны быть взяты отсюда, помещены в корень каталога, который создается при разархивировании GCC. Затем распакуйте их и свяжите их, как это делается в пакетном файле, который вы уже распаковали./contrib/download_prerequisites.

ftp://gcc.gnu.org/pub/gcc/infrastructure/

Наконец, мне нужно выполнить следующую команду, после того как все будет готово, чтобы она посмотрела на новые библиотеки. Я добавлю это в свой.profile, когда буду готов полностью перейти на локальную более новую версию.

LD_LIBRARY_PATH=/users/home/myself/gcc-5.3.0/lib64
export LD_LIBRARY_PATH

Сейчас я запускаю gfortran со следующей командой, но позже добавлю это в свой.profile.

/users/home/myself/gcc-5.3.0/bin/gfortran Test.f90

Оно работает! Последняя версия GCC запущена из моей локальной учетной записи пользователя Linux без прав администратора!

Отредактировано, чтобы добавить, как мы решили это для сетевой группы: ИТ-отдел не хотел перезаписывать исходную установку, поэтому мы установили в какую-то сетевую папку /gcc-5.3.0 . Затем мы изменили.profile группы, добавив к нему библиотечные и двоичные пути перед стандартным путем.

Другие вопросы по тегам