注意:这个教程是在 PulsedMedia 盒子上安装 Deluge 的实践,存在大量 platform-specific 的内容,在其他商家的盒子上尝试时要加以修改。
PulsedMedia 盒子的宿主机是 Ubuntu 14.04,所有自带的软件也是基于该发行版,自带的 Python 为 2.7.9,且缺乏大量的库。如果我们要安装 Deluge,需要从头解决一系列依赖问题。
在 User Space 编译安装的方法
比较清真的做法是创建 $HOME/.local 目录,然后在下面创建对应的 bin, lib 和 include 目录,然后再创建 usr 目录,并创建另一套 bin, lib 和 include。
在完成文件夹创建以后,在 .bashrc 中修改自己的 $PATH, $LD_LIBRARY_PATH, $C_INCLUDE_PATH, $CPLUS_INCLUDE_PATH 这几个环境变量:
export PATH=/home/<user>/.local/bin:/home/<user>/.local/usr/bin:$PATH
export LD_LIBRARY_PATH=/home/<user>/.local/lib:/home/<user>/.local/usr/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/home/<user>/.local/include:/home/<user>/.local/usr/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/home/<user>/.local/include:/home/<user>/.local/usr/include:$CPLUS_INCLUDE_PATH
<user> 修改为自己的 Unix 用户名
在修改了这些环境变量之后,配合编译时的 –prefix 参数以及 pip/python 的 –user 参数就可以将程序安装在自己的 $HOME 目录下
Deluge 依赖的安装
pip
对,你没看错,这机器 pip 都没有,好在这个相对来说还是比较简单,Python 官方也提供了对应的 py 程序
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py -O - | python - --user
Boost
libtorrent 编译需要 boost,我们选择 Boost 1.65.1 这个经过大量测试的版本
wget https://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.gz
tar xzvf boost_1_65_1.tar.gz
cd boost_1_65_1
./bootstrap.sh --prefix=$HOME/.local
./b2 install -j $(nproc)
Geoip
这也是 libtorrent 依赖的库之一
git clone https://github.com/maxmind/geoip-api-c.git
./bootstrap
./configure --prefix=$HOME/.local
make -j $(nproc)
make check
make install
libtorrent
终于可以安装 libtorrent 了,这个和之前正常安装的区别不大,唯一的区别在于要指定 –prefix 和 –with-boost-libdir
git clone https://github.com/arvidn/libtorrent.git libtorrent-1.0.11
git checkout RC_1_0
./autotool.sh
./configure --enable-python-binding --with-libiconv --disable-debug --enable-encryption --with-libgeoip=system CXXFLAGS=-std=c++11 --prefix=$HOME/.local --with-boost-libdir=$HOME/.local/lib
make -j $(nproc)
make install
Deluge 的 py 依赖
这个没什么好说的
pip install attr chardet click colorama pyopenssl pam pyasn1 pyasn1-modules serial service_identity Twisted zope.interface setuptools notify pygame mako automat constantly hyperlink incremental pyxdg --user
但是有三个库,intltool, libsrvg 和 xdg-utils 没有,我们需要另行安装
intltool
wget http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz
tar zxvf intltool-0.40.6.tar.gz
cd intltool-0.40.6
./configure --prefix=$HOME/.local
make && make install
libsrvg
该库依赖 librsvg2-common librsvg2-2 libglib2.0-0 和 libgdk-pixbuf,其中前三个可以直接用 apt-get download 命令取得,后一个不知为何没办法在 apt 上找到,只能去补佳乐的 package 网站上寻找,地址在这里。我们用的版本是 2.31.1-2+deb8u7。
使用 dpkg -x 命令可以将 .deb 包释放在指定目录下,但是不能完成 apt 安装的配置过程,好在这几个 library 只是文件而已,所以这么做并没有什么问题
apt-get download librsvg2-common librsvg2-2 libglib2.0-0
wget http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.31.1-2+deb8u7_amd64.deb
dpkg -x libgdk-pixbuf2.0-0_2.31.1-2+deb8u7_amd64.deb ~/.local
dpkg -x libglib2.0-0_2.42.1-1+b1_amd64.deb ~/.local
dpkg -x librsvg2-2_2.40.5-1+deb8u2_amd64.deb ~/.local
dpkg -x librsvg2-common_2.40.5-1+deb8u2_amd64.deb ~/.local
注意 .deb 的名字可能随着版本升级而改变,所以复用的时候要注意一下
xdg-utils
和上面一样,用 apt 取得包以后再释放
apt-get download xdg-utils
dpkg -x xdg-utils_1.1.0~rc1+git20111210-7.4_all.deb ~/.local
Deluge
最后,正常安装 deluge 即可
wget http://download.deluge-torrent.org/source/deluge-1.3.15.tar.gz
tar xzvf deluge*.tar.gz
python setup.py build
python setup.py install --user
之后 deluged 和 deluge-web 会被安装在 $HOME/.local/bin 下面,由于之前已经修改了环境变量,所以直接运行就可以了
如果要让 deluged 工作在不同的端口,使用 deluged -p 23333 这样的命令就行,然后在 deluge-web 中改一下连接的 daemon 端口就行了
至此,deluge 应该已经可以正常运行了。