Transmission (Українська)

From ArchWiki

Transmission — це легкий BitTorrent клієнт, що працює на багатьох платформах.

Встановлення

Встановити Transmission можна в декількох пакетах:

Налагодження графічного варіанту

Обидва графічних варіанти: transmission-gtk та transmission-qt, можуть працювати самостійно, без запущеного демона. Ці програми налаштовані так, щоб нормально працювати з самого початку, але користувачі мають змогу змінити деякі характеристики. В нормі, файли налаштувань знаходяться в ~/.config/transmission.

Дізнатись як правильно редагувати файл налаштувань можна на сторінці Transmission в Github.

Демон Transmission та текстовий інтерфейс

transmission-cli складається з команд:

transmission-daemon: запускає демона.
transmission-remote: викликає командний рядок для локального або віддаленого демона. Тут ви можете вказати, яку команду повинен виконати демон.
transmission-show: виводить опис обраного торент файлу.
transmission-create: створює новий торент.
transmission-edit: додає, видаляє або заміняє a адресу оголошення трекера (Tracker Announce URL).
transmission-cli: (Застарілий. Користуйтесь transmission-remote) запускає transmission без демона, для ручного завантаження торентів.
tremc: (Потребує tremc-gitAUR) запускає текстовий інтерфейс написаний на curses. Працює як з локальними, так і з віддаленими демонами.

Запуск і зупинка демона

Демона transmission можна запустити:

  • Як користувача під ім'ям transmission, увімкнувши transmission.service. Користувача можна замінити, як сказано у розділі #Вибір користувача.
  • Від вашого імені, запустивши команду:
$ transmission-daemon

Почавши роботу, демон створить початковий файл налаштувань. Дивіться #Налагодження демона.

Демона можна зупинити командою:

$ pkill -3 transmission-daemon

Зупинити Transmission можна також командою:

$ transmission-remote --exit

Протидія захаращенню журналу

В ході роботи, transmission-daemon може зробити багато небажаних записів до журналу. Їх можна обмежити, запустивши програму всередині невеликого скрипта-обгортки. Приклад нижче містить також і екранні повідомлення:

transwrap.sh
#!/bin/zsh
killall transmission-daemon 2> /dev/null
transmission-daemon --foreground --log-info 2>&1 | while read line; do
	echo $line |
		grep -v "announcer.c:\|platform.c:\|announce done (tr-dht.c:" |
		grep -v "Saved.*variant.c:" |
		while read line; do
			echo $line | grep -q "Queued for verification (verify.c:" &&
				notify-send --app-name="Transmission Started" "${line#* * }"
			echo $line | grep -q "changed from .Incomplete. to .Complete." &&
				notify-send --app-name="Transmission Complete" "${line#* * }"
			echo $line | systemd-cat --identifier="TransWrap" --priority=5
		done 2>&1 > /dev/null
	done&disown

Запускати, лише коли підключений до мережі

Netctl

Можливо, вам хочеться запускати transmission лише в деяких мережах. Наведений код перевіряє чи комп'ютер підключений до мережі з дозволеного списку і лише тоді запускає transmission-daemon.

/etc/netctl/hooks/90-transmission.sh
#!/bin/bash

# SSID дозволених мереж.
declare -A ssids=(
    ["network_1"]=y
    ["network_2"]=y
)

if [[ ${ssids[$SSID]} ]]; then
    case $ACTION in
        CONNECT|REESTABLISHED)
            # Потрібно почекати, інакше не займає 9091-ий порт.
            sleep 30
            systemctl start transmission
            ;;
        *)
            systemctl stop transmission
            ;;
    esac
fi

Wicd

Створіть стартовий скрипт в теці /etc/wicd/scripts/postconnect та скрипт зупинки в теці /etc/wicd/scripts/predisconnect. Не забудьте дозволити їх виконання. Наприклад:

/etc/wicd/scripts/postconnect/transmission
#!/bin/bash

systemctl start transmission
/etc/wicd/scripts/predisconnect/transmission
#!/bin/bash

systemctl stop transmission

Вибір користувача

Оберіть, як ви хочете запускати transmission:

  • Як окремого користувача, з ім'ям transmission за замовчуванням (радимо цей варіант, бо він безпечніший).

В нормі, transmission створює користувача та групу з назвою transmission, файли якого зберігаються в /var/lib/transmission/, та працює як цей "користувач". Це зроблено для підвищення безпеки: щоб transmission, та його завантаження, не мали доступу до файлів за межами /var/lib/transmission/. Налагодження, операції, та доступ до завантажень потрібно робити від імені кореневого користувача (root) (Тобто, з sudo).

  • Від вашого власного імені.

Щоб це зробити, перезапишіть файл сервісу, та вкажіть ваше власне ім'я:

/etc/systemd/system/transmission.service.d/username.conf
[Service]
User=ім'я вашого користувача

Налагодження демона

Створіть початковий файл налаштувань запустивши демона.

  • Якщо запустили як користувача transmission: файлом налаштувань буде /var/lib/transmission/.config/transmission-daemon/settings.json.
  • Якщо запустили від власного імені: файл матиме назву ~/.config/transmission-daemon/settings.json.

Налагодити демона можна або використовуючи клієнта Transmission, або веб інтерфейс, що доступний за адресою http://localhost:9091 в браузері.

На сайті Transmission є стаття про його налагодження: https://github.com/transmission/transmission/wiki/Editing-Configuration-Files

Примітка: Якщо вам хочеться редагувати файл вручну, спершу зупиніть демона. Бо він перезаписує файл, коли зупиняється.
Примітка: Або ж, можна заставити демона перепрочитати свої налаштування з SIGHUP. Виконайте команду kill -s SIGHUP $(pidof transmission-daemon).

Тим, хто запускає демона під ім'ям transmission, радимо створити спільну теку з правильними дозволами, щоб до неї мав доступ користувач transmission та системний користувач, та оновити відповідні налаштування. Наприклад:

# mkdir /mnt/data/torrents
# chown -R facade:transmission /mnt/data/torrents
# chmod -R 775 /mnt/data/torrents

Тепер до /mnt/data/torrents матиме доступ системний користувач facade та всі члени групи transmission, до якої належить і користувач transmission. Не дозволяйте запис та зчитування з теки (себто, не міняйте chmod теки на 777). Натомість, дайте окремим користувачам/групам правильні дозволи до правильних директорій.

Примітка: Якщо така /mnt/data/torrents знаходиться на зовнішньому диску, тобто, на диску зі списку /etc/fstab з параметром nofail, Transmission поскаржиться, що не може знайти файл. Щоб виправити це, додайте RequiresMountsFor=/mnt/data/torrents до розділу [Unit] файлу /etc/systemd/system/transmission.service.d/transmission.conf.

Або ж, додайте користувача до групи transmission (#usermod -a -G transmission ваше_ім'я) та змініть дозволи до тек /var/lib/transmission та /var/lib/transmission/Downloads так, щоб члени групи transmission мали повний доступ до них.

Довірені хости

Якщо ви бажаєте звертатись до демона Transmission по мережі використовуючи назву хоста сервера, то вам варто додати цю назву до rpc-host-whitelist у settings.json. Без цього, ви отримаєте помилку "421 Misdirected Request" коли спробуєте підключитись до сервера.

Цього не потрібно робити, якщо ви підключаєтесь до сервера демона по IP адресі.

Тека під наглядом

Якщо ви хочете Щоб .torrent файли із теки додавались автоматично, але параметри watch-dir watch-dir-enabled не працюють, то спробуйте запустити transmission з ключем -c /шлях/до/бажаної/теки.

Якщо ви користуєтесь systemd, поправте transmission.service як описано у статті systemd#Editing provided units.

Увімкнути IPv6

В нормі, до демона можна підключитись лише через IPv4. Щоб він слухав і IPv6, відкрийте файл settings.json та замініть значення параметра rpc-bind-address на "::".

Приклади команд

Якщо вам потрібно прибрати всі завершені торенти, скористайтесь цією командою з вашими ім'ям і паролем:

# transmission-remote -n 'ім'я:пароль' -l | grep 100% | awk '{print $1}'| paste -d, -s | xargs -i transmission-remote -t {} -r

Роздавати вже скачані торенти:

# transmission-remote [HOST] --torrent=example.torrent -a example.torrent --verify --download-dir=/шлях/до/теки --start

Доступ до веб інтерфейсу

Через графічний інтерфейс

Як тільки ви встановите Transmission , то зможете з легкістю відкрити веб інтерфейс. Просто клацніть по меню edit та виберіть preferences. Перейдіть на вкладку Remote та увімкніть Allow remote access.

Тут же ви можете змінити порт, який займає Transission з 9091 на інший.

Перевірте Use authentication введіть ім'я й пароль щоб мати змогу авторизуватись.

Буде безпечніше, якщо ви забороните доступ з більшости IP адрес, увімкнувши Only allow these IP addresses.

Тепер, ви маєте змогу відкрити веб інтерфейс. Клацніть на Open web client щоб відкрити браузер. Або, самотужки, напишіть в браузері адресу http://IP_АДРЕСА:ПОРТ

Якщо ви не міняли порт, то він буде 9091: вам треба буде перейти за посиланням http://localhost:9091

Примітка: Не забувайте, що вам потрібно встановити transmission-cli

Через командний рядок

Ви не зобов'язані мати графічний варіант Transmission щоб мати веб інтерфейс, демон теж його має. Ви можете відкрити його не докладаючи ніяких додаткових зусиль. Прочитайте розділ #Запуск і зупинка демона

Та все ж, ви можете задати все згадане в попередньому розділі:

$ transmission-daemon --auth --username arch --password linux --port 9091 --allowed "127.0.0.1"

це те ж саме що й

$ transmission-daemon -t -u arch -v linux -p 9091 -a "127.0.0.1"

Теми

Якщо веб інтерфейс здається вам застарілим та негарним, спробуйте цю простеньку тему.

А https://github.com/ronggang/transmission-web-control — це повна заміна стандартного інтерфейсу, яку можна використовувати обабіч із ним.

Вирішення проблем

Cannot access the daemon over the network

The daemon is started after network.service was initialised. However, if you enable the service dhcpcd as opposed to the device-specific service, such as dhcpcd@enp1s0.service for example, it may happen that Transmission is started too early and cannot bind to the network interface. Thus, the web interface is unreachable. A possible solution is to add the Requires line to the unit's configuration file:

/etc/systemd/system/transmission.service.d/fixdep.conf
[Unit]
Requires=network.target

Не відкривається веб інтерфейс

404: Not Found

Couldn't find Transmission's web interface files!

Users: to tell Transmission where to look, set the TRANSMISSION_WEB_HOME environment variable to the folder where the web interface's index.html is located.

Package Builders: to set a custom default at compile time, #define PACKAGE_DATA_DIR in libtransmission/platform.c or tweak tr_getClutchDir () by hand.

Навіть якщо ви встановили графічну версію, ви не зможете відкрити веб інтерфейс без transmission-cli.

Не виходить встановити буфер прийому/відправки

Іноді, Transmission може записувати до журналу такі рядки:

UDP Failed to set receive buffer: requested 4194304, got 425984
UDP Failed to set send buffer: requested 1048576, got 425984

Це можна виправити виставивши net.core.rmem_max=4194304 та net.core.wmem_max=1048576 з sysctl.

Див. також