Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.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
Crontab和perl_Perl_Twitter_Cpan - Fatal编程技术网

Crontab和perl

Crontab和perl,perl,twitter,cpan,Perl,Twitter,Cpan,我对Perl脚本和CPANTwitter模块有问题 我有一个运行speedtest的脚本,我正试图将结果发布到Twitter上 我已经设法通过从我的用户帐户运行./speedtest.pl来手动运行我的脚本,但是当我尝试使用crontab运行它时,我得到了一个错误 我已经安装并使用 等等 (注意:没有sudo)当我从本地crontab运行脚本时,出现以下错误:- Can't locate Net/Twitter.pm in @INC (you may need to install the N

我对Perl脚本和CPANTwitter模块有问题

我有一个运行speedtest的脚本,我正试图将结果发布到Twitter上

我已经设法通过从我的用户帐户运行./speedtest.pl来手动运行我的脚本,但是当我尝试使用crontab运行它时,我得到了一个错误

我已经安装并使用

等等

(注意:没有sudo)当我从本地crontab运行脚本时,出现以下错误:-

Can't locate Net/Twitter.pm in @INC (you may need to install the 
Net::Twitter module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-
gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-
gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf
/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at /home/pi
/speedtest.pl line 99.
BEGIN failed--compilation aborted at /home/pi/speedtest.pl line 99.
有人能给我指一下正确的方向吗?我怀疑这与
Net::Twitter
etc的结局有关,但我不知道如何修复它,以便crontab知道在哪里可以找到它


从命令行运行的Perl安装与执行crontab作业时系统运行的Perl安装不同

尝试
哪个perl
,然后查看在cron下运行的同一命令的输出


根据系统的配置,有几种方法可以解决此问题。最明显的是使用您自己的perl副本的完整路径,但尽管这可能会让事情进展顺利,但这可能是个坏主意

您从命令行运行的perl安装与执行crontab作业时系统运行的安装不同

尝试
哪个perl
,然后查看在cron下运行的同一命令的输出


根据系统的配置,有几种方法可以解决此问题。最明显的是使用您自己的perl副本的完整路径,但尽管这可能会让事情进展顺利,但这可能是个坏主意

我认为您可能使用本地帐户安装了Net::Twitter。
登录root&安装模块应该可以解决这个问题。

我认为您可能已经使用本地帐户安装了Net::Twitter。
登录root&安装模块应该可以解决这个问题。

如果运行
perl-v
您会得到哪个版本?看起来您已经安装了两个版本的perl。典型的罪魁祸首是
/usr/bin/perl
/usr/local/bin/perl
如果您运行
perl-v
您会得到哪个版本,那么这个脚本已经被明确告知要使用前一个.perl 5,版本20,subversion 2(v5.20.2)?看起来您已经安装了两个版本的perl。典型的罪魁祸首是
/usr/bin/perl
/usr/local/bin/perl
这个脚本被明确告知要使用前一个.perl 5,版本20,subversion 2(v5.20.2),那么我该怎么办?从用户帐户
运行,perl
给了我
/usr/bin/perl
,但我不知道如何解决这个问题?不知道如何使用cronChange查看它-将脚本放入
#/usr/local/bin/perl
。或者
/usr/bin/perl-MCPAN-eshell
并在perl站点中安装所需的库。
#/文件顶部的usr/local/bin/perl
给了我
-bash:./speedtest.pl:/usr/bin/local/perl:bad解释器:当我使用
/speedtest.pl
运行文件时,没有这样的文件或目录
/usr/bin/perl-MCPAN-eshell
后跟
安装Net::Twitter,告诉我Net::Twitter是最新的(4.01020)
sudo find/-name Twitter.pm
给出:-
/home/pi/perl5/lib/perl5/Net/Twitter.pm
/home/pi/.cpanm/work/1467024190.19006/Net-Twitter-4.01020/lib/Net/Twitter.pm
/home/pi/.cpanm/work/1467024190.19006/Net-Twitter-4.01020/blib/Net/Net/Net/Twitter.pm
添加了
使用lib'/home/lib/pi/perl5/
使用Net::Twitter
似乎让它与crontab一起运行之前,我怀疑这不是正确的方法,但它似乎起到了作用,我该怎么办?从用户帐户
运行,perl
给了我
/usr/bin/perl
,但我不知道如何解决这个问题?不知道如何使用cronChange查看它-将脚本放入
#/usr/local/bin/perl
。或者
/usr/bin/perl-MCPAN-eshell
并在perl站点中安装所需的库。
#/文件顶部的usr/local/bin/perl
给了我
-bash:./speedtest.pl:/usr/bin/local/perl:bad解释器:当我使用
/speedtest.pl
运行文件时,没有这样的文件或目录
/usr/bin/perl-MCPAN-eshell
后跟
安装Net::Twitter,告诉我Net::Twitter是最新的(4.01020)
sudo find/-name Twitter.pm
给出:-
/home/pi/perl5/lib/perl5/Net/Twitter.pm
/home/pi/.cpanm/work/1467024190.19006/Net-Twitter-4.01020/lib/Net/Twitter.pm
/home/pi/.cpanm/work/1467024190.19006/Net-Twitter-4.01020/blib/Net/Net/Net/Twitter.pm
添加了
使用lib'/home/lib/pi/perl5/
使用Net::Twitter
使其与crontab一起运行之前,我怀疑这不是正确的方法,但它似乎可以工作
Can't locate Net/Twitter.pm in @INC (you may need to install the 
Net::Twitter module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-
gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-
gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf
/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at /home/pi
/speedtest.pl line 99.
BEGIN failed--compilation aborted at /home/pi/speedtest.pl line 99.