最快,最便宜的方式,使用perlbrew创建一个全新的,一次性的perl安装



我尝试执行以下操作。首先,我安装一个可重定位的perl,例如:

% perlbrew -Duserelocatableinc -j4 -n --as perl-5.28.1-fresh_src 5.28.1

然后,每当我需要一个新的一次性全新安装perl来测试东西时,我都会这样做:

% cp -la ~/perl5/perlbrew/perls/perl-5.28.1-fresh{_src,1}
% perlbrew switch 5.28.1-fresh1

(然后以后会根据需要创建fresh2fresh3等等;当我想扔掉这些时,我只是rm -rf ~/perl5/perlbrew/perls/*fresh1等等。

但是,有些东西(cpanm?嗯?还是一头雾水。从 CPAN 安装的脚本在其 shebang 行中仍然具有原始的 perl 路径(在本例中为 /home/USER/perl5/perlbrew/perls/perl-5.28.1-fresh_src/bin(。

上述问题的任何提示,或快速创建一个新的一次性perl安装的替代方法,都是值得赞赏的。另外,上述命令中cp-l(--link(选项是否会导致问题(除了附加perllocal.pod并且将包含perl安装的安装记录,这对我来说很好(?

它并不完全相同,但是如果我需要为某些测试场景进行全新安装,我发现docker有效 - 构建基础映像和干净的perl安装,启动容器并运行"任何"。

您需要root访问权限并能够安装软件包(例如docker(,因此它并不适合每个用例。

https://buildlogs.centos.org/centos/7/docker/有一个基础映像,你可以用它来构建一个"干净"的 CentOS(或者坦率地说,使用任何你喜欢的操作系统 - 大多数都有容器版本(

FROM scratch
ADD CentOS-7-20140625-x86_64-docker_01.img.tar.xz
LABEL name="CentOS Base Image"
CMD ["/bin/bash"]

在工作目录中:

docker build -t mycentos . 

这将为您提供一个非常基本的图像:

然后你的perl dockerfile:

FROM mycentos 
COPY local.repo /etc/yum.repos.d/local.repo
RUN yum clean all
RUN yum install --nogpgcheck -y make gcc tar
ADD perl-5.28.1.tar.gz /build/
RUN cd /build/perl-5.28.1 && ./Configure -de
RUN cd /build/perl-5.28.1 && make && make test && make install
COPY MyConfig.pm /root/.cpan/CPAN/MyConfig.pm
RUN cpan install Bundle::CPAN
CMD ["/bin/bash"]

您将能够旋转它,例如 使用 /usr/local/bin/perl docker run并调用脚本。

这不是你所要求的,但你可以根据需要启动和丢弃你的基础映像 - 你也可以为几个不同的操作系统和perl组合维护镜像。

最新更新