CentOS 7 編譯qBittorrent Web UI安裝指南
前言
以下是安装qBittorrent教学。
适用于CentOS7或更新版本
适用于qBittorrent4.1.5或更新版本
安裝須知
qBittorrent基于libtorrent,所以必须先安装libtorrent。但是需要说明的是,我安装时,libtorrent最新的版本为
1.2.1
,但是此版本qb暂未支持。
我们选择安装1.0.11
或者1.1.12
,相对而言1.0.11更加稳定,但1.1.12性能更为强劲,因为其支持了异步i/o.本文就以1.1.12为例,演示安装过程。
https://gcc.gnu.org/
GNU編譯器(GCC)是一套程式語言編譯器,需要用於編譯qBittorrent的源碼。
qBittorrent4.1.4需要C++14進行編譯
CentOS7自帶的GCC4.8.5只支援到C++11,所以稍後會透過SCL安裝GCC8.2 (支援C++14)
安裝libtorrent
先安裝依賴包:
yum groupinstall "Development Tools"
yum install qt-devel boost-devel openssl-devel qt5-qtbase-devel qt5-linguist
https://github.com/arvidn/libtorrent/releases 查看更新的版本来替换安装的版本
这里以安装的 1.1.12
为例
wget https://github.com/arvidn/libtorrent/releases/download/libtorrent_1_1_12/libtorrent-rasterbar-1.1.12.tar.gz
tar xf libtorrent-rasterbar-1.1.12.tar.gz
cd libtorrent-rasterbar-1.1.12
./configure --disable-debug --prefix=/usr CXXFLAGS=-std=c++11
make -j$(nproc)
make install
ln -s /usr/lib/pkgconfig/libtorrent-rasterbar.pc /usr/lib64/pkgconfig/libtorrent-rasterbar.pc
ln -s /usr/lib/libtorrent-rasterbar.so.9 /usr/lib64/libtorrent-rasterbar.so.9
安装qBittorrent
由于qBittorrent4.1.4+ 需要C++14进行编译,而centos7.x 默认自带的gcc版本为4.8.5只支持c++11,因此我们需要更新gcc版本,为了尽量保护系统环境不被破坏,我们选择适用scl安装高版本gcc。
通过scl构建gcc8.2环境
yum install centos-release-scl
yum install devtoolset-8-gcc*
scl enable devtoolset-8 bash
https://github.com/qbittorrent/qBittorrent/releases 可查看更新的版本来替换安装的版本
这里以 安装 qBittorrent 4.1.5
为例
cd ~
wget https://github.com/qbittorrent/qBittorrent/archive/release-4.1.5.tar.gz
tar xf release-4.1.5.tar.gz
cd qBittorrent-release-4.1.5
./configure --prefix=/usr --disable-gui CPPFLAGS=-I/usr/include/qt5
make -j$(nproc)
make install
退出SCL的GCC環境
exit
设置开机启动
vi /etc/systemd/system/qbittorrent.service
输入以下内容
[Unit]
Description=qBittorrent Daemon Service
After=network.target
[Service]
LimitNOFILE=512000
User=root
ExecStart=/usr/bin/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox
[Install]
WantedBy=multi-user.target
保存后退出编辑
载入配置启用以上設置
systemctl enable qbittorrent.service
初次运行设置
安装完成后请先启动一次qb。
qbittorrent-nox
初次启动需要同意其适用协议,按照其提示输入y
回车即可。
使用ctrl+c
退出
使用systemctl 让其后台运行 systemctl start qbittorrent.service
开始使用
访问http://ip:8080 进入webui,如果无法访问可能是防火墙问题,将在下一节说明。
默认用户名:admin
默认密码:adminadmin
修改webui密码:
头部菜单: 工具 --> 选项 --> Web 用户界面 --> 验证
工具栏: 选项(最后一个转轮图标) --> Web 用户界面 --> 验证
systemctl 相关控制命令:
systemctl start qbittorrent.service #开启qb
systemctl stop qbittorrent.service #关闭qb
systemctl restart qbittorrent.service #重启qb
防火墙设置
centos7 使用firewall防火墙
放行webui端口
firewall-cmd --permanent --add-port=8080/tcp
放行qb默认监听端口(8999)自行修改后请同步放行防火墙。
firewall-cmd --permanent --add-port=8999/tcp
启用配置
firewall-cmd --reload
创建下载文件夹和设置权限
mkdir -p /home/Downloads
chmod 777 /home/Downloads
把下载路径设置到 /home/Downloads
就OK了!
References
原文地址:https://www.cnblogs.com/fsong/p/11516477.html
- Laravel中运行Gulp任务的利器(一) —— Laravel Elixir简介及入门教程
- 碎片化 | 第四阶段-52-Hibernate特性-视频
- 碎片化 | 第四阶段-53-hibernate持久化session问题解决-视频
- 入门webpack(下)
- 巨头们关注的实时Web:发展与相关技术
- 碎片化 | 第四阶段-54-hibernate-spring整合流程-视频
- OpenDaylight Lithium版本简单应用及流表操作指南
- 碎片化 | 第四阶段-55-OpenSessionInViewFilter组件配置解决session问题-视频
- 入门Webpack(上)
- 碎片化 | 第四阶段-56-ManyToOne和OneToMany映射关系-视频
- 基于网络流量的SDN最短路径转发应用
- 碎片化 | 第四阶段-57-hibernate二级缓存-视频
- NoSQL篇 | NoSQL从小白到码神 之 Redis篇
- Neutron和ONOS集成实践
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Angular5.0.0新特性
- 用Python实现坦克大战游戏 | 干货贴
- android studio 3.0 升级 项目遇到的问题及更改思路(问题小结)
- Android Studio 3.0被调方法参数名提示的取消方法
- Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
- 解决python多线程报错:AttributeError: Can't pickle local object问题
- TensorFlow2.1.0最新版本安装详细教程
- Android仿京东首页秒杀倒计时
- 超实用的android自定义log日志输出工具类
- spring进行mock测试
- RecyclerView实现纵向和横向滚动
- Android ListView列表视图的使用方法
- 滴滴自动化运维平台夜莺实战部署
- Android UI使用HorizontalListView实现水平滑动
- python操作yaml说明