未经管理员许可安装 gfortran

问题描述

我想在服务器上安装 kaldi,当我运行 check_dependencies.sh 时,它告诉我应该安装 gfortran,但我不允许使用 sudo。

我尝试从 anaconda 安装 gfortran,但它只显示 gfortran 无法从当前渠道使用,即使我已经更新了我的 conda。

有什么替代方法吗?谢谢!!

解决方法

您可以轻松地在您的主目录中安装 GCC,而无需任何 root 或管理员权限。

只需下载源代码(例如您选择的快照),运行提供的 ./contrib/download_prerequisites,然后运行神圣的三重奏 configure --prefix=$HOME --enable-languages=c,c++,fortranmakemake install

我建议在不同的目录中运行这些。通常,只需遵循 https://gcc.gnu.org/wiki/InstallingGCC 可能的命令序列的完整示例位于页面底部。

,

我通常使用 conda-forge::compilers 包来满足我的编译需求。它包括 C、C++ 和 FORTRAN,以及平台上的抽象(即,为 osx-64linux-64 等提供等效的编译器)。

在这种特殊情况下,以下环境似乎足以编译 Kaldi:

kaldi-compile.yaml

name: kaldi-compile
channels:
  - conda-forge
dependencies:
  - compilers  # this covers C,C++,and FORTRAN
  - make
  - cmake
  - icu
  - openblas   # `mkl` could be used instead

在 Mambaforge 容器中测试了这个:

docker run --rm -it condaforge/mambaforge bash

与:

Docker 会话

## create env
mamba create -yn kaldi-compile compilers make cmake icu openblas

## activate env
conda activate kaldi-compile

## basic install instructions
cd /home
git clone https://github.com/kaldi-asr/kaldi.git kaldi --origin upstream
mkdir -p kaldi/build && cd kaldi/build

## configure,build,install
cmake -DCMAKE_INSTALL_PREFIX=../dist .. 
cmake --build . --target install -- -j8

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...