自个写的一个提取perl程序最小所需perl环境的sh脚本

自个写的一个提取perl程序最小所需perl环境的sh脚本

1, 这个脚本可从perl环境中提取指定perl脚本所需的最小运行环境
2, 前提是要安装PAR:acker模块
3, 这样比pp打包的可执行文件启动速度快


#!/bin/bash

echo "pp -B -p $*";
pp -B -p $*;

if [ $? -ne 0 ]; then
    echo "Run pp fialed!";
    exit 1;
fi

echo "unzip -o a.par -x lib/* script/* META.yml";
unzip -o a.par -x lib/* script/* META.yml;

if [ $? -ne 0 ]; then
    echo "unzip a.par fialed!";
    rm a.par
    exit 1;
fi

echo "rm a.par";
rm a.par;

echo "Copying files...";
mkdir -p MyMiniPerlEnv/lib;
perl -ne 'if(/\S/ && /^lib/){chomp;s/^lib//g;my $m=$_;foreach(@INC){s/\/s*$//;my $mp=$_ . $m;if(-e $mp){my $md="MyMiniPerlEnv/lib" . $m;$md=~s/\/[^\/]+$//g;`mkdir -p $md`;`cp $mp $md`;last;}}}' MANIFEST;

echo "rm MANIFEST";
rm MANIFEST;

cp `which perl` MyMiniPerlEnv;
确实不错
收下了