Lembro que instalei o Perl::Rename usando cpan -i File::Rename
, e de fato tenho os executáveis $HOME/perl5/bin
with rename
e unsafe-rename
lá.
Mas quando tento usar rename
,
# Expected: Renames FooBar.txt to Foo_Bar.txt
# It worked for me in the past
rename 's/\s/_/' *.txt
...há um erro:
Can't locate File/Rename.pm in @INC (you may need to install the File::Rename module) (@INC contains: /Library/Perl/5.34/darwin-thread-multi-2level /Library/Perl/5.34 /Network/Library/Perl/5.34/darwin-thread-multi-2level /Network/Library/Perl/5.34 /Library/Perl/Updates/5.34.1 /System/Library/Perl/5.34/darwin-thread-multi-2level /System/Library/Perl/5.34 /System/Library/Perl/Extras/5.34/darwin-thread-multi-2level /System/Library/Perl/Extras/5.34) at ./rename line 4.
BEGIN failed--compilation aborted at ./rename line 4.
Então tentei reinstalar File::Rename
, usando o mesmo comando, mas então aparece outra mensagem de erro, uma bem longa. Aqui está uma parte do finalzinho:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/Library/Perl/5.34/File'
mkdir /Library/Perl/5.34/File: Permission denied at /System/Library/Perl/5.34/ExtUtils/Install.pm line 470.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1.
make: *** [pure_site_install] Error 13
RMBARKER/File-Rename-2.02.tar.gz
/usr/bin/make install -- NOT OK
O que está acontecendo aqui?
O Perl em si é o que vem com o macOS. Eu não o instalei.
Ao executar pela primeira vez
cpan
como um não superusuário, e como você escolheu alocal::lib
abordagem quando solicitado, ele lhe dirá algo como:O que você precisa fazer para
perl
saber onde encontrar os módulos instalados pelocpan
.cpan
Também é possível instalar em todo o sistema se executado como root, embora você possa preferir métodos de instalação de pacotes que sejam nativos do seu sistema (apt
,dnf
... dependendo do sistema), mesmo que isso signifique obter versões mais antigas do módulo perl ou melhor integradas ou que você já use, como homebrew/macports no macOS, para evitar ter que manter pacotes em outro sistema de empacotamento.