用UPX压缩文件

/ 0评 / 0

现在可刷 openwrt 的路由器一般都是 16Mb 大小的 Flash,有些特殊的软件的二进制包比较大,比如两个文件加起来就是 26M 了。这样的尺寸是肯定不可能刷入路由里的。即使是某些 32Mb 的 Flash,除去固件本身的大小,也不太可能会有人预留这么大的空间给用户。
我现在用的歌华链路由,自带 32M 的 Flash,刷入 PandoraBox 的固件后,预留的空间还不小,这就有了自己安装一些大软件的可能。
先刷新源,然后安装自己需要的软件,接着删除过时的软件,自己从 Github 下载最新的二进制版本,用另外一台 Linux 机器压缩二进制文件。

wget https://github.com/upx/upx/releases/download/v3.95/upx-3.95-amd64_linux.tar.xz
tar -Jxf upx-3.95-amd64_linux.tar.xz
cd upx-3.95-amd64_linux
cp -a upx /usr/bin

这样就把upx给装好了。
接着下载需要压缩的软件,解压后(最好在某个新建的目录下操作)执行下列命令

upx -o upx_softname softname //默认参数压缩,经对比,默认参数压缩后的文件大小从 15M 变成了 4.4M
upx --ultra-brute -o upx_softname softname //官方的极限参数压缩,经对比,压缩后的文件大小从 15M 变成了 3.4M

而另外一个所必需的二进制文件的大小,从 11 M 变成了 3.2M(默认参数)和 2.5M(极限参数)。
也就是说,未经压缩的源程序有 26M 之局,极限压缩后变成了不到 6M 。
而 6M ,是足以放在 PandoraBox 里的。
剩下的事,就是用 Winscp 把压缩后的两个文件上传到 Openwrt 路由器里原本的位置重启就可以配置使用了。

Leave a Reply

Your email address will not be published. Required fields are marked *