Transmission — один из самых популярных torrent клинтов в мире Unix-подобных операционных систем и, к примеру, является выбором по умолчанию в таких дистрибутивах как Ubuntu, Fedora и openSUSE. В своей работе Transmission потребляет заметно меньше системных ресурсов нежели другие torrent клиенты благодаря чему может и используется во многих встраиваемых ОС даже таких устройств как домашние WiFi роутеры/точки доступа или сетевых медиаплеерах. Кроме того, Transmission обладает встроенным web-интерфейсом и не требует для его работы ни Apache, ни Lighttpd, ни какого другого http сервера. Именно о установке и настройке новейшей версии этого замечательного torrent клиента я и хочу рассказать в этом посте.
К сожалению, в стандартных репозиториях находится устаревшая версия. Именно поэтому будет произведена собрка пакета новейшей версии Transmission и его установка.
Итак, прежде всего нам необходимо загрузить архив с исходниками torrent клиента Transmission. Ссылку на загрузку можно найти на официальной странице.
После загрузки архива с исходниками его следует распаковать:
в результате чего, все содержимое архива будет распаковано в папку «transmission-1.92». Перейдем в нее:
Для успешной компиляции нужно установить недостающие утилиты и библиотеки:
Далее следует задать опции сборки:
где "
"--disable-nls" — опция, предназначенная предназначенная специально для серверов и встраиваемых систем, удаляет зависимости от gettext и intltool.
Теперь можно запустить компиляцию:
А сразу после успешной компиляции приступим к созданию
Здесь и далее команды требующие для своего запуска root привилегии помечены префиксом "#".
На запрос о вводе краткого описания пакета вводим что-то в стиле "Transmission — cross-platform BitTorrent client" и дважды нажимаем Enter, как признак окончания текста.
Далее появляется меню с информацией о собираемом пакете. Убеждаемся что заданы версия пакета и релиз и запускам сборку нажатием Enter.
Теперь установим созданный пакет:
Все, на этом этапе установка завершена. Далее нас ждет настройка.
Первым делом делом во время настройки Transmission следует создать нового пользователя в системе. При этом, в целях безопасности, создаваемый пользователь должен быть без пароля за что и отвечает следующаяопция " :
После создания пользователя переключаемся в его консоль:
Здесь и далее, для явной идентификации команд, которые нужно запуска от имени вновь созданного пользователя я буду использоватьпрефикс " .
Далее следует запустить
где опция "
Теперь, чтобы остановить
Выполним конфигурацию Transmission. Для этого вашим любимым редактором нужно изменить файл settings.json. Этот файл содержит все настройки в формате JSON.
В данном файле находится множество настроек (полный список которых можно посмотреть вот тут), однако я обычно изменяю лишь эти:
На будущее, хочу обратить ваше внимание на то, что простое изменение файла настроек settings.json во время работы Transmission не влияет на его работу а по выходу из него, они будут перезаписаны теми настройками, которые были на момент запуска. Чтобы работающий Transmission загрузил новые настройки во время своей работы ему следует отправить сигнал
Теперь, по окончанию настроек, лучше выйти из консоли пользователя
Настройка автозагрузки демона
Для того, чтобы и сохранить его в файле
Делаем файл исполняемым:
Задаем владельцем файла системного пользователя root:
Включаем «автозагрузку»:
Все, теперь демон можно запустить выполнив вот такую команду:
Теперь, во время каждой загрузки машины, будет автоматически запускаться и наш torrent клиент.
Существует несколько вариантов удаленного управления. Один из них это встроенный web-интерфейс. Чтобы его открыть нужно направить браузер по адресу
(кликни для увеличения)
Другим вариантом удаленного управления является кросс-платформенная (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 лент различных трекеров:
UPD. Как подсказывает librarian в комментарии есть еще один, более правильный, способ сборки Transmission. Добавил отдельным пунктом.
UPD2. Добавил описание transmission-remote-dotnet.
UPD3. Обновил пункт установки. Благодарим за помощь BaBL.
Сборка 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
автоматически стартовал при старте машины нужно выполнить несколько несложных действий. Вначале, нужно взять стартовый скрипт вот по этому адресу http://trac.transmissionbt.com/wiki/Scr
ipts/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
"). И вот как он выглядит:(кликни для увеличения)
Другим вариантом удаленного управления является кросс-платформенная (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.