Pull to refresh

Сборка и настройка Transmission в Debian или все что вы хотели знать о Transmission но боялись спросить

Decentralized networks
Tutorial
Transmission LogoDebian LogoTransmission — один из самых популярных torrent клинтов в мире Unix-подобных операционных систем и, к примеру, является выбором по умолчанию в таких дистрибутивах как Ubuntu, Fedora и openSUSE. В своей работе Transmission потребляет заметно меньше системных ресурсов нежели другие torrent клиенты благодаря чему может и используется во многих встраиваемых ОС даже таких устройств как домашние WiFi роутеры/точки доступа или сетевых медиаплеерах. Кроме того, Transmission обладает встроенным web-интерфейсом и не требует для его работы ни Apache, ни Lighttpd, ни какого другого http сервера. Именно о установке и настройке новейшей версии этого замечательного torrent клиента я и хочу рассказать в этом посте.

Сборка Transmission из исходников


К сожалению, в стандартных репозиториях находится устаревшая версия. Именно поэтому будет произведена собрка пакета новейшей версии Transmission и его установка.

Примечание: За совет по способу установки благодарим BaBL.

Итак, прежде всего нам необходимо загрузить архив с исходниками torrent клиента Transmission. Ссылку на загрузку можно найти на официальной странице.

Примечание: все нижеприведенные инструкции показаны на примере ОС Debian, однако они могут быть воспроизведены с незначительными изменениями и на других дистрибутивах.

$ wget http://mirrors.m0k.org/transmission/files/transmission-1.92.tar.bz2

Примечание: на момент написания поста (2010-03-16) последней версией Transmission была 1.92.

После загрузки архива с исходниками его следует распаковать:

$ tar xvjf transmission-1.92.tar.bz2

в результате чего, все содержимое архива будет распаковано в папку «transmission-1.92». Перейдем в нее:

$ cd transmission-1.92

Для успешной компиляции нужно установить недостающие утилиты и библиотеки:

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

Далее следует задать опции сборки:

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

где "--disable-gtk" — отключает сборку GTK клиента, а
"--disable-nls" — опция, предназначенная предназначенная специально для серверов и встраиваемых систем, удаляет зависимости от gettext и intltool.

Теперь можно запустить компиляцию:

$ make -s

А сразу после успешной компиляции приступим к созданию .deb пакета. Для этого нам понадобятся root привилегияии:

# checkinstall -D --install=no

Здесь и далее команды требующие для своего запуска root привилегии помечены префиксом "#".

На запрос о вводе краткого описания пакета вводим что-то в стиле "Transmission — cross-platform BitTorrent client" и дважды нажимаем Enter, как признак окончания текста.

Далее появляется меню с информацией о собираемом пакете. Убеждаемся что заданы версия пакета и релиз и запускам сборку нажатием Enter.

Теперь установим созданный пакет:

# dpkg -i transmission_1.92*.deb

Все, на этом этапе установка завершена. Далее нас ждет настройка.

Примечание: более детально про сборку Transmission из исходиков можно прочитать вот тут.


Настройка Transmission

Tux
Первым делом делом во время настройки Transmission следует создать нового пользователя в системе. При этом, в целях безопасности, создаваемый пользователь должен быть без пароля за что и отвечает следующая опция "--disabled-password":

# adduser --disabled-password transmission

После создания пользователя переключаемся в его консоль:

# su transmission

Здесь и далее, для явной идентификации команд, которые нужно запуска от имени вновь созданного пользователя я буду использовать префикс "transmission@host:~$".

Далее следует запустить transmission-daemon и тут же его остановить для того, чтобы он создал файлы с настройками по-умолчанию. Запускаем:

transmission@host:~$ transmission-daemon -f

где опция "-f" указывает на то, чтобы программа не демонизировалась.

Теперь, чтобы остановить transmission-daemon, на клавиатуре следует нажать CRTL-C. После этого все настройки по-умолчанию будут записаны в домашней папке пользователя transmission по следующему пути:

/home/transmission/.config/

Выполним конфигурацию Transmission. Для этого вашим любимым редактором нужно изменить файл settings.json. Этот файл содержит все настройки в формате JSON.

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

В данном файле находится множество настроек (полный список которых можно посмотреть вот тут), однако я обычно изменяю лишь эти:

  • "peer-port": 51413 — порт входящих соединений. Если вы за NAT'ом то позаботьтесь о пробросе этого порта;

  • "download-dir": "\/arc" — папка в которой будут находиться загрузки. Обращаю внимание на то, что такие символы как "/" нужно экранировать. Кроме того, убедитесь что пользователь transmission, с правами которого работает torrent клиент, имеет право на запись по этому пути;

  • "incomplete-dir": "\/arc\/Incomplete" — папка в которой будут находиться еще не законченные загрузки. После завершения они будут перемещены по пути, указанному в опции "download-dir". Так же убедитесь что пользователь transmission имеет право на запись по этому пути;

  • "incomplete-dir-enabled": true — включение предыдущей опции;

  • "rpc-enabled": true — включение удаленного управления. Сюда же относится и управление через web-интерфейс;

  • "rpc-whitelist-enabled": true — включение так называемого «белого списка» IP-адресов, с которых возможно удаленное управление Transmission. Сюда же относится и удаленное управление через web-интерфейс;

  • "rpc-whitelist": "127.0.0.1,192.168.*.*" — «белый список». Можно задавать не только локальные, но и реальные внешние IP адреса;

  • "rpc-authentication-required": true — требовать аутентификацию для удаленного управления;

  • "rpc-username": "логин" — логин для удаленного управления;

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

  • «rpc-port»: 9091 — порт для доступа к удаленному управлению.

На будущее, хочу обратить ваше внимание на то, что простое изменение файла настроек settings.json во время работы Transmission не влияет на его работу а по выходу из него, они будут перезаписаны теми настройками, которые были на момент запуска. Чтобы работающий Transmission загрузил новые настройки во время своей работы ему следует отправить сигнал SIGHUP:

# killall -HUP transmission-daemon

Теперь, по окончанию настроек, лучше выйти из консоли пользователя transmission. Больше она нам не понадобится.

transmission@host:~$ exit

Настройка автозагрузки демона transmission-daemon


Для того, чтобы transmission-daemon автоматически стартовал при старте машины нужно выполнить несколько несложных действий. Вначале, нужно взять стартовый скрипт вот по этому адресу http://trac.transmissionbt.com/wiki/Scripts/initd и сохранить его в файле /etc/init.d/transmission-daemon.

Делаем файл исполняемым:

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

Задаем владельцем файла системного пользователя root:

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

Включаем «автозагрузку»:

# update-rc.d transmission-daemon defaults

Все, теперь демон можно запустить выполнив вот такую команду:

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

Теперь, во время каждой загрузки машины, будет автоматически запускаться и наш torrent клиент.

Удаленное управление


Существует несколько вариантов удаленного управления. Один из них это встроенный web-интерфейс. Чтобы его открыть нужно направить браузер по адресу http://<ваш IP адрес>:9091/ (порт задается в файле настроек settings.json параметром "rpc-port"). И вот как он выглядит:

Transmission web interface
(кликни для увеличения)

Другим вариантом удаленного управления является кросс-платформенная (Windows, Linux и Mac OS X) open source программа Transmission Remote GUI. Это довольно функциональная программа с µTorrent-подобным интерфейсом имеет куда больше возможностей чем встроенный web-интерфейс. Среди ее функциональности хочется отметить фильтрацию торрентов по статусу и трекеру, определение страны и host-имени пиров, ассоциацию с .torrent файлами, выбор папки для загрузки, задание приоритетов и многое другое.

image
(Главное окно со списком пиров)

Еще скриншоты Transmission Remote GUI.

Так же хочу отметить подобный проект — transmission-remote-dotnet. К сожалению, данная разработка предназначена для Windows мира (разработана на .NET), однако она обладает большим числом опций и возможностей нежели предыдущий вариант, и как по мне, выглядит она приятнее и слаженнее.

transmission-remote-dotnet
(Скриншот transmission-remote-dotnet с настройками)

Еще скриншоты transmission-remote-dotnet.

Ну и напоследок, не могу не упомянуть такой плагин для FireFox как Autotrans. Плагин добавляет в контекстное меню на ссылки к .torrent файлам пункт «Torrent It!» при клике по которому запускается закачка выбранного файла на вашем Transmission демоне.

Autotrans
(Контекстное меню плагина Autotrans)

Но и это далеко не все что можно делать с Transmission. Посмотреть остальные возможности можно по вот этому адресу.

К вопросу об автоматизации загрузок


А еще хочу напомнишь про автоматизацию загрузок ваших любимых сериалов с RSS лент различных трекеров:
  • Об этом я уже писал несколько ранее вот тут (на примере LostFilm'a) и вот тут (на примере Кинозала). Оба решения реализованы в виде shell команд и основаны на grep, wget, curl;

  • Кроме того, еще один способ автоматизации с помощью FlexGet описывал Alukar вот тут;

  • И еще один вариант обработки RSS лент с помощью Yahoo Pipes рассмотрен хаброчеловеком AmoN вот в этом посте.


UPD. Как подсказывает librarian в комментарии есть еще один, более правильный, способ сборки Transmission. Добавил отдельным пунктом.

UPD2. Добавил описание transmission-remote-dotnet.

UPD3. Обновил пункт установки. Благодарим за помощь BaBL.
Tags: p2ptorrenttransmissionweb-интерфейсTransmission Remote GUItransmission-remote-dotnetAutotranslinuxdebiantuxopen source
Hubs: Decentralized networks
Total votes 39: ↑28 and ↓11 +17
Comments 79
Comments Comments 79

Popular right now