不编译shadowsocks的文档

shadowsocks-libev从2.4.8版本开始增加了asciidoc样式的帮助文档生成,个人感觉意义不太大,手册这玩意再漂亮,谁也不会天天看,要不只看一次就会用了,下次不会用再查。

2018-06-11友情提示:本文较老旧,可能对新版ss-libev不再适用。

该man page依赖的asciidoc,安装后体积高达1GB,真没必要啊!我的宝贵的搬瓦工这个破3GB磁盘,绝对没空间放下这么庞然大物!

下文以shadowsocks-libev v2.6.2 为例,版本为

commit 520290349ed62129579013eac72bcc4d0119fcd1
Author: Max Lv <max.c.lv@gmail.com>
Date:   Thu Jan 19 12:14:26 2017 +0800

    Update configure.ac

其它版本也许不太一样。但是思路是类似的。

首先得更新submodules,按照README.md文档步骤来。

git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev
git submodule update --init --recursive

编译主要分为下面两种情况:Make编译和build-deb包

方式一 make

make是直接产生二进制可执行文件。

编译时候默认是编译帮助文档的,由于依赖包体积过大可以选择不编译手册(documentation)

./autogen.sh
./configure --disable-documentation

# 四线程编译并安装
make -j4 install

方式二 build-deb

主要是debian/ubuntu用户,方便打包成debian package在多台机子上安装。这样不需要每台机子都执行make

删掉检查依赖asciidoc xmlto

vi debian/control
# 删build-depends内的asciidoc和xmlto

不安装Man手册

vi debian/shadowsocks-libev.install
# 删usr/share/man/

向configure传递参数:禁用编译文档

vi debian/rules
# 找到
override_dh_auto_configure:
# 添加这句
--disable-documentation \

编译

./autogen.sh && dpkg-buildpackage -b -us -uc -i
ls .. | grep shadowsocks

安装前可以备份一份/etc/shadowsocks-libev/config.json。以便恢复旧版本的配置。

卸载干净旧版本(可选步骤)

dpkg -r shadowsocks-libev 
dpkg -P shadowsocks-libev

最后安装deb,并解决软件包依赖错误

dpkg -i shadowsocks-libev_2.6.2-1_amd64.deb
apt install -f