Build and configure Transmission in Debian or whatever you wanted to know about Transmission but were afraid to ask

  • Tutorial
Transmission LogoDebian LogoTransmission is one of the most popular torrent clients in the world of Unix-like operating systems and, for example, is the default choice in distributions such as Ubuntu , Fedora and openSUSE . In its work, Transmission consumes significantly less system resources than other torrent clients, due to which it can and is used in many embedded OSs, even such devices as home WiFi routers / access points or network media players. In addition, Transmission has a built-in web interface and does not require either Apache or Lighttpd for its operation., nor any other http server. It is about installing and configuring the latest version of this wonderful torrent client that I want to talk about in this post.

Transmission assembly from source

Unfortunately, the standard repositories contain an outdated version. That is why the package of the latest version of Transmission will be assembled and installed.

Note : Thanks to BaBL for advice on the installation method .

So, first of all, we need to download the archive with the sources of the torrent Transmission client. Download link can be found on the official page .

Note : all of the instructions below are shown on the example of the Debian OS , however they can be reproduced with minor changes on other distributions.

$ wget

Note : at the time of writing the post (2010-03-16), the latest version of Transmission was 1.92.

After downloading the archive with the sources, it should be unpacked:

$ tar xvjf transmission-1.92.tar.bz2

as a result, the entire contents of the archive will be unpacked into the “transmission-1.92” folder. Let's move on to it:

$ cd transmission-1.92

For successful compilation, you need to install the missing utilities and libraries:

# aptitude install build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libglib2.0-dev checkinstall

Next, you need to set the build options:

$ ./configure -q --disable-gtk --disable-nls

where " --disable-gtk" - disables the GTK client assembly, and
"--disable-nls" - an option designed specifically for servers and embedded systems, removes dependencies on gettext and intltool.

Now you can start compilation:

$ make -s

And immediately after successful compilation, we will begin to create the .debpackage. To do this, we need root privileges :

# checkinstall -D --install=no

Hereinafter, commands requiring root privileges to run as root are marked with the "#" prefix.

On the request to enter a brief description of the package, we enter something in the style of " Transmission - cross-platform BitTorrent client " and press Enter twice, as a sign of the end of the text.

Next, a menu appears with information about the package being collected. Make sure that the package version and release are set and the build starts by pressing Enter.

Now install the created package:

# dpkg -i transmission_1.92*.deb

Everything, at this stage the installation is completed. Next, we are waiting for the setting.

Note : in more detail about the assembly of Transmission from the source you can read here .

Transmission Setup

The first thing to do when setting up Transmission is to create a new user in the system. At the same time, for security reasons, the created user should be without a password, for which the following option " --disabled-password" is responsible :

# adduser --disabled-password transmission

After creating the user, switch to his console:

# su transmission

Hereinafter, to explicitly identify the commands that need to be run on behalf of the newly created user, I will use prefix " transmission@host:~$" .

Next, start transmission-daemonand stop it right away so that it creates files with default settings. We start:

transmission@host:~$ transmission-daemon -f

where the option " -f" indicates that the program is not demonized .

Now to stoptransmission-daemon, press CRTL-C on the keyboard. After that, all the default settings will be recorded in the transmission user’s home folder in the following way:


Let's complete the Transmission configuration. To do this, your favorite editor needs to change the settings.json file. This file contains all the settings in JSON format .

transmission@host:~$ nano /home/transmission/.config/transmission-daemon/settings.json

This file contains many settings (a full list of which can be found here ), however, I usually only change these:

  • "peer-port": 51413- port of incoming connections. If you are for NAT , then take care of forwarding this port;

  • "download-dir": "\/arc"- the folder in which the downloads will be located. I draw attention to the fact that such characters as "/" need to be escaped. In addition, make sure that the user transmissionwhose rights the torrent client is working with has the right to write this way;

  • "incomplete-dir": "\/arc\/Incomplete"- the folder in which the pending downloads will be located. Upon completion, they will be moved along the path specified in the " download-dir" option . Also make sure that the user transmissionhas the right to write this way;

  • "incomplete-dir-enabled": true - inclusion of the previous option;

  • "rpc-enabled": true- enable remote control. This also includes web-based management;

  • "rpc-whitelist-enabled": true- inclusion of the so-called “white list” of IP addresses from which Transmission remote control is possible. This also includes remote control via a web interface;

  • "rpc-whitelist": ",192.168.*.*"- "White list". You can specify not only local, but also real external IP addresses;

  • "rpc-authentication-required": true - require authentication for remote management;

  • "rpc-username": "логин" - login for remote control;

  • "rpc-password": "пароль" - password;

  • "Rpc-port": 9091 - port for access to remote control.

For the future, I want to draw your attention to the fact that simply changing the settings.json settings file while Transmission is running does not affect its operation, and upon exiting it, they will be overwritten with the settings that were at the time of launch. In order for a working Transmission to load new settings during its operation, it should send a signal SIGHUP:

# killall -HUP transmission-daemon

Now, at the end of settings, it is better to exit the user console transmission. We won’t need it anymore.

transmission@host:~$ exit

Configure daemon startup transmission-daemon

In order to transmission-daemonautomatically start at the start of the machine, you need to perform a few simple steps. First, you need to take the startup script here at this address save it in a file /etc/init.d/transmission-daemon.

We make the file executable:

# chmod +x /etc/init.d/transmission-daemon

Set the owner of the system user’s file as root:

# chown root:root /etc/init.d/transmission-daemon

Turn on “autoload”:

# update-rc.d transmission-daemon defaults

Everything, now the daemon can be launched by executing this command:

# /etc/init.d/transmission-daemon start

Now, during each boot of the machine, our torrent client will automatically start.

Remote control

There are several options for remote control. One of them is the built-in web-interface. To open it, you need to direct the browser to the address http://<ваш IP адрес>:9091/(the port is specified in the settings.json settings file with the " rpc-port" parameter ). And here is what it looks like: ( click to enlarge ) Another option for remote control is a cross-platform (Windows, Linux and Mac OS X) open source Transmission Remote GUI program . This is a pretty functional program with µTorrent

Transmission web interface

-like interface has much more features than the built-in web-interface. Among its functionality, I would like to mention filtering torrents by status and tracker, determining the country and host name of peers, associating with .torrent files, choosing a folder for downloading, setting priorities and much more.

(The main window with a list of peers)

More screenshots of the Transmission Remote GUI .

I also want to note a similar project - transmission-remote-dotnet . Unfortunately, this development is intended for the Windows world (developed on .NET), however it has a large number of options and capabilities than the previous version, and as for me, it looks more pleasant and harmonious.

(Screenshot of transmission-remote-dotnet with settings)

More screenshots of transmission-remote-dotnet .

And finally, I can not help but mention a plug-in for FireFox like Autotrans . The plugin adds the item “Torrent It!” To the context menu for links to .torrent files when you click on it, the download of the selected file is launched on your Transmission daemon.

( Autotrans plugin context menu )

But this is far from all that can be done with Transmission. You can see other options at this address.

To the issue of download automation

I also want to remind you about the automation of downloading your favorite TV shows from RSS feeds of various trackers:
  • I already wrote about this a little earlier here (on the example of LostFilm 'a) and here (on the example of the Cinema Hall ). Both solutions are implemented in the form of shell commands and is based on grep, wget, curl,

  • Also, another way to automate through FlexGet described Alukar 's here ;

  • And another option for processing RSS feeds using Yahoo Pipes was considered by the amoN haberman in this post.

UPD . As librarian suggests in the comment, there is another, more correct, way to build Transmission. Added a separate paragraph.

UPD2 . Added description of transmission-remote-dotnet.

UPD3 . Updated installation item. Thank you for helping BaBL .

Also popular now: