2015-04-01 3 views
-3

Я программирую с помощью Perl и вам нужно установить Unicode String. Но make install говорит мне:PERL: строка Unicode: запрещен отказ

Files found in blib/arch: installing files in blib/lib into architecture dependent library tree !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ERROR: Can't create '/Library/Perl/5.16/darwin-thread-multi-2level/Unicode' mkdir /Library/Perl/5.16/darwin-thread-multi-2level/Unicode: Permission denied at /System/Library/Perl/5.16/ExtUtils/Install.pm line 494.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! at -e line 1. make: *** [pure_site_install] Error 13

ли кто-нибудь сталкивался с такой проблемой?

+0

Кажется довольно понятным, что пользователь, выполняющий 'make', не имеет разрешения на создание каталога в этом месте. Сменить пользователя? Или 'sudo'. – TLP

+0

Вам нужно разрешение на установку в '/ Library /'. Попробуйте «sudo make install» или измените префикс установки. – Biffen

+0

Thx, я попробовал sudo make install, он говорит: «sudo make install Unicode :: string Пароль: make: *** Нет правила, чтобы сделать цель« install ». Stop». Что вы подразумеваете под изменением префикса установки? – starckman

ответ

0

/Library является системным справочником. Это идея bad, чтобы возиться с собственным распределением Perl на вашей системе. Если что-то пойдет не так, у вас будет много очистки.

Поэтому создайте свой собственный Perl. Все, что вам нужно, это загрузить соответствующий дистрибутив источника и запустить ./Configure --help и прочитать инструкции.

Или, вы можете просто сделать:

$ ./Configure -des -Dprefix=/Users/user/perl/5.xx.x 
make 
make test 
make install

Вы можете затем положить /Users/user/perl/5.xx.x/bin на своем пути, или просто вызвать perl полный путь.

 $ ~/perl/5.xx.x/bin/perl Makefile.PL 
make test 
make install

Я хотел поставить симлинку в ~/bin так, что perl5.xx.x вызывает ~/perl/5.xx.x/bin/perl.

Не устанавливайте модули в системных каталогах. Я уверен, что люди, которые рекомендовали это хорошо, но это может вызвать проблемы в какой-то момент.

+0

Или лучше, просто используйте [perlbrew] (http://perlbrew.pl/) –

+0

@SteffenUllrich Я не в пользу никого, кто прыгает в использование 'perlbrew', не понимая, что он делает за кулисами. И, насколько мне хотелось, все три раза я старался использовать его последовательно, я в конце концов вытирал '~/perl5' через некоторое время. Это ничего не делает для меня. Итак, лучше и просто в глазах смотрящего. –

+1

Thx каждый для вас ответ! Проблема в том, что он не нашел модуль для моего текущего activeperl (20), i повторно загрузил activeperl 18 и повторно установил unicode :: string с помощью команды /usr/local/ActivePerl-5.18/bin/ppm установить Unicode -String, и теперь все работает отлично. – starckman