Strawberry便携Perl使用cpanm安装String::CRC32失败问题求助
Strawberry便携版Perl安装String::CRC32失败解决方案
问题根因
两个报错为关联问题:
- 启动
portableshell.bat报UNC路径错误是因为Perl放在了网络共享目录,Windows cmd默认不支持UNC路径作为工作目录,启动时强制切到了C:\Windows - cpanm报错找不到包索引是因为你的用户主目录绑定了H盘网络映射盘,cpanm默认读取主目录下的缓存文件时路径解析失败,同时也可能因为服务器限制无法访问公网cpan源。
解决步骤
方法一:在线安装(服务器可访问公网时使用)
- 把Strawberry Perl便携版整体从网络共享目录拷贝到服务器本地磁盘的无中文、无空格路径下,比如
D:\strawberry-perl,重新运行portableshell.bat,确认启动时不再报UNC-Path相关警告 - 手动指定cpanm的缓存目录到本地磁盘,避免网络盘读写失败:
- 先创建本地缓存目录,比如
D:\cpanm_temp - 执行安装命令:
cpanm --home D:\cpanm_temp String::CRC32
- 先创建本地缓存目录,比如
方法二:离线安装(服务器无法访问公网时使用)
- 在外网环境提前下载String::CRC32的发行包,拷贝到服务器本地磁盘
- 启动portableshell.bat后进入解压后的模块目录,依次执行以下命令完成安装:
perl Makefile.PL dmake dmake test dmake install
如果必须在网络共享目录运行Perl,可提前在cmd中执行pushd \\你的共享目录\Perl路径将UNC路径映射为临时盘符后,再运行portableshell.bat即可规避UNC路径警告。
内容的提问来源于stack exchange,提问作者Dana
相关产品推荐
相关产品推荐

