以用户身份在 Linux 中安装 gfortran

Installing gfortran in Linux as a user

我是 Linux (CentOS 6.6) 服务器的非管理员用户。我通过 windows 台计算机上的终端程序登录。我的问题是 IT 对我升级 GCC/gfortran 感到不舒服,所以我只想 运行 从我的个人文件夹中升级它。他们声称最新的 yum(此 OS 版本的 devtoolset-3)将降级他们拥有的一些其他功能。反正不是最新版的GCC。

我已经从 gfortran.com 下载了最新的 GCC 5.3 二进制文件和先决条件,几乎可以编译我的测试代码。实际上,当我执行以下操作时,它将使用 -c 进行编译,但不会 link。该文件夹是我放置先决条件的地方,我也将 /usr/lib64 目录中的内容复制到那里。

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

报错信息如下: collect2:致命错误:找不到 'ld'

但是ld确实存在

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

经过一番努力,我已经回答了我自己的问题!要以非管理员身份将 GCC 安装到我自己的个人 Linux 帐户,我最终不得不编译 GCC 而不是使用我最初下载的二进制文件。我的朋友是 make install,它知道一切都需要去哪里,而我的二进制文件没有。

关键是使用以下命令安装到我的用户根目录 /GCC 与自己构建方法 (-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 时创建的目录的根目录中。然后解压缩它们并 link 它们就像在您已经解压缩的批处理文件中所做的那样。/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

目前我正在使用以下命令 运行ning gfortran,但稍后我会将其添加到我的 .profile 中。

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

有效!最新版本的 GCC 运行ning 来自我的本地 Linux 用户非管理员帐户!

编辑以添加我们如何为网络组解决此问题: IT 不想覆盖原始安装,所以我们安装到某个网络文件夹 /gcc-5.3.0 。然后我们修改了组的 .profile 以在标准路径之前添加库和二进制路径。