• HOME
  • DOCS
  • WTF
  • TECH
  • LIFE
  • PAGES
    • ARCHIVE
    • TAGS
    • ABOUT
    • FRIENDS
    • RSS
  • TOOLS
    • GEO
    • RANDOM()
    • GOO.GL
    • CSS HEART
Aj's Blog

记录时间溜走的瞬间和折腾过的那些事

Windows XP下如何安装perl模块(Dmake.exe)
2011-01-01 @ TECH 4

windows环境下ppm install 一直是很郁闷的事。
主要原因:
ppm配置文件的路径中还有汉字(一般是windows中文用户名导致)。
比如: C:\Documents and Settings\中文名\Local Settings\Application Data\ActiveState\ActivePerl\1203\ppm-MSWin32-x86-multi-thread-5_12.db

最简单的解决办法:

1、把当前用户名改用英文。

2、或者切换到系统自带的Administrator用户再安装。

如果你不想改或者切换到Administrator仍失败。那么往下看:

问题描述:

D:\>ppm install json
ppm install failed: DBI connect('dbname=C:\DOCUME~1\用户名\LOCALS~1\APPLIC~1/ActiveState/ActivePerl/1203/ppm-MSWin32-x86-multi-thread-5_12.db','',...) failed: unable to open database file
D:\>

解决办法:
众多想学习perl的同学看到这个提示都很郁闷。常用的解决办法就是自己下载模块手动安装。

对于习惯了windows的用户,perl MakeFile.PL、make、make install的标准3步操作和给出的提示犹如天书。

那么AJ尝试来给大家简单的理一下,如果有更多疑问欢迎加QQ 284508558讨论,暗号:ppm install

首先尝试运行perl Makefile.PL 当前是你已经下载了你要安装的模块了(模块一般包含:模块名字-模块版本.tar.gz 和 模块名字-模块版本.readme 2个文件)

这里给几个推荐下载地址:
http://www.nic.funet.fi/pub/languages/perl/CPAN/modules/by-module/

http://www.bribes.org/perl/ppm/

http://ppm4.activestate.com/

下面我用JSON模块为例:

JSON-2.50.tar.gz
JSON-2.50.readme

解压JSON-2.50.tar.gz,运行perl Makefle.PL

至于这个经典提示的详细翻译,自己搞定,我就不多说了。缺少编译环境。那么第一步来了:

第一步、编译环境。
已经安装了VC6.0或者VC++或者VS IDE的直接跳过这一步。

官方推荐:MinGW,http://www.mingw.org/,下载安装,没难度。

但是有一点要注意就是安装完之后windows下要配置PATH环境变量:我的电脑\属性\高级\环境变量\系统变量\

添加: ;E:\MinGW\bin;

这里我的MinGW是安装在E盘根目录下的。我想你懂的。

第二步、DMake
光阴似箭,日月如梭。。。一转眼的功夫,你就完成了MinGW或者VC或者其他C编译器的安装了。

我们继续perl MakeFile.PL看看:

提示在简单不过了。那么我们去找DMAKE.exe吧,找到之后放在MinGW的bin目录里面。

我这里有,你要不要:DMake.rar

第三步:标准安装三步走

perl MakeFile.pl
dmake
dmake install
ppm list

如果你还没成功。你可以找我帮你试试。但是提醒一句perlf ans都是在搜索引擎、cpan和一堆pdf下成长的。

自己摸索学到的东西和代理的成就感是不可替代的。

E:\JSON-2.50>perl Makefile.PL
Set up gcc environment - 4.5.0
Welcome to JSON (v.2.50)
=============================
If you install JSON::XS v.2.27, it makes JSON faster.
************************** CAUTION **************************
* This is 'JSON version 2' and there are many differences   *
 * to version 1.xx                                           *
 * Please check your applications useing old version.        *
 *   See to 'INCOMPATIBLE CHANGES TO OLD VERSION' and 'TIPS' *
 *************************************************************
Writing Makefile for JSON
E:\JSON-2.50>dmake
cp lib/JSON.pm blib\lib\JSON.pm
cp lib/JSON/backportPP/Compat5005.pm blib\lib\JSON\backportPP\Compat5005.pm
cp lib/JSON/backportPP/Boolean.pm blib\lib\JSON\backportPP\Boolean.pm
cp lib/JSON/backportPP/Compat5006.pm blib\lib\JSON\backportPP\Compat5006.pm
...
下一篇:   Perl: 多线程应用threads模块
上一篇:   Perl: DBI::ODBC操作Microsoft Access
  • yunmeng says:
    March 29, 2016 at 05:55

    按照您的方法把dmake.exe文件复制到MinGW/bin下,到窗口输入perl MakeFile.PL时又出现问题了,出现警告,然后运行dmake,问题就来了,dmake: Error: –Configuration file ‘D:\MinGW\bin\startup\starup.mk’ not found。
    我是新手,完全不晓得这是咋回事额,请您指教一下,谢谢!

    Reply
    • Aj says:
      May 18, 2016 at 03:21

      starup.mk 是 MakeFile.pl 指定使用 或者 运行后生成的
      可能是生成出错,也可能是这个库不支持windows。

      Reply
  • lithdo says:
    November 22, 2013 at 21:10

    解决路径中包含中文名的问题,有个简便的方法,通过环境变量修改ppm的默认路径即可:

    C:\>set ACTIVEPERL_PPM_HOME=C:\perl\temp
    C:\>ppm install your-package-name

    (参考http://community.activestate.com/forum-topic/ppm-does-not-work-after-install)

    Reply
    • Aj says:
      November 22, 2013 at 22:47

      多谢回复,好东西,之前我咋就没找到呢

      Reply
  • Cancel reply