Ошибка отказа в разрешении при создании gcc в PythonAnywhere

#ubuntu #gcc #pythonanywhere

#ubuntu #gcc #pythonanywhere

Вопрос:

Я пытаюсь собрать gcc-7.4.0 в PythonAnywhere. Я загрузил gcc-7.4.0 via wget и успешно выполнил следующие команды.

 ~ $ mkdir gccbuild

~ $ cd gccbuild

~/gccbuild $ ../gcc-7.4.0/configure -v --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --prefix=/usr/local/gcc-7.4.0 --enable-checking=release --enable-languages=c,c  ,fortran 
--disable-multilib --program-suffix=-7.4

~/gccbuild $ make -j 8
 

Теперь я пытаюсь запустить make install-strip команду, но она выдает Permission denied ошибку, такую как показано ниже.

 make[1]: Entering directory '/home/sfmyazilim/gccbuild'
/bin/bash ../gcc-7.4.0/mkinstalldirs /usr/local/gcc-7.4.0 /usr/local/gcc-7.4.0
mkdir -p -- /usr/local/gcc-7.4.0 /usr/local/gcc-7.4.0
mkdir: cannot create directory ‘/usr/local/gcc-7.4.0’: Permission denied
mkdir: cannot create directory ‘/usr/local/gcc-7.4.0’: Permission denied
Makefile:2581: recipe for target 'installdirs' failed
make[1]: *** [installdirs] Error 1
make[1]: Leaving directory '/home/sfmyazilim/gccbuild'
Makefile:2491: recipe for target 'install-strip' failed
make: *** [install-strip] Error 2
 

Я не могу использовать sudo , потому что PythonAnywhere этого не позволяет. Как я могу установить встроенный GCC с помощью make install-strip команды без каких-либо ошибок?

Комментарии:

1. Вам нужно создать его в своем домашнем каталоге, а не в масштабах всей системы.

Ответ №1:

Когда вы запускаете configure команду, вы можете установить каталог для установки с --prefix помощью флага, поэтому вам нужно добавить что-то подобное --prefix=$HOME/.local к этому, чтобы он устанавливался в подкаталог вашего домашнего каталога .local , который является стандартным местом для пользовательских двоичных файлов, подобных этому. Итак, вы должны снова пройти процесс, настроить с помощью этого дополнительного параметра, создать двоичные файлы с make -j 8 помощью команды, а затем выполнить make install шаг.