transmission для чего нужен
Торрент-клиент Transmission наконец-то вышел под Windows
Один из самых популярных торрент-клиентов Transmission спустя много лет всё-таки вышел под Windows. «У пользователей Windows в конце концов появился хороший BitTorrent-клиент», — пишет TechCrunch, намекая на деградацию uTorrent в последних версиях.
Дистрибутивы Transmission 2.92 для 32-битной и 64-битной Windows уже появились в официальном депозитории (в самом низу), наряду со стандартными версиями для Linux и OS X, хотя официально о выходе пока не объявлено.
При установке вместе со стандартным Qt-клиентом предлагается поставить демон Transmission, утилиты командной строки и веб-интерфейс, чтобы управлять клиентом через браузер или удалённо с другого компьютера.
По функциональности Transmission не уступает uTorrent. Например, здесь тоже есть планировщик с ограничением скорости по дням недели и по часам. Есть чёрный список для блокировки подключения указанных узлов. Можно сконфигурировать клиент для отслеживания определённых папок на появление новых торрент-файлов, устанавливать правила шифрования, добавлять/удалять трекеры для конкретных торрентов.
Нужно заметить, что кроме официальной версии, существует неофициальный клиент Transmission-QT.
Интерфейс Transmission для Windows предельно простой. И главное, что здесь нет рекламы.
UPD 29.03. По многочисленным просьбам открываем новое голосование с бóльшим количеством вариантов ответа.
Сборка и настройка Transmission в Debian или все что вы хотели знать о Transmission но боялись спросить
Сборка Transmission из исходников
К сожалению, в стандартных репозиториях находится устаревшая версия. Именно поэтому будет произведена собрка пакета новейшей версии Transmission и его установка.
Примечание: За совет по способу установки благодарим BaBL.
Итак, прежде всего нам необходимо загрузить архив с исходниками torrent клиента Transmission. Ссылку на загрузку можно найти на официальной странице.
Примечание: все нижеприведенные инструкции показаны на примере ОС Debian, однако они могут быть воспроизведены с незначительными изменениями и на других дистрибутивах.
Примечание: на момент написания поста (2010-03-16) последней версией Transmission была 1.92.
После загрузки архива с исходниками его следует распаковать:
$ tar xvjf transmission-1.92.tar.bz2
в результате чего, все содержимое архива будет распаковано в папку «transmission-1.92». Перейдем в нее:
Для успешной компиляции нужно установить недостающие утилиты и библиотеки:
# aptitude install build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libglib2.0-dev checkinstall
Далее следует задать опции сборки:
Теперь можно запустить компиляцию:
Здесь и далее команды требующие для своего запуска root привилегии помечены префиксом «#».
На запрос о вводе краткого описания пакета вводим что-то в стиле «Transmission — cross-platform BitTorrent client» и дважды нажимаем Enter, как признак окончания текста.
Далее появляется меню с информацией о собираемом пакете. Убеждаемся что заданы версия пакета и релиз и запускам сборку нажатием Enter.
Теперь установим созданный пакет:
Все, на этом этапе установка завершена. Далее нас ждет настройка.
Примечание: более детально про сборку Transmission из исходиков можно прочитать вот тут.
Настройка Transmission
Первым делом делом во время настройки Transmission следует создать нового пользователя в системе. При этом, в целях безопасности, создаваемый пользователь должен быть без пароля за что и отвечает следующая :
После создания пользователя переключаемся в его консоль:
Далее следует запустить transmission-daemon и тут же его остановить для того, чтобы он создал файлы с настройками по-умолчанию. Запускаем:
Выполним конфигурацию Transmission. Для этого вашим любимым редактором нужно изменить файл settings.json. Этот файл содержит все настройки в формате JSON.
В данном файле находится множество настроек (полный список которых можно посмотреть вот тут), однако я обычно изменяю лишь эти:
Настройка автозагрузки демона transmission-daemon
Делаем файл исполняемым:
# chmod +x /etc/init.d/transmission-daemon
Задаем владельцем файла системного пользователя root:
# chown root:root /etc/init.d/transmission-daemon
# update-rc.d transmission-daemon defaults
Все, теперь демон можно запустить выполнив вот такую команду:
Теперь, во время каждой загрузки машины, будет автоматически запускаться и наш torrent клиент.
Удаленное управление
Существует несколько вариантов удаленного управления. Один из них это встроенный web-интерфейс. Чтобы его открыть нужно направить браузер по адресу http:// :9091/ (порт задается в файле настроек settings.json параметром » rpc-port «). И вот как он выглядит:
(Главное окно со списком пиров)
(Скриншот transmission-remote-dotnet с настройками)
(Контекстное меню плагина Autotrans)
Но и это далеко не все что можно делать с Transmission. Посмотреть остальные возможности можно по вот этому адресу.
К вопросу об автоматизации загрузок
UPD. Как подсказывает librarian в комментарии есть еще один, более правильный, способ сборки Transmission. Добавил отдельным пунктом.
UPD2. Добавил описание transmission-remote-dotnet.
UPD3. Обновил пункт установки. Благодарим за помощь BaBL.
Transmission
Что понимается под «простотой»? Авторы программы хотят оградить пользователя от выполнения лишних операций, поэтому почти все настройки выполняются в «два клика«. Никаких лишних вкладок и опций. Transmission написан на чистом Си с минимальным набором зависимостей. Разработчики заявляют, что из всех пересмотренных ими torrent-клиентов у Transmission минимальное потребление оперативной памяти.
Не смотря на свою простоту, рассматриваемый торрент-клиент «обучен» основным передовым технологиям:
Благодаря скромному отношению к ресурсам и возможности использования Transmission в режиме демона этот торрент-клиент идеально подходит для установки на шлюзы, роутеры и т.п. Управление закачками в таком случае можно осуществлять из консоли или через web-интерфейс.
Кого больше привлекает работа из командной строки, могут посмотреть на такой фронтенд:
Скриншоты представлены ниже в обзоре. До rtorrent, конечно, далеко, но может кому сгодится.
Кроме того, есть ещё Remote GUI, Remote GUI DotNET и WinTransmission. Последний, к сожалению, больше мёртв, чем жив 🙁
Для любителей консоли:
пример web-интерфейса:
Работа над Transmission идёт достаточно активно.
Transmission — внедряем в него плюшки
Transmission. Rename
Первая подзадача — возможность переименования папки с содержимым торрента в файловой системе, и продолжение корректной работы.
Меня не первого посетила такая простая мысль, что это нужно для клиента. В багтрекинговой системе существует тикет трехгодичной давности #1220. К сожалению, разработчики как-то вяло реагируют на него, однако камрад juxda любезно написал патч, который добавляет данный функционал к сорцам.
Однако радиус кривизны моих рук не позволил корректно наложить патч даже на ту ревизию (11895) для которой он изготовлен. Кроме того хотелось всё же иметь наиболее свежую версию торрент-клиента с данной фишкой, ибо с той ревизии прошло
Кроме того добавляем описание нашей новой функции:
Самое время упомянуть об одной сложности — имена файлов строятся на основе оригинального имени.
Конечно можно всё пропатчить, но таких мест довольно много, и лучше просто после загрузки «перегрузить» эти имена.
Поэтому мы используем встроенный механизм восстановления информации — добавляем поле, которое содержит этот самый список путей, для сохранение, и при загрузке «вспоминаем» всё то, что нам нужно.
Пока отложим этот момент ненадолго, но не забудем о нём.
Перейдём к главному — самой функции перемещения. Редактировать будем torrent.h/torrent.c.
Сначала добавим в заголовочный файл функцию, которая и будет записывать перезаписывать пути для файлов во внутренней структуре торрента, эта функции будет нужна в том самом механизме:
Ну и в сам torrents.c её тело:
Всё примитивно — освобождаем старый путь, записываем новый. Такой небольшой хелпер.
Далее находим функцию fileExists() и после неё пишем основной код:
Большая часть кода это простые проверки, существенная часть это собственно сам вызов rename(), и правка info->files. Ну и не забываем заполнить info->rename.
Теперь нужно дать знать всем о том, что имя сменилось. Фактически это можно сделать прямыми правками. Несмотря на то что автор большей части кода пошёл по пути модификации tr_torrentName() я выбрал другой путь. Модификация той функции полезна только если собираетесь использовать gtk-клиент, тогда да, лучше заменить единственную строчку кода на:
Дабы всё было в ажуре для gtk, но так как я не использую это gui, то посчитал излишним портить кучу других вещей типа построения magnet-ссылки (оригинальный патч, само собой, портит). Фактически мне поле rename нужно только для построения пути к файлам, и для того чтобы отдавать по RPC, дабы RPC-клиент мог, например, открыть папку с торрентом. Первое у нас есть (пока что половинка), второе решается тоже несложно (переходим к правке имплементации RPC — rpcimpl.c).
Ищем функцию addField(), которая отвечает за формирование информационных полей торрента для ответа. То есть мы можем запросить некий набор полей о торренте, и с помощью этой функции Transmission сформирует данную информацию. Нас интересует поле «name«, заменяем параметр «tr_torrentName( tor )» на
Готово. Теперь и RPC знает о нашем новом статусе.
Раз уж взялись править RPC, то нужно добавить собственно команду переименования.
Функция-прослойка, которую нужно вставить до torrentSet():
Теперь добавим саму команду, для этого и отредактируем функцию torrentSet():
Добавим в блок описания переменных — const char * str;
И проверку на команду rename:
Что же мы не сделали? А мы забыли о механизме сохранения состояния торрента!
Нужно восполнить этот пробел, этот модуль содержится в файлах (resume.c / resume.h).
Сначала добавим флажки сохраняемых полей. В заголовочном файле только одно перечисление, запутаться трудно.
Нам нужно будет сохранять информацию о настоящем местоположении торрента (inf->rename) и список файлов, о котором я говорил ранее.
Значит 2 флажка:
Несмотря на присутствие заголовочного файла, в resume.c есть список ключей-дефайнов (ключ описывает каждую сущность состояния сохраняющуюся на диск).
Туда нам тоже необходимо «вписаться»:
И добавим в интерфейсные функции наше пожелание о сохранении.
tr_torrentSaveResume(), сразу после проверки if( tr_torrentHasMetadata( tor )):
А код загрузки в loadFromFile():
Можно заметить что мы нигде не выставляем эти флажки (TR_FR_*), а только проверяем их, как же менеджер узнает о том что грузить нужно?
Ответ заключается в том, что модуль использует правило «всё разрешено, что не запрещено», то есть примерно так: flags &=
deniedFieilds;
Булева логика любезно нам подсказывает то что наши 20 и 21 биты будут установлены в любом случае.
Transmission. Display Name.
Так, с главной проблемой разобрались, теперь осталась вторая подзадача.
Я хочу видеть в клиенте не кучу «Season N» в качестве названий (а именно их передаст нам rpc-сервер, ибо как я объяснял в начале топика торренты у меня хранятся именно по такой схеме), а вполне осмысленные строки. Поэтому внесём совсем маленькую правку — просто добавим новое свойство «displayName» и набор геттеров/сеттеров в интерфейсе RPC.
Это очень маленькая и простая правка — нам нужно сделать всё тоже самое что и с полем rename, только без бизнес-логики и с модификацией rpc-отдачи.
Когда меняем это поле, необходимо пометить то, что торрент — «грязный», то есть его состояние было изменено со времени последнего сохранения.
Как использовать Transmission, один из лучших клиентов для загрузки торрентов и обмена ими
Скачивание с передачей
Что нам нужно сделать, чтобы загрузить с помощью Transmission + Kick Ass Torrent, так это выполнить следующие действия:
Если мы хотим всегда загружать файлы в одну и ту же папку и не изменять какое-либо значение (как в моем случае), мы можем перейти в меню Изменить / Настройки / Загрузки y снимите флажок Показать окно параметров торрента. Если мы это сделаем, просто щелкните значок магнита, чтобы начать загрузку.
Общие настройки
В левом нижнем углу у нас есть колесо опций, с помощью которого мы можем предельная скорость загрузить и / или скачать. Рядом находится черепаха, которая поможет нам активировать альтернативные лимиты (по умолчанию 50kB / s как для восходящего, так и для нисходящего потока).
Мы также можем загружать торренты с передачей
При желании мы также можем загрузить свои собственные торренты. Для загрузки торрент-файлов потребуется полное руководство, но его можно обобщить в следующих шагах:
Как видите, Transmission очень проста в использовании. У вас есть еще один торрент-клиент, который вы предпочитаете использовать в Ubuntu? Который?
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Убунлог » Ubuntu » Учебники » Как использовать Transmission, один из лучших клиентов для загрузки торрентов и обмена ими