這個月把所有的 qBittorrent 版本從3.3.11升級到4.0.4
Synology 主機的 Debian Chroot、法國 Online 的 CentOS 7
及加拿大 OVH 的 Ubuntu 16.04 系統全部都升到了qBittorrent 4.0.4版本
說起來 3.3.11 的版本也蠻舊了
雖然是支援度最高的版本,但目前華人社區的 PT 站
有支援qB的站也只有 1-2 個站不支持較新版本的 qBittorrent
想升級 4.0.4 最主要的原因除了可以跳過校驗、在 Debian 8下 Peer IP 也不會跳針 (Debian 8 Bug)
WebUI 使用介面也較為流暢
前後先在 Ubuntu 16.04 及 CentOS 7 實作成功升級了 4.0.4 版本
後來發現在 Debian 8 完全是個坑!!!
主要原因在於新版本對於 qt5 庫的要求更高了
最基本的要求提高到 5.5.1 版本
Ubuntu 16.04 及 CentOS 7 透過 apt or yum 安裝的 qt5 庫都高於 5.5.1
然而,Debian 8 只有 5.3.2… 當然編譯到一半就失敗收場了!!
Google 了一下國內外的教學,對於qBittorrent 4.0.4 的教學很少
大部份都是增加 sources 源 或是安裝桌面版本,直接用run去安裝
或是在較新的環境編譯好包成 deb,再拿回舊環境透過 dkpg 安裝
幾乎找不到純伺服器下源碼編譯的操作
想想也對,編個 qt5 庫在四核的機器就要花大約 1.5~2 小時
在 ow class 級的機器大概編到一半就自暴了
真他x的坑時間呀!!
不久前,參考了百度PT貼吧裡面的一則文章關於最新版 qBittorrent
那篇討論的結果最後雖然沒有成功的在 Debian 8 編譯成功
但給我了不少方向,花時間自行研究了一下,終於在 Debian 8 編譯成功
已在 Docker 裝的 Debian 8 (8.10) 及 Synology Debian Chroot (8.10) 環境實作成功
先放上 Debian 8 的教學,Ubuntu 16.04 及 CentOS7 的晚點再放上
以下紀錄 qBittorrent Debian 編譯過程方便以後留存使用
===================================================================
1.環境準備,請先切換具有 root 權限的 sudo 使用者
1 2 3 4 5 | sudo apt-get install build-essential libgl1-mesa-dev sudo apt-get install python python3 sudo apt-get install pkg-config automake libtool git sudo apt-get install libboost-dev libboost-system-dev libboost-chrono-dev libboost-random-dev libssl-dev sudo apt-get install libgeoip-dev |
2.源碼編譯 qt5 庫 ( 5.5.1 版本)
1 2 3 4 5 6 | wget http://ftp.jaist.ac.jp/pub/qtproject/archive/qt/5.5/5.5.1/single/qt-everywhere-opensource-src-5.5.1.tar.gz tar -xzvf qt-everywhere-opensource-src-5.5.1.tar.gz cd qt-everywhere-opensource-src-5.5.1 echo -ne 'o\nyes\n' | ./configure -no-xcb make -j$(nproc) make install |
**誠心建議使用 make -j$(nproc)而非 make,不然會等到天荒地老
3.設定 qt5 庫環境變量
1 2 3 4 5 6 | vi /root/.bashrc **** 加入以下二條內容 **** export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/Qt-5.5.1/lib/pkgconfig export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/Qt-5.5.1/bin |
增加環境變量後請關掉 ssh 再重開一次 ssh 讓環境變量設定生效
4.編譯 qBittorrent專用 libtorrent (RC_1_0 版本為 1.0.11,RC_1_1 版本為 1.1.17 可自行選譯)
之前有不少人在官方 github 反應qb 4.0.x 版本 ipv6 tracker 無作用
其實是 libtorrent 1.0.16 的 bug 造成的並非 qBittorrent 本身的問題
最近 libtorrent 作者發表了 1.1.17 有修正這個問題
不過我還沒測試過,所以教學還是以 1.0.11 版本為主
1 2 3 4 5 6 7 | git clone https://github.com/arvidn/libtorrent.git cd libtorrent/ git checkout RC_1_0 ./autotool.sh ./configure --disable-debug --enable-encryption --prefix=/usr --with-libgeoip=system CXXFLAGS=-std=c++11 make clean && make -j$(nproc) make install |
4.0.4 不管在什麼系統都需要使用 C++11 的編碼器來編譯,跟以往 3.3.11 不同
不指定 C++11 編譯器編譯,編到一半一定會報錯
但可能會造成 Python 無法 import libtorrent
Deluge 因此無法正常啟動 Daemon Server 等問題
可在編譯完 qBittorrent後,透過 apt yum upgrade 修正 Python libtorrent.so symbol 的問題
或是參考 Deluge官方說明 編譯一個較新版本不使用 C++11 編譯的 libtorrent
5.安裝並編譯 qbittorrent-nox 4.0.4
1 2 3 4 5 6 7 | ldconfig wget https://github.com/qbittorrent/qBittorrent/archive/release-4.0.4.tar.gz tar -xzvf release-4.0.4.tar.gz cd qBittorrent-release-4.0.4 ./configure --prefix=/usr --disable-gui make -j$(nproc) make install |
6.編輯 qbittorrent-service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | vi /etc/systemd/system/qbittorrent.service ## 貼入以下內容 ## [Unit] Description=qbittorrent torrent server After=network.target [Service] User=root ExecStart=/usr/bin/qbittorrent-nox Restart=on-abort [Install] WantedBy=multi-user.target |
7.啟動 qbittorrent-nox & 設定開機自啟動
1 2 | systemctl start qbittorrent.service systemctl enable qbittorrent.service |
8..WebUI 登入
1 2 3 4 5 | http://你的IP:8080/ ## 預設使用者&密碼 ## user:admin password:adminadmin |
** 成功執行並登入的話會看到以下畫面,請自行更改 language 及基本設定
** 更改語言設定後需重新啟動才能生效
1 | systemctl restart qbittorrent.service |