hello,
many torrent sites are banning the transmission client 2.92 and below. This is a problem becuase 2.93 is relativly new and is not in any repository or omv extras.
This is how i manged to get to 2.93. The guide was written for another site so might be a bit more generic, but hopefully, if you're a begginer to linux like me, you'll be able to follow it.
Are you trying to upgrade to Transmission 2.93 but,like me, are stuck in Linux hell of "simply compile from source" and then no instructions on how to do that?
I'm not a linux expert, but i am really stubborn.
So here's my guide.
Prerequisites:
You must have the ability to reach the CLI/Bash window of the computer you wish to upgrade.
You should at least know what the sudo, cd and ls commands do. If not, you'll struggle to follow this.
READ THE REPLIES TO THIS THREAD don't go blindly following the advice of some random on the internet. Wait for some other sucker to test my instructions and/or reply with how i could have done it better.
My system:
I'm using an ATOM intel pc running x64 bit architecture and kernel 4.4 of Debian.
I'm running Openmediavault on top.
I WILL NOT HELP YOU IF YOU BORK YOUR SYSTEM
Now this guide is in two parts, the first part is getting the new version from a repository, which; if it works, is much easier. and the second very long and very hard part where you really really have to compile from source. Which is the equivalent of building a car from parts with the help of a robot that sort of knows what its doing.
Part 1: trying a respository.
ok, so since this whole thing started there may have been an update to the repository to get you out of trouble.
My box is an x686 architecture device, and that is what the repository:
https://launchpad.net/~transmissionbt/+archive/ubuntu/ppa
says was updated on the 21 March 2018 (2.93-1ubuntu1~17.10.2)
I could be reading this wrong but if your device ISN'T a computer (it's a raspberry pi, or a firestick, or a nas box) running x86 or 64 bit archetecture this might not work for you and you're stuck with part 2.
anyway, lets add this repositry
sudo add-apt-repository ppa:transmissionbt/ppa
uh oh, did you get an error about command not found. don't worry do this to fix it
sudo apt-get install -y software-properties-common
ok, try that first command again.
did it work? no? it gave you an error like this:
gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory
gpg: connecting dirmngr at '/tmp/tmpyqcnq05k/S.dirmngr' failed: No such file or directory
ok, you need this
sudo apt-get install dirmngr
right, did that work? of course not. you probably got this error
Exception ignored in: <function WeakValueDictionary.__init__.<locals>.remove at 0x7fcdfd141510>
Traceback (most recent call last):
File "/usr/lib/python3.5/weakref.py", line 117, in remove
TypeError: 'NoneType' object is not callable
Exception ignored in: <function WeakValueDictionary.__init__.<locals>.remove at 0x7fcdfd141510>
Traceback (most recent call last):
File "/usr/lib/python3.5/weakref.py", line 117, in remove
TypeError: 'NoneType' object is not callable
so we're going to need to fix that too.
lets go to where python lives
cd /usr/lib/python3.5/
and edit the file that's being annoying
nano weakref.py
find line 109 (you can use ctrl+_ and type in 109)
change this
def remove(wr, selfref=ref(self)):
so it says this
def remove(wr, selfref=ref(self), _atomic_removal=_remove_dead_weakref):
and 117 change this
_remove_dead_weakref(d, wr.key)
with:
_atomic_removal(d, wr.key)
write it out (ctrl+o) and exit (ctrl+x)
lets try that command again
hmmm, that didn't work for me, just said i'ts already installed, but i don't trust it, so we'll remove it, and add back again
sudo apt-get remove dirmngr
and back in again
sudo apt-get install dirmngr
great, now lets update
sudo apt-get update
and try and install transmission
sudo apt-get install transmission
hopefully, it will then install 2.93-1 (or higher) and you're done!
but wait, when i try it, it still says 2.92 so something isn't right
restart, no change. ok, lets ask it where it thinks transmission is
which transmission-cli
mine says /usr/bin/transmission-cli
and when i go (note the capital v there)
/usr/bin/transmission-daemon -V
it says 2.92. so how it that possible?
perhaps i now have two versions of transmission, one installed in the 'correct' place running 2.93 and one in the 'wrong' place running 2.92
so two approaches to fix this, change the path so that it looks for the correct one, or copy the new version over the top.
i'm going for the latter.
stop transmision
sudo service transmission-daemon stop
lets find all my transmission-daemons
sudo find / -type f -name "transmission-daemon"
that might take a while
but i get
/etc/init.d/transmission-daemon
/etc/default/transmission-daemon
find: ‘/proc/1387’: No such file or directory
find: ‘/proc/1390/task/1390/net’: Invalid argument
find: ‘/proc/1390/net’: Invalid argument
/var/tmp/transmission-2.93/daemon/transmission-daemon
/usr/local/bin/transmission-daemon
/usr/bin/transmission-daemon
now for those of you playing along, you probably got somethign different. The reason is i've already tried part two of this guide and have pretty much littered my system with failed attempts. the 'correct' install location is
/usr/local/bin/
and not /usr/bin
so, with the new files in /usr/local/bin lets copy them accross
sudo cp /usr/local/bin/transmission-show /usr/bin/transmission-show
sudo cp /usr/local/bin/transmission-remote /usr/bin/transmission-remote
sudo cp /usr/local/bin/transmission-edit /usr/bin/transmission-edit
sudo cp /usr/local/bin/transmission-daemon /usr/bin/transmission-daemon
sudo cp /usr/local/bin/transmission-create /usr/bin/transmission-create
sudo cp /usr/local/bin/transmission-cli /usr/bin/transmission-cli
now when i tried that last one (transmission-cli) i got an error (cp: cannot stat '/usr/local/bin/transmission-cli': No such file or directory) which means source file not found.
we're going to ignore that.
ok, so reboot
reboot
is everything working? ahHAHAHAHA no of course not.
on my home client i'm getting "connection refused" and when i log back into the server and run
sudo service transmission-daemon status
i get
● transmission-daemon.service - Transmission BitTorrent Daemon
Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled; vendor preset: enabled)
Active: failed (Result: timeout) since Mon 2018-04-30 19:52:07 AEST; 5min ago
Process: 555 ExecStart=/usr/bin/transmission-daemon -f --log-error (code=exited, status=0/SUCCESS)
Main PID: 555 (code=exited, status=0/SUCCESS)
Apr 30 19:50:36 mediafiler systemd[1]: Starting Transmission BitTorrent Daemon...
Apr 30 19:50:40 mediafiler transmission-daemon[555]: sendto: Network is unreachable
Apr 30 19:50:42 mediafiler transmission-daemon[555]: [2018-04-30 19:50:42.197] UDP Failed to set receive buffer: requested 4194304, got 425
984 (tr-udp.c:84)
Apr 30 19:50:42 mediafiler transmission-daemon[555]: [2018-04-30 19:50:42.198] UDP Failed to set send buffer: requested 1048576, got 425984
(tr-udp.c:95)
Apr 30 19:52:06 mediafiler systemd[1]: transmission-daemon.service: Start operation timed out. Terminating.
Apr 30 19:52:07 mediafiler systemd[1]: Failed to start Transmission BitTorrent Daemon.
Apr 30 19:52:07 mediafiler systemd[1]: transmission-daemon.service: Unit entered failed state.
Apr 30 19:52:07 mediafiler systemd[1]: transmission-daemon.service: Failed with result 'timeout'.
the important bit here isn't Network is unreachable, but that timeout error at the end
this is a bug in the build instructions which carried through to the ppa repository (which was built using the build instructions) see this rather salty exchange here for more info
https://github.com/transmission/transmission/issues/537
but lets not worry too much about that, how do we fix it? like this:
make a directory
sudo mkdir /etc/systemd/system/transmission-daemon.service.d/
make a file in that directory and open it for editing
sudo nano /etc/systemd/system/transmission-daemon.service.d/override.conf
write in that file
[Service]
Type=simple
User=debian-transmission
Group=debian-transmission
write out and exit
reboot
reboot
and we're done.
unless you couldn't get the repository to work, in which case, you'll need to "simply compile from sauce" which my guide is in part 2 below.
good luck.