![无法创建目录权限被拒绝 - 即使使用 sudo 时也是如此](https://linux22.com/image/137230/%E6%97%A0%E6%B3%95%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D%20-%20%E5%8D%B3%E4%BD%BF%E4%BD%BF%E7%94%A8%20sudo%20%E6%97%B6%E4%B9%9F%E6%98%AF%E5%A6%82%E6%AD%A4.png)
我正在尝试安装gsl-2.5
-https://www.gnu.org/software/gsl/。我已经使用了该命令sudo ./configure && make && make install
,但仍然遇到权限问题:
libtool: link: ranlib .libs/libgsl.a
libtool: link: rm -fr .libs/libgsl.lax .libs/libgsl.lax
libtool: link: ( cd ".libs" && rm -f "libgsl.la" && ln -s "../libgsl.la" "libgsl.la" )
/bin/bash ./libtool --tag=CC --mode=link gcc -g -O2 -o gsl-randist gsl-randist.o libgsl.la cblas/libgslcblas.la -lm
libtool: link: gcc -g -O2 -o .libs/gsl-randist gsl-randist.o ./.libs/libgsl.so cblas/.libs/libgslcblas.so -lm
/bin/bash ./libtool --tag=CC --mode=link gcc -g -O2 -o gsl-histogram gsl-histogram.o libgsl.la cblas/libgslcblas.la -lm
libtool: link: gcc -g -O2 -o .libs/gsl-histogram gsl-histogram.o ./.libs/libgsl.so cblas/.libs/libgslcblas.so -lm
creating gsl-config
creating gsl.pc
make[2]: Leaving directory '/home/sam/program_files/gsl-2.5'
make[1]: Leaving directory '/home/sam/program_files/gsl-2.5'
Making install in gsl
make[1]: Entering directory '/home/sam/program_files/gsl-2.5/gsl'
make[2]: Entering directory '/home/sam/program_files/gsl-2.5/gsl'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/home/sam/program_files/gsl-2.5/gsl'
make[1]: Leaving directory '/home/sam/program_files/gsl-2.5/gsl'
Making install in utils
make[1]: Entering directory '/home/sam/program_files/gsl-2.5/utils'
make[2]: Entering directory '/home/sam/program_files/gsl-2.5/utils'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/home/sam/program_files/gsl-2.5/utils'
make[1]: Leaving directory '/home/sam/program_files/gsl-2.5/utils'
Making install in sys
make[1]: Entering directory '/home/sam/program_files/gsl-2.5/sys'
make[2]: Entering directory '/home/sam/program_files/gsl-2.5/sys'
make[2]: Nothing to be done for 'install-exec-am'.
/bin/mkdir -p '/usr/local/include/gsl'
/bin/mkdir: cannot create directory ‘/usr/local/include/gsl’: Permission denied
Makefile:637: recipe for target 'install-pkgincludeHEADERS' failed
make[2]: *** [install-pkgincludeHEADERS] Error 1
make[2]: Leaving directory '/home/sam/program_files/gsl-2.5/sys'
Makefile:918: recipe for target 'install-am' failed
make[1]: *** [install-am] Error 2
make[1]: Leaving directory '/home/sam/program_files/gsl-2.5/sys'
Makefile:963: recipe for target 'install
我猜测,由于某种原因,我的根权限不包括该 /usr/local/include
目录。有谁知道为什么会出现这种情况以及我该如何解决它?
答案1
你的命令
sudo ./configure && make && make install
按顺序运行这三个命令:
sudo ./configure
make
make install
请注意,只有第一个具有 root 权限。
通常,您将作为您自己的用户帐户运行配置/制作阶段,仅为最终安装阶段分配 root 权限:
./configure
make
sudo make install
&&
如果你有胆量,你可以加入这些。就我个人而言,我更喜欢将安装阶段作为一个单独的活动,只有当我很高兴前两个阶段不仅成功而且正确地完成时,我才应用它。