使用perlbrew创建全新的,即弃的Perl安装的最快,最便宜的方法?

时间:2019-03-26 12:19:28

标签: perl perlbrew

我尝试执行以下操作。首先,我安装可重定位的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,依此类推。)

但是,某些东西(公司或EUMM?)仍然令人困惑。从CPAN安装的脚本的shebang行中仍然具有原始的perl路径(在本例中为/home/USER/perl5/perlbrew/perls/perl-5.28.1-fresh_src/bin)。

任何有关上述问题的提示,或快速创建全新的Perl一次性安装的另一种方法,都受到赞赏。另外,上述命令中的-l的{​​{1}}(--link)选项是否会引起问题(除了附加cp并将包含perl安装的安装记录外,对我很好)?

1 个答案:

答案 0 :(得分:2)

这不是完全一样,但是如果我需要针对某些测试场景进行全新安装,docker可以工作-建立基本映像和全新Perl安装,启动容器并运行“无论'。

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

https://buildlogs.centos.org/centos/7/docker/有一个基本映像,可用于构建“干净”的CentOS(或坦率地说使用任何喜欢的OS-大多数都有容器版本)

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"]

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

这不是您所需要的,但是您可以根据需要启动和丢弃基础映像-您也可以为一些不同的OS和perl组合维护映像。