não pode criar diretório Permissão negada - mesmo quando usando o sudo

0

Estou tentando instalar o gsl-2.5 - link . Eu usei o comando sudo ./configure && make && make install , mas ainda tenho problemas de permissão:

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

Acredito que, por algum motivo, meus privilégios de root não incluem o diretório /usr/local/include . Alguém sabe por que este pode ser o caso e como posso corrigi-lo?

    
por sahwahn 20.07.2018 / 17:02

1 resposta

4

Seu comando

sudo ./configure && make && make install

executa estes três comandos sequencialmente:

sudo ./configure
make
make install

Observe que apenas o primeiro tem privilégios de root.

Normalmente, você executaria os estágios configure / make como sua própria conta de usuário, atribuindo privilégios de root somente para o estágio de instalação final:

./configure
make
sudo make install

Você pode juntar-se a eles com && se você for ousado. Pessoalmente eu prefiro deixar o estágio de instalação como uma atividade separada que eu aplico somente quando estou feliz que os dois primeiros estágios foram concluídos não apenas com sucesso, mas também corretamente.

    
por 20.07.2018 / 17:09