Macos 当我得到错误信息时,我需要哪个模块;Can';t在@INC.“中找到getopts.pl”;
我在macOS中运行此命令Macos 当我得到错误信息时,我需要哪个模块;Can';t在@INC.“中找到getopts.pl”;,macos,perl,cpan,getopts,cpanm,Macos,Perl,Cpan,Getopts,Cpanm,我在macOS中运行此命令 $ perl ~/Desktop/blif2cnf.pl 并获得以下错误信息: Can't locate getopts.pl in @INC (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /
$ perl ~/Desktop/blif2cnf.pl
并获得以下错误信息:
Can't locate getopts.pl in @INC (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 .) at /Users/Frank/Desktop/blif2cnf.pl line 10.
在我的linux 16.04中,这样的问题可以通过以下方法解决
macOS中是否有类似于libperl4-corelibs-perl
的模块
我知道CPAN,但我不知道应该安装哪个模块。它是。一般来说,Debian包libthis that perl对应一个名为
This::that
的模块,尽管大小写取决于您:)它是。一般来说,Debian包libthis that perl
对应于一个名为This::that
的模块,尽管大小写取决于您:)我不确定包管理器如何与macOS协同工作,但它是一种独立于平台的安装getopts
包的方法
为了回答您对@hobbs答案的评论,我搜索所需模块的方式可以是通过@hobbs链接的网站,或者,或者。就在第二分钟,我找到了我需要的东西
搜索getopts.pl
提供了指向“Perl4::CoreLibs”的链接。在右上角有一个链接,上面写着Perl4-CoreLibs-0.003.tar.gz(尽管现在看起来有一个0.004)。我右键点击并选择“复制链接地址”,这给了我
http://search.cpan.org/CPAN/authors/id/Z/ZE/ZEFRAM/Perl4-CoreLibs-0.004.tar.gz
无论您的链接是什么,您都需要将其解压并在lib
目录中找到所有*.pl
文件,然后
1) 从命令行链接到它们,例如
perl -I /path/to/where/you/untarred/lib ~/Desktop/blif2cnf.pl
或
2) 将它们添加到您的PERLLIB
环境变量中
我认为更多的细节会有所帮助
详细说明 找出要下载
*.pl
文件的目录。我用了$HOME/new\u perl\u东西
cd ~
mkdir new_perl_stuff
cd new_perl_stuff
现在,去拿柏油球
wget http://search.cpan.org/CPAN/authors/id/Z/ZE/ZEFRAM/Perl4-CoreLibs-0.004.tar.gz
解开它,进入目录,确保lib
在那里
$ tar -xzf Perl4-CoreLibs-0.004.tar.gz
$ cd Perl4-CoreLibs-0.004
$ ls
您应该在列表中看到lib
可以将新下载的lib
目录(在我的例子中是$HOME/new\u perl\u stuff/Perl4-CoreLibs-0.004/lib
)添加到perl
搜索路径,但这只会让我担心在某个时候可能会删除另一个目录。我在/usr/lib
目录中创建了一个新文件夹。我决定将新目录命名为libperl4-corelibs-perl
,因为这似乎是标准的。首先,我检查了一下,以确保没有一个同名的目录
$ stat /usr/lib/libperl4-corelibs-perl
stat: cannot stat '/usr/lib/libperl4-corelibs-perl': No such file or directory
然后我做了目录
mkdir /usr/lib/libperl4-corelibs-perl
下一步是将所有*.pl
文件复制到此目录中。我希望稍后解释下一个命令。我以这种方式运行它,以确保我需要的所有文件都在那里。在我的$HOME/new_perl_stuff/Perl4-CoreLibs-0.004
目录中,我运行了下面的命令,我打算回来解释一下
find ./lib -type f -name "*.pl" -print0 | xargs -I'{}' -0 \
bash -c 'new_dir=/usr/lib/libperl4-corelibs-perl/; chmod +x {}; \
echo "Moving {}"; mv {} ${new_dir} && echo -e "success\n" || \
echo -e "failure\n"' | tee moving_day.log
如果希望看到所有内容都已成功复制,请运行该命令。执行所有必要操作的较短命令是:
find ./lib -type f -name "*.pl" -print0 | xargs -I'{}' -0 \
bash -c 'new_dir=/usr/lib/libperl4-corelibs-perl/; chmod +x {}; \
mv {} ${new_dir}'
跑步是个不错的主意
ls -lah /usr/lib/libperl4-corelibs-perl
检查*.pl
文件是否存在
你现在可以跑步了
perl -I /usr/lib/libperl4-corelibs-perl ~/Desktop/blif2cnf.pl
但是有一个更简单的方法
最后,通过在我的~/.bashrc
此命令将路径添加到PERLLIB
环境变量。不同风格的Linux在添加环境变量时有不同的语法,请务必了解您的语法强>
export PERLLIB="/usr/bin/libperl4-corelibs-perl:$PERLLIB"
我为此运行的命令是
$ echo -e "\n\n## allow Perl to use the files in Perl4::CoreLibs" >> $HOME/.bashrc
$ echo -e "export PERLLIB=\"/usr/lib/libperl4_corelibs_perl:$PERLLIB\"" >> $HOME/.bashrc
$ source .bashrc
现在,你可以简单地跑了
perl ~/Desktop/blif2cnf.pl
注意:返回并删除不需要的额外内容可能是个好主意:
rm -rf $HOME/new_perl_stuff
我不确定包管理器如何与macOS配合使用,但它是一种独立于平台的安装getopts
包的方法
为了回答您对@hobbs答案的评论,我搜索所需模块的方式可以是通过@hobbs链接的网站,或者,或者。就在第二分钟,我找到了我需要的东西
搜索getopts.pl
提供了指向“Perl4::CoreLibs”的链接。在右上角有一个链接,上面写着Perl4-CoreLibs-0.003.tar.gz(尽管现在看起来有一个0.004)。我右键点击并选择“复制链接地址”,这给了我
http://search.cpan.org/CPAN/authors/id/Z/ZE/ZEFRAM/Perl4-CoreLibs-0.004.tar.gz
无论您的链接是什么,您都需要将其解压并在lib
目录中找到所有*.pl
文件,然后
1) 从命令行链接到它们,例如
perl -I /path/to/where/you/untarred/lib ~/Desktop/blif2cnf.pl
或
2) 将它们添加到您的PERLLIB
环境变量中
我认为更多的细节会有所帮助
详细说明
找出要下载*.pl
文件的目录。我用了$HOME/new\u perl\u东西
cd ~
mkdir new_perl_stuff
cd new_perl_stuff
现在,去拿柏油球
wget http://search.cpan.org/CPAN/authors/id/Z/ZE/ZEFRAM/Perl4-CoreLibs-0.004.tar.gz
解开它,进入目录,确保lib
在那里
$ tar -xzf Perl4-CoreLibs-0.004.tar.gz
$ cd Perl4-CoreLibs-0.004
$ ls
您应该在列表中看到lib
可以将新下载的lib
目录(在我的例子中是$HOME/new\u perl\u stuff/Perl4-CoreLibs-0.004/lib
)添加到perl
搜索路径,但这只会让我担心在某个时候可能会删除另一个目录。我在/usr/lib
目录中创建了一个新文件夹。我决定将新目录命名为libperl4-corelibs-perl
,因为这似乎是标准的。首先,我检查了一下,以确保没有一个同名的目录
$ stat /usr/lib/libperl4-corelibs-perl
stat: cannot stat '/usr/lib/libperl4-corelibs-perl': No such file or directory
然后我做了目录
mkdir /usr/lib/libperl4-corelibs-perl
下一步是将所有*.pl
文件复制到此目录中。我希望解释下一个命令lat