如何加速CI流水线中Perl模块的安装步骤?
优化CI中Perl模块安装速度的方法
一、用apt-get替代cpanm安装Perl模块
你要装的这些Perl模块里,大部分都能通过Ubuntu官方源用apt-get安装,速度比cpanm编译安装快得多,具体对应关系和优化后的步骤如下:
模块与apt包对应关系:
- Cwd、File::Spec::Functions:这两个是Perl核心模块,Ubuntu系统默认自带,无需额外安装
- Capture::Tiny:你第一个步骤已经装了
libcapture-tiny-perl,第二个步骤里的该模块可直接删除,避免重复操作 - DateTime:对应包
libdatetime-perl - DateTime::Format::ISO8601:对应包
libdatetime-format-iso8601-perl
修改后的CI步骤:
把原来的两个安装步骤合并成下面的命令,整个过程能控制在几十秒内:
- name: install all required packages run: sudo apt-get install -y transfig gnuplot inkscape poppler-utils libcapture-tiny-perl libdatetime-perl libdatetime-format-iso8601-perl
这样就完全不需要cpan/cpanm那一步,直接省掉3-4分钟的等待时间。
二、若必须用cpanm,用缓存加速
如果某些模块只能通过cpanm安装,可以通过缓存cpanm的安装目录提速,以GitHub Actions为例,添加缓存步骤:
- name: Cache cpanm modules uses: actions/cache@v3 with: path: ~/.cpanm key: ${{ runner.os }}-cpanm-${{ hashFiles('你的依赖文件路径(如果有的话)') }} restore-keys: | ${{ runner.os }}-cpanm-
第一次安装会把模块缓存下来,后续CI运行时直接复用缓存,无需重新下载编译,能大幅缩短耗时。
内容的提问来源于stack exchange,提问作者user2609605
相关产品推荐
相关产品推荐

