Установка 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 группы, добавив к нему библиотечные и двоичные пути перед стандартным путем.