![Transmission Logo](https://habrastorage.org/getpro/habr/post_images/12b/a9a/ec5/12ba9aec5b2470e5dfbc69df137124c3.png)
![Debian Logo](https://habrastorage.org/getpro/habr/post_images/538/10c/4e1/53810c4e12d265e4b7fd70063fb63de1.png)
Сборка 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](https://habrastorage.org/getpro/habr/post_images/fa8/faa/d2c/fa8faad2cfeb2e090fc858922ed143a5.png)
Первым делом делом во время настройки 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
"). И вот как он выглядит:![Transmission web interface](https://habrastorage.org/getpro/habr/post_images/596/9bb/f65/5969bbf65e649fd09afc0439d7969a88.png)
(кликни для увеличения)
Другим вариантом удаленного управления является кросс-платформенная (Windows, Linux и Mac OS X) open source программа Transmission Remote GUI. Это довольно функциональная программа с µTorrent-подобным интерфейсом имеет куда больше возможностей чем встроенный web-интерфейс. Среди ее функциональности хочется отметить фильтрацию торрентов по статусу и трекеру, определение страны и host-имени пиров, ассоциацию с .torrent файлами, выбор папки для загрузки, задание приоритетов и многое другое.
![image](https://habrastorage.org/getpro/habr/post_images/f85/fa8/916/f85fa891629fb8238154f7ad4d5a1125.png)
(Главное окно со списком пиров)
Еще скриншоты Transmission Remote GUI.
Так же хочу отметить подобный проект — transmission-remote-dotnet. К сожалению, данная разработка предназначена для Windows мира (разработана на .NET), однако она обладает большим числом опций и возможностей нежели предыдущий вариант, и как по мне, выглядит она приятнее и слаженнее.
![transmission-remote-dotnet](https://habrastorage.org/getpro/habr/post_images/874/9a2/459/8749a24592bce287cb3fad20a22217a8.png)
(Скриншот transmission-remote-dotnet с настройками)
Еще скриншоты transmission-remote-dotnet.
Ну и напоследок, не могу не упомянуть такой плагин для FireFox как Autotrans. Плагин добавляет в контекстное меню на ссылки к .torrent файлам пункт «Torrent It!» при клике по которому запускается закачка выбранного файла на вашем Transmission демоне.
![Autotrans](https://habrastorage.org/getpro/habr/post_images/d86/858/af2/d86858af2c4ec63ac86583c53cb1515c.png)
(Контекстное меню плагина Autotrans)
Но и это далеко не все что можно делать с Transmission. Посмотреть остальные возможности можно по вот этому адресу.
К вопросу об автоматизации загрузок
А еще хочу напомнишь про автоматизацию загрузок ваших любимых сериалов с RSS лент различных трекеров:
- Об этом я уже писал несколько ранее вот тут (на примере LostFilm'a) и вот тут (на примере Кинозала). Оба решения реализованы в виде shell команд и основаны на
grep
,wget
,curl
;
- Кроме того, еще один способ автоматизации с помощью FlexGet описывал Alukar вот тут;
- И еще один вариант обработки RSS лент с помощью Yahoo Pipes рассмотрен хаброчеловеком AmoN вот в этом посте.
UPD. Как подсказывает librarian в комментарии есть еще один, более правильный, способ сборки Transmission. Добавил отдельным пунктом.
UPD2. Добавил описание transmission-remote-dotnet.
UPD3. Обновил пункт установки. Благодарим за помощь BaBL.