CentOS 7安装qBittorrent实现私人离线BT下载

Transmission用了一段时间,发现bug有点多,去官方论坛搜了一下和我遇到同样问题的一堆人,最早可追溯至2015年,我寻思这bug这么多年不修估计以后也不修了,所以寻求qBittorrent作为替代品。本文将分为两部分,基于CentOS 7,分别介绍通过预编译软件包安装(通过yum命令)以及通过源码自行编译安装两种方法。

通过预编译软件包安装(通过yum命令)的方法安装非常便捷,不需要解决繁琐的依赖问题而且所需时间也非常短,但是EPEL源中只有3.3版本(目前qBittorrent已经更新到4.2)

通过源码自行编译安装的方法可以安装到最新版的4.2版本,但是花费的时间较长(30分钟左右),而且需要解决繁琐的依赖关系。

以下步骤已经在CentOS 7.7 64-bit的环境中得到验证,且理论上通用于所有版本的CentOS 7系统

请在开始之前更新所有已经安装的软件以及系统内核,更新完之后重启一次

sudo yum -y update
shutdown -r now

本文快速转跳

通过预编译软件包安装(通过yum命令)

通过以下命令直接执行安装qbittorrent-nox。

sudo yum install -y qbittorrent-nox

通过以下命令启动qBittorrent

qbittorrent-nox

启动完成之后可以查看基本配置来进行接下来的操作

通过源码自行编译安装

通过源码编译安装请尽量确保SSH连接不会中断,首先安装常规的工具以及环境

sudo yum groupinstall "Development Tools"
sudo yum install centos-release-scl
sudo yum install devtoolset-8-gcc devtoolset-8-gcc-c++
sudo yum install qt-devel openssl-devel qt5-qtbase-devel qt5-linguist

下载Boost

wget https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.gz

请确保Qt库处于5.9.7或以上,执行以下命令进行查询

rpm -qa | grep qt5-qtbase

返回的结果应该如下(不需要注意显示的顺序)

qt5-qtbase-common-5.9.7-2.el7.noarch
qt5-qtbase-gui-5.9.7-2.el7.x86_64
qt5-qtbase-5.9.7-2.el7.x86_64
qt5-qtbase-devel-5.9.7-2.el7.x86_64

完成以上内容后接下来正式开始编译安装,首先是安装Boost,执行以下命令更改开发工具包

scl enable devtoolset-8 bash

然后逐条输入以下命令,安装时间较长请耐心等待

export DIR_BOOST="/opt/boost"
tar -xvf boost_1_72_0.tar.gz
cd boost_1_72_0
./bootstrap.sh --prefix=${DIR_BOOST}
./b2 install --prefix=${DIR_BOOST} --with=all 

执行完之后Boost安装完毕,接下来进入到Libtorrent安装,因为qBittorrent是依赖于Libtorrent,所以这一步也是必不可少的。

scl enable devtoolset-8 bash

通过git方式从仓库搬回Libtorrent代码

git clone --depth 1 -b RC_1_2 https://github.com/arvidn/libtorrent.git

然后逐条输入以下命令,安装时间较长请耐心等待

cd libtorrent
./autotool.sh
./configure --disable-debug --enable-encryption --prefix=/usr --with-boost=${DIR_BOOST} CXXFLAGS=--std=c++14
make 
make install
ln -s /usr/lib/pkgconfig/libtorrent-rasterbar.pc /usr/lib64/pkgconfig/libtorrent-rasterbar.pc

至此,Libtorrent安装完毕,接下来正式安装qBittorrent

首先从官方仓库搬代码

git clone --depth 1 -b v4_2_x https://github.com/qbittorrent/qBittorrent

然后更改开发工具包

scl enable devtoolset-8 bash

接下来逐行执行以下命令进行编译

cd qBittorrent
./configure --prefix=/usr --disable-gui CPPFLAGS=-I/usr/include/qt5 --with-boost=${DIR_BOOST} CXXFLAGS=--std=c++14
make 
make install

编译完成之后如果没有见到报错字样证明编译成功,可以直接启动,直接运行以下命令

qbittorrent-nox

通过编译安装的qbittorrent-nox启动时可能会遇到报错,请查看本文末的常见问题

安装完之后请到基本配置查看接下来的操作

基本配置

首次启动需要同意使用协议才能继续使用,输入字母“y”然后回车同意协议。同意协议之后会显示出qBittorrent webui的登陆地址以及初始账号密码,请记得在防火墙处对端口进行放行。

在自己电脑端浏览器访问以下地址,注意把localhost改为服务器的IP地址,并且通过默认账号密码进行登录

http://你的IP地址:8080/

登录之后修改语言为中文以及更改默认的账号密码

改完语言之后往下拉就能看到如下所示更改登陆用户名和密码的区域

更改完之后记得拉到页面的最下端保存,保存完之后不会立刻生效,保存后退回到命令行使用Ctrl+C终结进程。

接下来需要将qBittorrent添加到系统服务以实现开机自动启动

sudo vi /usr/lib/systemd/system/qbittorrent.service

将下面配置复制粘贴到刚刚vi方式打开的文本中,注意修改<username>为自己的用户名,不担心安全性可以直接改为root

[Unit]
Description=qbittorrent torrent server
    
[Service]
User=<username>
ExecStart=/usr/bin/qbittorrent-nox
Restart=on-abort
    
[Install]
WantedBy=multi-user.target

然后设置成开机自启动

sudo systemctl enable qbittorrent

到这一步就已经全部完成,可以通过以下的命令进行开启和关闭等操作

sudo systemctl start qbittorrent #开启qb
sudo systemctl stop qbittorrent #关闭qb
sudo systemctl restart qbittorrent #重启qb

常见问题

通过编译安装时经常会遇到如下报错

qbittorrent-nox: error while loading shared libraries: libtorrent-rasterbar.so.10: cannot open shared object file: No such file or directory

通常是因为库的位置没摆对,可以通过设置软链接的方式解决

ln -s /usr/lib/libtorrent-rasterbar.so.10 /usr/lib64/libtorrent-rasterbar.so.10

有时候也会显示这种错误

qbittorrent-nox: error while loading shared libraries: libboost_system.so.1.72.0: cannot open shared object file: No such file or directory

这时候只需要找到libboost相关文件设置软链接即可

ln -s /opt/boost/lib/libboost_system.so.1.72.0 /usr/lib64/libboost_system.so.1.72.0

参考文档

CentOS 7.x编译安装qBittorrent

CentOS 7.x设立qBittorrent守护进程

发表评论

电子邮件地址不会被公开。 必填项已用*标注