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



Transmission — один из самых популярных 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

Первым делом делом во время настройки 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 автоматически стартовал при старте машины нужно выполнить несколько несложных действий. Вначале, нужно взять стартовый скрипт вот по этому адресу

и сохранить его в файле /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"). И вот как он выглядит:(кликни для увеличения)Другим вариантом удаленного управления является кросс-платформенная (Windows, Linux и Mac OS X) open source программа Transmission Remote GUI. Это довольно функциональная программа с µTorrent-подобным интерфейсом имеет куда больше возможностей чем встроенный web-интерфейс. Среди ее функциональности хочется отметить фильтрацию торрентов по статусу и трекеру, определение страны и host-имени пиров, ассоциацию с .torrent файлами, выбор папки для загрузки, задание приоритетов и многое другое.(Главное окно со списком пиров)Еще скриншоты Transmission Remote GUI.Так же хочу отметить подобный проект — transmission-remote-dotnet. К сожалению, данная разработка предназначена для Windows мира (разработана на .NET), однако она обладает большим числом опций и возможностей нежели предыдущий вариант, и как по мне, выглядит она приятнее и слаженнее.(Скриншот transmission-remote-dotnet с настройками)Еще скриншоты transmission-remote-dotnet.Ну и напоследок, не могу не упомянуть такой плагин для FireFox как Autotrans. Плагин добавляет в контекстное меню на ссылки к .torrent файлам пункт «Torrent It!» при клике по которому запускается закачка выбранного файла на вашем Transmission демоне.(Контекстное меню плагина Autotrans)Но и это далеко не все что можно делать с Transmission. Посмотреть остальные возможности можно по вот этому адресу.

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

А еще хочу напомнишь про автоматизацию загрузок ваших любимых сериалов с RSS лент различных трекеров:

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

UPD. Как подсказывает librarian в комментарии есть еще один, более правильный, способ сборки Transmission. Добавил отдельным пунктом.UPD2. Добавил описание transmission-remote-dotnet.UPD3. Обновил пункт установки. Благодарим за помощь BaBL.         


http://habrahabr.ru/post/87287/

Губарь Маргарита Александровна