在临时的办公场所网络不畅,有时不能下载cpan上的软件包,所有只能自建一个cpan。

这里使用了工具'minicpan',简单地说:就是把互联网上的CPAN搬到自己的电脑里,它的最初想法来自Randal L. Schwartz的Mirroring your own mini-CPAN,完整的 CPAN 比较大,minicpan 只是把这一模块的最新版本下载下来,所以只有2G左右。

一般用于需要时不必上网就能安装所需模块,或对某时上不了网非常有用,minicpan 是模块CPAN::Mini的一个运行程序。

# cpanm CPAN::Mini

安装此模块,安装完毕后 bin 目录下会有minicpan可执行文件。

# minicpan -l /data/cpan/ -r http://mirrors.163.com/cpan/

如果因为其它原因中断,需要继续要加上'-f'参数。
# minicpan -l /data/cpan/ -r http://mirrors.163.com/cpan/ -f

或者将配置的参数写入文件里,在它运行时读取其内容做为参数即可。操作方法与wget下载工具的'wgetrc'文件类似,只是文件名和写法有些不同罢了。

.minicpanrc
local: /data/cpan/
remote: http://mirrors.163.com/cpan/
exact_mirror: 1

然后修改 minicpan 可执行文件,当然linux下就不用修改这个了,直接在上面这步的当前用户的家目录建一个 .minicpanrc 就行。
%config = config_read( 'C:\user\freeoa\.minicpanrc' );

写入文件的绝对路径。

如何使用

完毕后加自己的CPAN路径加到 Config.pm 里,这里有好几种办法,一种是手工打开 CPAN/Config.pm 修改;另一种是在'cpan'命令提示符下操作:
>cpan
cpan>o conf urllist unshift file:///data/cpan/
cpan>o conf commit

以后安装的话可以直接install,不用联网。
cpan>install DBD::Mysql

要是我们使用 cpanm 就更加容易了
cpanm --mirror ~/data/cpan/ --mirror-only YAML::XS

使用CPANPLUS的cpanp指令时:
CPAN Terminal> s reconfigure
选择项7:7> Select mirrors

之后使用:2> Custom
会填入:Additionals host(s) to add: file://data/cpan
退出回到主菜单,选择项9:9> Save & exit

当然,也要定期运行脚本,使本地的cpan库保持最新。

(转)使用minicpan创建本地CPAN的更多相关文章

  1. Python 创建本地服务器环境生成二维码

    一. 需求 公司要做一个H5手机端适配页面,因技术问题所以H5是外包的,每次前端给我们源码,我们把源码传到服务器让其他人访问看是否存在bug,这个不是很麻烦吗?有人说,可以让前端在他们的服务器上先托管 ...

  2. Git 创建本地仓库

    前面已经搭好环境了,现在我们缺的是一个管理版本控制的仓库.这次的实验是在电脑本地创建本地仓库.指定路径 默认的位置是在你所安装Git的目录下.Git的仓库你可以建在你电脑的任何目录下(最好不要包含有中 ...

  3. 初学git(一):创建本地“仓库”

    初学git(一):创建本地“仓库” 作为一个初学者,我是跟着廖学峰老师的官方博客学习,这里只是做个笔记,哈哈,关于git的历史.和其他版本控制的对比啥的,我就不说了.另外,我这里用的是Mac OS X ...

  4. git怎么创建本地版本仓库

    git怎么创建本地版本仓库 安装git我就不用说了吧!下载地址:https://github.com/msysgit/msysgit/releases/download/Git-1.9.4-previ ...

  5. WeX5学习笔记-创建本地APP相关问题

    1.在Native新建[创建本地APP]时, "服务地址”为本地IP和端口号,例如本地IP为192.168.253.1,端口号为8080,则设置为http://192.168.253.1:8 ...

  6. 创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备

    一.包管理工具及CentOS的yum 1.包管理工具如何发现可以用的包 包管理工具依赖一系列软件源,工具下载源的信息存储在配置文件中,其位置随某包管理工具不同而变化 使用yum的RedHat/Cent ...

  7. 创建本地Ubuntu镜像

    参考文档 http://www.howtoforge.com/local_debian_ubuntu_mirror 安装服务 : sudo apt-get install apt-mirror apa ...

  8. 创建本地CM 离线服务器

    一.包管理工具及CentOS的yum 1.包管理工具如何发现可以用的包 包管理工具依赖一系列软件源,工具下载源的信息存储在配置文件中,其位置随某包管理工具不同而变化 使用yum的RedHat/Cent ...

  9. git拉取远程分支并创建本地分支和Git中从远程的分支获取最新的版本到本地

    git拉取远程分支并创建本地分支 一.查看远程分支 使用如下Git命令查看所有远程分支: git branch -r 二.拉取远程分支并创建本地分支 方法一 使用如下命令: git checkout ...

随机推荐

  1. C#委托与事件初探

    最近刚刚接触C#,学到事件与委托部分无法理解,于是上网查阅了各种资料,终于明白了一些,在此进行总结. 一.C语言中的函数指针 想要理解什么是委托,就要先理解函数指针的概念.所谓函数指针,就是指向函数的 ...

  2. [IOS]使用了cocoapods 抱错Pods was rejected as an implicit dependency for ‘libPods.a’ because its architectures ......

    Pods was rejected as an implicit dependency for ‘libPods.a’ because its architectures ‘i386’ didn’t ...

  3. POJ 2519

    又是一个水题?? 不过还是弄是很久... 在蒟蒻的路上越走越远 , 好了讲题 新生晚会 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: ...

  4. CF2.E

    E. Comments time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  5. Java概念性问题

    一.变量命名的五个要素 由字母.数字.“_”和“$” 组成 首字母不能为数字 大小写敏感 不能使用Java的保留字和关键字 可以使用中文命名,但是不建议 二.java的基本数据类型 整数类型:byte ...

  6. 在C#中使用消息队列RabbitMQ

    1.什么是RabbitMQ.详见 http://www.rabbitmq.com/. 作用就是提高系统的并发性,将一些不需要及时响应客户端且占用较多资源的操作,放入队列,再由另外一个线程,去异步处理这 ...

  7. F.I.S初探(前端工程化)

    云笔记:http://note.youdao.com/share/?id=7c4a2dcf118f0ad7bb52a36aaee46a7a&type=note   一.初识FIS 在做项目中遇 ...

  8. smartComplete——轻量级的autoComplete插件,开源

    项目后端觉得autoComplete响应略慢,于是花了两天时间写了这插件,基于jQuery 1.7+,仓库地址 https://github.com/VaJoy/smartComplete ,欢迎各种 ...

  9. 论如何在手机端web前端实现自定义原生控件的样式

    手机开发webapp的同学一定遇到过这样问题,如何为丑极了的手机元素应用自定义的样式.首先,要弄清楚为什么要定义手机原生控件的样式,就需要看看手机的那些原生框样式的丑陋摸样: android: ios ...

  10. UI控件(UIToolbar)

    @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _toolbar = [[UIToolbar all ...