【问题标题】:make error, gcc: "make[4]: gcc: permission denied" (Arch Linux)出错,gcc:“make [4]:gcc:权限被拒绝”(Arch Linux)
【发布时间】:2020-04-29 15:23:15
【问题描述】:

我在尝试编译某些包时遇到了一个相当奇怪的make 错误。我正在运行 Arch Linux 5.6.7

例如,在尝试编译 R 3.6 时,我收到以下错误(最后的完整输出):

gcc -shared -fopenmp -L/usr/local/lib64 -o libRblas.so blas.o  cmplxblas.o -lgfortran -lm -lquadmath
make[4]: gcc: Permission denied

但是gcc 是最新的,适用于其他安装,并且一切似乎都正确配置:

[cmasso6@cmasso6 R-3.6.3]$ gcc --version
gcc (Arch Linux 9.3.0-1) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[cmasso6@cmasso6 R-3.6.3]$ which gcc
/usr/bin/gcc

我查看了包的 Makeconf 文件,其中包含以下行:CC=gcc。将其更改为 CC=/usr/bin/gcc 即可。

这是我的$PATH

/usr/lib/aurutils:/usr/lib:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

同样,gcc 从命令行正确运行。不知道怎么回事。

为了清楚起见,我通过更改 Makeconf 文件完成了此安装工作,而且我还可以使用pacman 安装 R 4.0 而不会有任何问题。但是,我在尝试安装一些 R 包时遇到了同样的错误,比如ps。所以我猜gcc 和/或make 存在一个普遍问题。

我不知道该怎么做,任何帮助将不胜感激!

make 错误的完整输出:

[cmasso6@cmasso6 R-3.6.3]$ make
make[1]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/m4'
make[1]: Nothing to be done for 'R'.
make[1]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/m4'
make[1]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/tools'
make[1]: Nothing to be done for 'R'.
make[1]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/tools'
make[1]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/doc'
make[2]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/doc/html'
make[2]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/doc/html'
make[2]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/doc/manual'
make[2]: Nothing to be done for 'R'.
make[2]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/doc/manual'
make[1]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/doc'
make[1]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/etc'
make[1]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/etc'
make[1]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/share'
make[1]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/share'
make[1]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/src'
make[2]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/src/scripts'
creating src/scripts/R.fe
make[3]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/src/scripts'
make[3]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/src/scripts'
make[2]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/src/scripts'
make[2]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/src/include'
config.status: creating src/include/config.h
config.status: src/include/config.h is unchanged
make[3]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/src/include/R_ext'
make[3]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/src/include/R_ext'
make[2]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/src/include'
make[2]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/src/extra'
make[3]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/src/extra/blas'
make[4]: Entering directory '/home/cmasso6/Downloads/R-3.6.3/src/extra/blas'
gfortran -fno-optimize-sibling-calls -fpic  -g -O2  -c blas.f -o blas.o
gfortran -fno-optimize-sibling-calls -fpic  -g -O2  -c cmplxblas.f -o cmplxblas.o
gcc -shared -fopenmp -L/usr/local/lib64 -o libRblas.so blas.o  cmplxblas.o -lgfortran -lm -lquadmath
make[4]: gcc: Permission denied
make[4]: *** [Makefile:37: libRblas.so] Error 127
make[4]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/src/extra/blas'
make[3]: *** [Makefile:32: R] Error 2
make[3]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/src/extra/blas'
make[2]: *** [Makefile:35: make.blas] Error 2
make[2]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/src/extra'
make[1]: *** [Makefile:28: R] Error 1
make[1]: Leaving directory '/home/cmasso6/Downloads/R-3.6.3/src'
make: *** [Makefile:61: R] Error 1

【问题讨论】:

    标签: r linux gcc makefile archlinux


    【解决方案1】:

    您在PATH 的某个目录中的某处有一个名为gcc 的目录,位于包含gcc 二进制文件的目录之前。

    这是 GNU gnulib 库中的一个模块中的一个错误,GNU make 使用它来定位 PATH 上的内容。见https://savannah.gnu.org/bugs/?57962

    【讨论】:

    • 哇,很棒的收获@MadScientist
    猜你喜欢
    • 1970-01-01
    • 2016-12-12
    • 2011-04-12
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 2021-11-22
    • 2013-08-11
    相关资源
    最近更新 更多