Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 当我得到错误信息时,我需要哪个模块;Can';t在@INC.“中找到getopts.pl”;_Macos_Perl_Cpan_Getopts_Cpanm - Fatal编程技术网

Macos 当我得到错误信息时,我需要哪个模块;Can';t在@INC.“中找到getopts.pl”;

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 /

我在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 /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