Update, 2024-08-20:
Added a missing step, to install the qBittorrent files to their relevant places
Also, it had to happen. No releases for close to three months and then just as I learn to compile, a new version has to release the very next day 😂
It gave me a chance to test my notes. It hardly took me a few minutes to get the new release in place. So all is good!


A compilation of letters, courtesy Cosmos


I wanted to always have the lastest stable version of qBittorent on my Pi.
So today, I sat down and followed the project’s excellent instructions and got it running.
I did however stray off the beaten path a teensy bit1.
I didn’t want a gui and I wanted to be able to control it with systemd.

So here’s my checklist for next release. I’m currently running Bookworm on my Pi 5

  1. In case you run into problems, compile instructions are here: https://github.com/qbittorrent/qBittorrent/wiki/Compilation-Debian,-Ubuntu,-and-derivatives

  2. Do all off this after switching to root. (or sudo)

  3. Install build tools
    sudo apt install build-essential cmake git ninja-build pkg-config libboost-dev libssl-dev zlib1g-dev libgl1-mesa-dev

  4. Install Qt dependencies (qtbase5-private-dev is not part of the instructions, but compile will fail if you don’t include it)2
    sudo apt install --no-install-recommends qtbase5-dev qtbase5-private-dev qttools5-dev libqt5svg5-dev

  5. Qt requires Python at runtime, so: sudo apt install python3

  6. Install the libtorrent library. I compiled from source. Check page for fresh instructions, if stuff here doesn’t work

    git clone --recurse-submodules https://github.com/arvidn/libtorrent.git
    cd libtorrent
    git checkout RC_2_0 # or a 2.0.x tag
    cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local
    cmake --build build -j4 # the -j4 is to do on four cores at once. my addition.
    sudo cmake --install build
    

    If you ever want to uninstall libtorrent, then don’t delete this main folder. The build process would have created a install_manifest.txt in the build folder. So you can then uninstall with: sudo xargs rm < install_manifest.txt

  7. Get qb source: https://www.qbittorrent.org/download.

  8. Unzip: tar xzvf qbittorrent-4.6.5.tar.gz and then cd qbittorrent-4.6.5/

  9. Create Build configuration (disabled GUI and enabled systemd. Those aren’t part of the defaults)
    cmake -G "Ninja" -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local -DGUI=OFF -DSYSTEMD=ON

  10. Build cmake --build build

  11. Install all the files to their relevant locations cmake --install build

  12. Install service to run for a specific user.

    systemctl daemon-reload
    systemctl enable qbittorrent-nox@<some-user>.service
    systemctl start qbittorrent-nox@<some-user>.service
    
  13. We’re done.


Feedback on this post? Mail me at feedback at this domain

P.S. Subscribe to my mailing list!
Forward these posts and letters to your friends and get them to subscribe!
P.P.S. Feed my insatiable reading habit.



  1. which the project does make provisions for. ↩︎

  2. Target "qbt_base" links to: Qt::CorePrivate but the target was not found. or words to that effect ↩︎