在临时的办公场所网络不畅,有时不能下载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. druid sql黑名单 报异常 sql injection violation, part alway true condition not allow

    最近使用druid,发现阿里这个连接池 真的很好用,可以监控到连接池活跃连接数 开辟到多少个连接数 关闭了多少个,对于我在项目中查看错误 问题,很有帮助, 但是最近发现里面 有条sql语句 被拦截了, ...

  2. ACCEPTANCE CRITERIA FOR USER STORIES

    One of the teams I have recently coached quickly got a grasp of how to phrase user stories but found ...

  3. Java中9种IO的读取方式

    数据的读写,按照数据类型可以分为两种:字符流和字节流(二者区别?).所以数据读取方式按照数据类型也可以分为两类:字节流的读取和字符流的读取. 一.字节流读取操作: |  | |-----1.FileI ...

  4. day3 Linux基础

    1.正文处理命令及tar命令 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group >1.txt2) 将用户信 ...

  5. tableViewCell嵌套collectionView,动态高度

    方法有很多,有通过内容高度,经过代理回调,刷新的,甚至还有计算cell个数,然后根据cell大小计算的,这里推荐iOS 8新特性,通过AutoLayout,利用内容将cell撑起来; 关键代码: vi ...

  6. int与string类型的转换

    在SQL语句中 在JS中, (1) var   x=100    a   =   x.toString()   (2) var   x=100;    a   =   x   +"" ...

  7. Java概念性问题

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

  8. 初涉深度优先搜索--Java学习笔记(二)

    版权声明: 本文由Faye_Zuo发布于http://www.cnblogs.com/zuofeiyi/, 本文可以被全部的转载或者部分使用,但请注明出处. 上周学习了数组和链表,有点基础了解以后,这 ...

  9. Python读写文件

    Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('t ...

  10. UI控件(UITextField)

    @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UITextField* textField1 = ...