Perl - Win32::Daemon模块的安装过程全纪录

本文介绍如何解决Win32::Daemon模块在ActivePerl 5.10.0环境下无法通过ppm安装的问题,提供了详细的步骤来手动安装此模块。

Win32::Daemon模块是CRONw - CRON for Windows的依赖模块,CRONw is a small collection of Perlie things providing the main functions of a *nix-style CRON to the Perl-enabled Windows world.

The killer feature and the reason I built it: It runs as a system service without any additional tools, using the functionality provided by Win32::Daemon.

 

我的Perl是ActivePerl是5.10.0,打开ppm后,里面根本就没有Win32::Daemon模块,不能从ppm的界面中安装,也不能从ppm的命令行中安装成功。

 

按照CRONw(http://cronw.sourceforge.net/)提供的链接,找到了Win32::Daemon模块的主页http://www.roth.net/perl/Daemon/,按照提示转到ftp://www.roth.net/pub/ntperl/Daemon/20080324-beta/,打开FTP,里面只有一个bin目录,进去,可以看到三个文件在ftp://www.roth.net/pub/ntperl/Daemon/20080324-beta/bin/里面,:

daemon_5.6.Zip
daemon_5.8.Zip
daemon_5.10.Zip
分别对应于Perl 5.6、5.8和5.10,这个不能下载错了。

 

下载daemon_5.10.Zip,解压其中的Win32-daemon.ppd用于安装Win32::Daemon模块,仍旧不能安装成功。即使按照http://www.roth.net/perl/packages/的提示,添加了ppm repository,"Roth Consulting" 指向http://www.roth.net/perl/packages再安装也不行,总是提示所需的包不存在。

 

用文本编辑器打开Win32-daemon.ppd,找到

<IMPLEMENTATION>
    <!-- Perl Version="5010" -->
    <OS NAME="MSWin32" />
    <ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.10" />
    <CODEBASE HREF="http://www.roth.net/perl/packages/x86/Win32/Daemon_5.10.tar.gz" />
  </IMPLEMENTATION>

 

将其中的

    <CODEBASE HREF="http://www.roth.net/perl/packages/x86/Win32/Daemon_5.10.tar.gz" />
改为

    <CODEBASE HREF="daemon_5.10.Zip" />
即当前目录下的daemon_5.10.Zip文件。

 

将下载的daemon_5.10.Zip文件拷贝到Win32-daemon.ppd目录,从Win32-daemon.ppd目录下的dos窗口中执行

ppm install Win32-daemon.ppd

即可完成Win32::Daemon模块的安装。

 

打开ppm,可以看到Win32::Daemon已经出现在installed列表中了。

"02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 2 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_2 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_2 /data/vendor/time/ats_2 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_2 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 3 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_3 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_3 /data/vendor/time/ats_3 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_3 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 4 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_4 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_4 /data/vendor/time/ats_4 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_4 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 5 02-26 05:15:38.485 root 1294 1294 D vendor.xiaomi.hardware.mimd2: succeed registered timer 10 to TimerManager 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_5 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_5 /data/vendor/time/ats_5 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_5 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 6 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_6 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_6 /data/vendor/time/ats_6 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_6 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 7 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_7 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_7 /data/vendor/time/ats_7 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_7 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 8 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_8 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_8 /data/vendor/time/ats_8 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_8 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 9 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_9 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_9 /data/vendor/time/ats_9 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_9 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 10 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_10 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_10 /data/vendor/time/ats_10 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_10 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 11 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_11 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_11 /data/vendor/time/ats_11 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 root 1294 1297 D vendor.xiaomi.hardware.mimd2: PolicyManager, 0 policyThread run 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_11 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 12 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_12 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_12 /data/vendor/time/ats_12 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_12 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 13 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_13 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_13 /data/vendor/time/ats_13 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_13 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 14 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_14 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_14 /data/vendor/time/ats_14 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_14 02-26 05:15:38.485 root 1294 1299 D vendor.xiaomi.hardware.mimd2: PolicyManager, 2 policyThread run 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 15 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_15 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_15 /data/vendor/time/ats_15 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_15 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 16 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_16 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_16 /data/vendor/time/ats_16 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_16 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 17 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_17 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_17 /data/vendor/time/ats_17 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_17 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_post_init:Error in accessing storage 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:genoff_pre_init::Base = 18 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon: Storage Name: ats_18 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Opening File: /mnt/vendor/persist/time/ats_18 /data/vendor/time/ats_18 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:time_persistent_memory_opr:Genoff Read operation 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Open File: /data/vendor/time/ats_18 02-26 05:15:38.485 1000 1292 1292 D QC-time-services: Daemon:Unable to open filefor read"
最新发布
09-13
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值