rTorrent

提供: ArchWiki
2022年2月20日 (日) 16:03時点におけるKgx (トーク | 投稿記録)による版 (翻訳を修正)
ナビゲーションに移動 検索に移動

rTorrent は迅速に動作する BitTorrent クライアントです。開発面では、libTorrent ライブラリを使用しています (libtorrent-rasterbar とは違います)。rTorrent は C++ を使って書かれており、ncurses プログラミングライブラリを利用したテキストユーザーインターフェイスがあります。ターミナルマルチプレクサ (例: GNU ScreenTmux) と Secure Shell を一緒に使うことで、便利なリモート BitTorrent クライアントとして活用できます。

インストール

公式リポジトリrtorrent パッケージを インストール してください。

非公式パッケージ

設定

ノート: 設定に関する詳細は次の rTorrent wiki の記事を見て下さい: Common Tasks in rTorrent for Dummies

rTorrent を実行する前に、サンプル設定ファイル /usr/share/doc/rtorrent/rtorrent.rc を探して ~/.rtorrent.rc にコピーしましょう:

$ cp /usr/share/doc/rtorrent/rtorrent.rc ~/.rtorrent.rc

パフォーマンス

ノート: パフォーマンスに関する詳細は次の rTorrent wiki の記事を見て下さい: Performance Tuning

以下のオプションの値はシステムのハードウェアやインターネットの接続速度に合わせます。最適値の見つけ方については次を読んでください: Optimize Your BitTorrent Download Speed

min_peers = 40
max_peers = 52

min_peers_seed = 10
max_peers_seed = 52

max_uploads = 8

download_rate = 200
upload_rate = 28

check_hash オプションは torrent のダウンロードが完了した時や rTorrent が起動したときにハッシュチェックを行います。起動時に、完了済みのファイルに問題がないか確認します。

check_hash = yes

ファイルの作成と管理

directory オプションには torrent データを保存するディレクトリを指定します (相対パスでも指定できます):

directory = ~/downloaded

session オプションを使うことで rTorrent の torrent の進捗を保存することができます。ホームディレクトリにディレクトリを作成することが推奨されます (例: mkdir ~/.rtorrent.session)。

session = ~/.rtorrent.session

schedule オプションを設定すると rTorrent は新しい torrent ファイルが追加されないか特定のディレクトリを監視します。このディレクトリに torrent ファイルを保存すると、自動的にダウンロードが開始されます。かならず監視するディレクトリを作成してください (例: mkdir ~/watch)。また、このオプションを使用すると、rTorrent が torrent ファイルをセッションフォルダに移動してハッシュ値に名前を変更するので注意してください。

schedule = watch_directory,5,5,load_start=/home/user/watch/*.torrent
schedule = untied_directory,5,5,stop_untied=
schedule = tied_directory,5,5,start_tied=

以下の schedule オプションはディスク容量が少なくなった時に rTorrent がデータをダウンロードするのを止めさせます。

schedule = low_diskspace,5,60,close_low_diskspace=100M

ポート設定

port_range オプションでは使用するポートを設定します。49152 以上のポート番号を使用することが推奨されます (参照: ポート番号の一覧)。rTorrent ではポートの範囲を指定することができますが、使用するポートは一つだけに絞ることが推奨されています。

port_range = 49164-49164

また、適切なポートのポートフォワーディングが有効になっていることを確認してください (参照: Port Forward guides)。

その他の設定

encryption オプションは暗号化を有効化または無効化します。このオプションは、あなた自身だけのためではなく、torrent スウォームのピアのためでもあります。たとえセキュリティを上げる必要がなかったとしても、有効にすることに害はありません。

encryption = allow_incoming,try_outgoing,enable_retry

また、全ての接続で強制的に暗号化を使用することもできます。ただし、あまり厳しいルールを使用するとクライアントの可用性が減少していきます:

encryption = require,require_RC4,allow_incoming,try_outgoing

Wikipedia:BitTorrent Protocol Encryption も見て下さい。

最後に、dht オプションは DHT のサポートを有効にします。DHT は主要なトラッカーで使われており、クライアントがより多くのピアを獲得できるようになります。

dht = auto
dht_port = 6881
peer_exchange = yes

キーバインディング

rTorrent では専らキーボードショートカットを使って操作を行います。下のクイックレファレンスを参照してください。完全なガイドは rTorrent wiki にあります (参照: rTorrent User Guide)。

ノート: Ctrl-q を 2 回連続で押すと、接続中のトラッカーへの停止アナウンスの送信を待たずに rTorrent がシャットダウンします。
コマンド 操作
Ctrl-q アプリケーションを終了
Ctrl-s ダウンロードを開始。ハッシュが行われていない場合は先に実行
Ctrl-d ダウンロードを停止または停止したダウンロードを削除
Ctrl-k ファイルのダウンロードを停止して終了
Ctrl-r torrent のハッシュチェックを開始。ダウンロード/アップロードは行わない。
Left 前の画面に戻る
Right 次の画面に移る
Backspace/Return 指定した *.torrent を追加
a|s|d 全体のアップロード速度を 1|5|50 KB/s 間隔で増やす
A|S|D 全体のダウンロード速度を 1|5|50 KB/s 間隔で増やす
z|x|c 全体のアップロード速度を 1|5|50 KB/s 間隔で減らす
Z|X|C 全体のダウンロード速度を 1|5|50 KB/s 間隔で減らす

マッピングの重複

Ctrl-s は画面の出力の停止に、Ctrl-q は画面の出力の開始に使われるのがターミナルでは普通です。これらのマッピングが rTorrent と干渉してしまうことがあります。ターミナルのオプションがマッピングと関連付けられていないか確認してください:

$ stty -a
...
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
...

マッピングを削除するには、ターミナルの特性を変更して前述の特殊文字列を定義します (つまり stopstart):

# stty stop undef
# stty start undef

前述のコマンドを ~/.bashrc ファイルに追加することで、起動時に自動的にマッピングを削除させることができます。

ヒントとテクニック‎

ヘッドレスサーバのための Systemd サービス

このユニット ファイルは、rtorrent という 1 人のユーザーの実行と、rtorrent がデーモンとして実行されるように設定することに依存しています。

次のファイルを作成します。

/etc/systemd/system/rtorrent.service
>
[Unit]
Description=rTorrent System Daemon
After=network.target

[Service]
Type=simple
User=rtorrent
Group=rtorrent
# Modify the next 2 lines to use absolute paths
ExecStartPre=-/bin/rm -f /<home>/.session/rtorrent.lock
ExecStart=/usr/bin/rtorrent -o import=/<home>/rtorrent.rc
Restart=on-failure
RestartSec=3

[Install]
WantedBy=multi-user.target

ユーザーのためのデーモンとしての Systemd サービス

このユニットでは、複数のユーザー、または 1 人のユーザーが rtorrent をデーモンとして実行できるようにします。

ブート時に rtorrent を起動するには、有効 rtorrent@user (user は rtorrent を実行するユーザー) を指定します。

以下のファイルを作成します。

/etc/systemd/system/rtorrent@.service
[Unit]
Description=rTorrent for %i
After=network.target

[Service]
Type=simple
User=%i
Group=%i
WorkingDirectory=/home/%i
# Modify the next line to the absolute path for rtorrent.lock, for example
ExecStartPre=-/bin/rm -f /home/%i/.session/rtorrent.lock
ExecStart=/usr/bin/rtorrent -o system.daemon.set=true
Restart=on-failure
RestartSec=3

[Install]
WantedBy=multi-user.target

tmux や screen を使った Systemd サービス

以下のサービスは、サービスユニットの種類によって使用方法が異なります。

システムサービスの場合(/etc/systemd/system/ の中)

ブート時に起動させる:

# systemctl enable rtorrent

手動で起動:

# systemctl start rtorrent

ストップ:

# systemctl stop rtorrent 

rtorrent ユーザーが適切なホーム ディレクトリに作成され、rtorrent.rc が配置されていることを確認します。

ユーザーサービス (/etc/systemd/user/ の中):

$ systemctl --user enable rtorrent

手動で起動:

$ systemctl --user start rtorrent

ストップ:

$ systemctl --user stop rtorrent

screen を使用

  • システム・サービス・ユニットとして
/etc/systemd/system/rtorrent.service
[Unit]
Description=rTorrent
After=network.target

[Service]
Type=forking
KillMode=none
User=rtorrent
ExecStartPre=/usr/bin/bash -c "if test -e %h/.rtorrent_session/rtorrent.lock && test -z `pidof rtorrent`; then rm -f %h/.rtorrent_session/rtorrent.lock; fi"
ExecStart=/usr/bin/screen -dmfa -S rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/bash -c "test `pidof rtorrent` && killall -w -s 2 /usr/bin/rtorrent"
WorkingDirectory=%h
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • ユーザーサービスユニットとして
/etc/systemd/user/rtorrent.service
[Unit]
Description=rTorrent
After=network.target

[Service]
Type=forking
KillMode=none
ExecStart=/usr/bin/screen -dmfa -S rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/killall -w -sユーザーのためのデーモンとしての Systemd サービス 2 /usr/bin/rtorrent
WorkingDirectory=%h

[Install]
WantedBy=default.target

rtorrent のセッションにアタッチします。

screen -D -r rtorrent

tmux を使用

  • 独立した tmux サーバー付き (クラッシュした場合は rtorrent を再起動)
~/.config/systemd/user/rtorrent.service
[Unit]
Description=rtorrent
After=network.target

[Service]
Type=forking
ExecStartPre=/usr/bin/bash -c "if test -e ~/.session/rtorrent.lock && test -z `pidof rtorrent`; then rm -f ~/.session/rtorrent.lock; fi"
ExecStart=/usr/bin/tmux -L rt new-session -s rt -n rtorrent -d rtorrent 
ExecStop=/usr/bin/bash -c "/usr/bin/tmux -L rt send-keys -t rt:rtorrent.0 C-q; while pidof rtorrent > /dev/null; do echo stopping rtorrent...; sleep 1; done"
Restart=on-failure

[Install]
WantedBy=default.target
  • tmux をユーザー rtorrent として実行した場合 (クラッシュした場合は rtorrent を再起動)
/etc/systemd/system/rtorrent.service
[Unit]
Description=rTorrent Daemon
After=network.target

[Service]
Type=forking
KillMode=none
User=rtorrent
ExecStart=/usr/bin/tmux new-session -c /mnt/storage/rtorrent -s rtorrent -n rtorrent -d rtorrent
ExecStop=/usr/bin/bash -c "/usr/bin/tmux send-keys -t rtorrent C-q && while pidof rtorrent > /dev/null; do sleep 0.5; done"
WorkingDirectory=%h
Restart=on-failure

[Install]
WantedBy=multi-user.target

rtorrent のセッションにアタッチ:

tmux -L rt attach -t rt
tmux attach -t rt

デタッチ:

Ctrl-b d

dtach を使った systemd サービスファイル

systemd 単位で dtach を実行する場合、rtorrent が動作するためには 環境変数 が明示的に設定されている必要があります。

このサービス ファイルには再起動がありません。これは、作者が問題のドライブをオフラインにすることがあり、このシナリオで起動すると rtorrent が失敗し、各トレントを格納する特定のディレクトリなど、多くのトレント固有の設定が失われるためです (最適化されていない と言うべきでしょうか) 実際、rtorrent を起動するシンボリック リンクは、関連ドライブに存在します。 rtorrent の起動をブロックするこの使用例は、NAS、USB、eSATA ドライブなどのリムーバブル メディアにダウンロードしたファイルを置くユーザーに関連するものです。

~/.config/systemd/user/rtorrent.service
[Unit]
Description=rTorrent
#After=network.target

[Service]
# set TERM according to your terminal
Environment="TERM=xterm"
#Environment="TERM=linux" 
Type=forking
KillMode=none
ExecStart=-/usr/bin/dtach -n /home/sam/run/dtach_fifos/fifo -e "^T" /home/sam/bin/rtr_new -n -o import=/home/sam/.config/rtorrent/new_.rc 
   # dtach -n <separate filename for each instance>
   # 
   # rtr_new -n to ignore the default .rtorrent.rc
   # rtr_new -o import to load the instance-specific rc
ExecStop=-/usr/bin/killall -u sam -e -w -s INT /home/sam/bin/rtr_new

[Install]
WantedBy=multi-user.target

このサービスファイルには、dtach 以外にもいくつかの問題があることに注意してください。

/home/sam/bin/rtr_new is a symlink to /usr/bin/rtorrent

これにより、複数のインスタンスを実行し、それぞれを異なるバージョンの ExecStop で個別に終了させることができます。

ExecStop=-/usr/bin/killall -u sam -e -w -s INT /home/sam/bin/rtr_new
ExecStop=-/usr/bin/killall -u sam -e -w -s INT /home/sam/bin/rtr_academic
ExecStop=-/usr/bin/killall -u sam -e -w -s INT /home/sam/bin/rtr_other_stuff

これらはそれぞれ別のサービスファイル内にあり、それぞれが1つのインスタンスを制御します。

このステップを実行しないと、複数のインスタンスを実行している場合、killall ソリューションにより実行中のすべての rtorrent インスタンスが削除されます。

複数の rtorrent インスタンスが不要で、rtorrent rc ファイルがデフォルトの場所にある場合、上記のサービス ファイルを簡略化することができます。 ファイル全体が含まれますが、ExecStart と ExecStop の行が変わります。

~/.config/systemd/user/rtorrent.service
[Unit]
Description=rTorrent
#After=network.target

[Service]
# set TERM according to your terminal
Environment="TERM=xterm"
#Environment="TERM=linux" 
# Type=forking is not required if ExecStart command is run using dtach -N (i.e dtach will run on foreground).
Type=forking
KillMode=none
ExecStart=-/usr/bin/dtach -n /home/sam/run/dtach_fifos/fifo -e "^T" /usr/bin/rtorrent 
   # dtach -n <user specified FIFO name> -e <user specified character> /usr/bin/rtorrent 
ExecStop=/usr/bin/killall -w -s INT /usr/bin/rtorrent
   # -e (exact match) and -u (user name) were added above to stop specific processes
   #  and may be omitted here because only one rtorrent will be running

[Install]
WantedBy=multi-user.target

ExecStart=-/usr/bin/dtach` の部分にあるハイフンに注意してください。これは、失敗の終了コードも成功の終了を表すことができるようにするためです。これは現在の問題 [1] のためと思われます。代替案としては、サービスセクションで `SuccessExitStatus=1` を使用することです。

このサービスは systemctl --user で制御することができます。起動したら、セッションにアタッチすることができます。

$ dtach -a /home/sam/run/dtach_fifos/fifo -e "^T".

事前割り当て

rTorrent には、トレント用の領域を事前に割り当てる機能があります。主な利点は、ファイル システムの断片化を制限および回避できることです。ただし、ファイルシステムが fallocate システムコールをネイティブでサポートしていない場合、事前割り当て時に遅延が発生します。

したがって、このスイッチは、fallocate システムコールをネイティブでサポートしている xfs、ext4、btrfs、および ocfs2 ファイルシステムに推奨されます。これらのファイルシステムでは、事前割り当て時の遅延がなく、ファイルシステムが断片化することもありません。他のファイルシステムでの事前割り当ては、遅延は発生しますが、ファイルの断片化は起こりません。

これを有効にするには:

~/rtorrent.rc
  # Preallocate files; reduces defragmentation on filesystems.
  system.file.allocate = 1

上記以外のファイルシステムでプリアロケーションを利用できるようにするには、(遅れはあるものの)次の新しいスイッチを使用して、ABS ツリーから libTorrent を再コンパイルすることで可能です。

 $ ./configure --prefix=/usr --disable-debug --with-posix-fallocate

参照 the upstream documentation for further information

完了したファイルの管理

ノート: このヒントで困っている場合、こちらも参照して見て下さい。docs

rtorrent は、シードを継続しながら、*.torrent をどの 監視 フォルダーにドロップしたかに基づいて、完了したトレント データを特定のフォルダーに整理することができます。

解決策として、次の例を ~/.rtorrent.rc で使用してください。 パスを変更することを確認してください。

# default path for in progress downloads
directory = /home/user/torrents/incomplete

# schedule a timer event named 'watch_directory_1':
# 1) triggers 10 seconds after rtorrent starts
# 2) triggers at 10 second intervals thereafter
# 3) Upon trigger, attempt to load (and start) new *.torrent files found in /home/user/torrents/watch/
# 4) set a variable named 'custom1' with the value "/home/user/torrents/complete"
# NOTE: if you do not want it to automatically start the torrent, change 'load.start' to 'load.normal'
schedule2 = watch_directory_1,10,10,"load.start=/home/user/torrents/watch/*.torrent,d.custom1.set=/home/user/torrents/complete"

# upon completion, move content to path specified above via custom1
method.insert = d.data_path, simple, "if=(d.is_multi_file), (cat,(d.directory),/), (cat,(d.directory),/,(d.name))"
method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session="
method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.custom1="

このように、ウォッチディレクトリとそれに対応する補完ディレクトリを追加することができます。

directory = /home/user/torrents/incomplete

schedule2 = watch_directory_1,10,10,"load.start=/home/user/torrents/watch/*.torrent,d.custom1.set=/home/user/torrents/complete"
schedule2 = watch_directory_2,10,10,"load.start=/home/user/torrents/watch/iso/*.torrent,d.custom1.set=/home/user/torrents/complete/iso"
schedule2 = watch_directory_3,10,10,"load.start=/home/user/torrents/watch/music/*.torrent,d.custom1.set=/home/user/torrents/complete/music"

method.insert = d.data_path, simple, "if=(d.is_multi_file), (cat,(d.directory),/), (cat,(d.directory),/,(d.name))"
method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session="
method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.custom1="

また、ウォッチディレクトリごとに不完全なディレクトリを指定することも可能です。

directory = /home/user/torrents/incomplete

schedule2 = watch_directory_1,10,10,"load.start=/home/user/torrents/watch/*.torrent,d.directory.set=/home/user/torrents/incomplete,d.custom1.set=/home/user/torrents/complete"
schedule2 = watch_directory_2,10,10,"load.start=/home/user/torrents/watch/iso/*.torrent,d.directory.set=/home/user/torrents/incomplete/iso,d.custom1.set=/home/user/torrents/complete/iso"
schedule2 = watch_directory_3,10,10,"load.start=/home/user/torrents/watch/music/*.torrent,d.directory.set=/home/user/torrents/incomplete/music,d.custom1.set=/home/user/torrents/complete/music"

method.insert = d.data_path, simple, "if=(d.is_multi_file), (cat,(d.directory),/), (cat,(d.directory),/,(d.name))"
method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session="
method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.custom1="

また、bash スクリプトによる補完移動pyrocore の rtcontrol (AUR パッケージがあります) も参照してください。

Google メールでの通知

携帯電話に メール を送ることもできます。

Verizon: 10digitphonenumber@vtext.com
AT&T: 10digitphonenumber@txt.att.net
Former AT&T customers: 10digitphonenumber@mmode.com
Sprint: 10digitphonenumber@messaging.sprintpcs.com
T-Mobile: 10digitphonenumber@tmomail.net
Nextel: 10digitphonenumber@messaging.nextel.com
Cingular: 10digitphonenumber@cingularme.com
Virgin Mobile: 10digitphonenumber@vmobl.com
Alltel: 10digitphonenumber@alltelmessage.com OR
10digitphonenumber@message.alltel.com
CellularOne: 10digitphonenumber@mobile.celloneusa.com
Omnipoint: 10digitphonenumber@omnipointpcs.com
Qwest: 10digitphonenumber@qwestmp.com
Telus: 10digitphonenumber@msg.telus.com
Rogers Wireless: 10digitphonenumber@pcs.rogers.com
Fido: 10digitphonenumber@fido.ca
Bell Mobility: 10digitphonenumber@txt.bell.ca
Koodo Mobile: 10digitphonenumber@msg.koodomobile.com
MTS: 10digitphonenumber@text.mtsmobility.com
President's Choice: 10digitphonenumber@txt.bell.ca
Sasktel: 10digitphonenumber@sms.sasktel.com
Solo: 10digitphonenumber@txt.bell.ca
  • /etc/mail.rc ファイルをクリアして、入力します。
set sendmail="/usr/bin/mailx"
set smtp=smtp.gmail.com:587
set smtp-use-starttls
set ssl-verify=ignore
set ssl-auth=login
set smtp-auth-user=USERNAME@gmail.com
set smtp-auth-password=PASSWORD

本文を送信するには、mailx プログラムにメッセージをパイプで送る必要があります。

  • Bash スクリプトを作成します。
/path/to/mail.sh
echo "$@: Done" | mailx 5551234567@vtext.com

ここで、$@ はスクリプトに渡されるすべての引数を保持する変数です。

最後に、重要な ~/.rtorrent.rc 行を追加します。

以下分解です:

notify_me はコマンドIDで、他のコマンドで使用される可能性があり、ユニークであれば何でもかまいません。

execute= は、rtorrent コマンドで、この場合はシェル コマンドを実行します。

/path/to/mail.sh は、スクリプトの名前 (または実行するコマンド) と、渡されるすべてのスイッチ/引数をカンマで区切ったリストです。

$d.get_name= d はコマンドのトリガーとなるダウンロードのエイリアス、get_name はダウンロードの名前を返す関数、$ は実行を呼び出す前にコマンドをその出力に置き換えるよう rTorrent に指示します。

最終結果は? 出勤前に開始したトレント、All Live Nudibranches が終了すると、テキストが送信されます。

All Live Nudibranches: Done

UI トリック

rTorrent はデフォルトでアクティブなタブを正しく表示しません。アクティブなトレントのみを表示するには、次の行を .rtorrent.rc に追加してください。

schedule2 = filter_active,30,30,"view.filter = active,\"or={d.up.rate=,d.down.rate=}\""

次に、rTorrent クライアントで 9 を押して、変更点を確認します。

シードビューをアップロード率でソートし、ピアのいるトレントのみを表示するには。

# Sort the seeding view by the upload rate and only show torrents with peers
view.sort_current = seeding,greater=d.up.rate=
view.filter = seeding,"and=d.complete=,d.peers_connected="
view.sort_new = seeding,less=d.up.rate=
view.sort = seeding

完全なビューをアップロード率でソートする場合。

# Sort the complete view by the upload rate
view.sort_current = complete,greater=d.up.rate=
view.filter = seeding,"and=d.complete="
view.sort_new = seeding,less=d.up.rate=
view.sort = seeding

手動でトラッカーを torrent に追加

  1. rTorrent のコンソールビューから編集する torrent を選択。
  2. Ctrl+x を押す。
  3. もし4つのトラッカーがあったら、次の行を1つずつ入力してください (常に最初に Ctrl+x を押してください) 例えば4つ追加することができます。
d.tracker.insert="5","udp://tracker.publicbt.com:80"
d.tracker.insert="6","udp://tracker.openbittorrent.com:80"
d.tracker.insert="7","udp://tracker.istole.it:80"
d.tracker.insert="8","udp://tracker.ccc.de:80"

torrent を特定の時刻に開始するように設定する

トレントをすぐにダウンロードせず、後で開始したい場合 (たとえば、データ プランに合わせるため)、トレントを特定のディレクトリに追加し、rtorrent にそのディレクトリを定期的にチェックするよう指示し、トレント ファイルが存在すれば、rtorrent は指定時刻にダウンロードを開始するようにすることができます。

# Start torrents at 1am in this directory
schedule2 = watch_start,01:00:00,24:00:00, "load.start=/home/user/torrents/offpeak/*.torrent"

rtorrent は 24 時間ごとに torrents/offpeak/ ディレクトリをチェックし、トレント ファイルが存在する場合は午前 01:00 にそれを開始します。

トラブルシューティング

CA 証明書

rTorrent で HTTPS を使用するトラッカーを使う場合、root で以下を実行してください:

# cd /etc/ssl/certs
# wget --no-check-certificate https://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Global_eBusiness_CA-1.cer
# mv Equifax_Secure_Global_eBusiness_CA-1.cer Equifax_Secure_Global_eBusiness_CA-1.pem
# c_rehash

そして rTorrent を次のコマンドで実行してください:

$ rtorrent -o http_capath=/etc/ssl/certs

GNU Screen を使っている場合、変更が適用されるように .screenrc 設定ファイルを更新:

$ screen -t rtorrent rtorrent -o http_capath=/etc/ssl/certs

rTorrent 0.8.9 では network.http.ssl_verify_peer.set=0 を設定することで 問題が修正 されます。

詳細は次を参照: rTorrent Error & CA CertificaterTorrent Certificates Problem

ディレクトリのロック

クラッシュや不正のシャットダウンの後、ときどき rTorrent が動かなくなって、ロックファイルについてエラーを表示することがあります。

エラーメッセージによると、ダウンロード ディレクトリの隠しフォルダ .rtorrentsession 内に rtorrent.lock というファイルが見つかった場合、手動で削除することができます。

Event failed: bad return code

これは、system.method.* の行にスペースがある場合や、単にインストールされていない外部スクリプトを呼び出すイベントハンドラ、または0以外の終了コードを返す場合によく起こります。

前者については、偽のスペースを削除するか、意図的にパスなどを引用することで、動作するようになります。

ウェブインターフェイス

rTorrent には様々なウェブインターフェイスやフロントエンドが存在しています:

  • rutorrentForum - uTorrent とよく似たインターフェイスを持つウェブベースのフロントエンドです。多数のプラグインと高度な機能をサポートしています (参照:ruTorrentGuide on forum)
  • Flood - XMLRPC を使用して Node.js で書かれたモダンなインターフェイスです。
ノート: rTorrent は現在、XML-RPC for C/C++ を使用して構築されています。これは、一部の Web インターフェース (ruTorrent など) で必要とされています。).

XMLRPC インターフェイス

Unix ソケット

rTorrent を Web インターフェイスで使用する場合、次の行を設定ファイルに追加し、'user を rTorrent を実行するユーザーに置き換えてを実行する必要があります。

network.scgi.open_local = /home/user/rpc.socket
execute.nothrow = chmod,770,/home/user/rpc.socket

詳しくはこちらをご覧ください。Using XMLRPC with rtorrent を参照してください。

SCGI Port

この記事またはセクションは情報が古くなっています。
理由: 以下の scgi_port を使用すると、TCP を使用するため、あらゆるローカル ユーザが rTorrent プロセスの所有ユーザとして任意のコマンドを実行することができます。ソケット ファイルに UNIX パーミッションを設定することで、上記の UNIX ドメイン ソケットを使用して、安全な暗号化通信を実現します。 (Discuss)
network.scgi.open_port = localhost:5000

magnet リンクを watch フォルダに torrent ファイルとして保存

ノート: Rtorrent はネイティブで magnet リンクによる torrent のダウンロードに対応しています。(Rtorrent を起動して 1 を押すと表示される) メインビューで、エンターを押してください。"load.normal>" に magnet リンクを貼り付けてエンターを再度押すとダウンロードが開始されます。

magnet リンクを watch フォルダに自動的に追加したい場合、以下のスクリプトで行うことができます:

#!/bin/bash
watch_folder=~/.rtorrent/watch
cd $watch_folder
[[ "$1" =~ xt=urn:btih:([^&/]+) ]] || exit;
echo "d10:magnet-uri${#1}:${1}e" > "meta-${BASH_REMATCH[1]}.torrent"

(ソース: http://blog.gonzih.org/blog/2012/02/17/how-to-use-magnet-links-with-rtorrent/)

例えば、rtorrent-magnet という名前で保存し、実行権限を与え、$PATH の下のどこかに配置します。次に、Firefox で

  1. ロケーション バー (アドレス バー) に about:config と入力し、Enter キーを押します。
  2. 右クリックする。新規 > Boolean > Name: network.protocol-handler.expose.magnet と入力します。> 値> false です。
  3. 次回 magnet リンクをクリックすると、どのアプリケーションでそれを開くか尋ねられます。先ほど作成したスクリプトを選択すれば完了です。

xdg-open で処理したい場合、Firefox の代わりに chrome を使用している場合は必要ですが、(gnome やその他の DE では xdg-open を上書きする独自のプログラムがあるかもしれません)rtorrent-magnet スクリプト用のデスクトップ エントリを ~/.local/share/applications/rtorrent-magnet.desktop に次の内容で作成する必要があります。

 [Desktop Entry]
 Type=Application
 Name=rtorrent-magnet
 Exec=rtorrent-magnet %U
 MimeType=x-scheme-handler/magnet;
 NoDisplay=true

以下でmimetypeを登録するだけです。

$ xdg-mime default rtorrent-magnet.desktop x-scheme-handler/magnet

magnet を Torrent に変換

magnet2torrent-gitAUR パッケージを使うことでメタデータをダウンロードして torrent ファイルを作成することができます。

使用方法:

$ magnet2torrent <magnet link> [torrent file]

rtorrent-ps

rTorrent-PS は、UI の強化、カラー化、およびいくつかの機能追加を行ったパッチセット形式の rTorrent ディストリビューションです。

インストール方法

AUR から入手できる様々なパッケージを使うか、GitHub リポジトリにあるビルドスクリプトを使ってパッケージを作成してください。詳しくは the docs を見て下さい。

設定

rTorrent 設定ファイルで pyro.extended を 1 に設定し、rTorrent-PS 機能を有効にします。

method.insert = pyro.extended, value|const, 1

その他の設定例については、pimp-my-box リポジトリの rtorrent-ps テンプレートを参照してください。動作させるには PyroScope のコマンドライン ユーティリティが必要な場合があることに注意してください。

PyroScope コマンドラインユーティリティ

PyroScope コマンドラインユーティリティ は、rTorrent クライアント用のツールのコレクションで、#rtorrent-psパッチセットと一緒に使用すると便利です。 特に、一般的なタスクの自動化や、rTorrent のキュー マネージャを提供します。

インストールと設定については、公式ドキュメント に従ってください。その他の設定例については、pimp-my-box リポジトリの rtorrent-ps テンプレートを参照してください。

参照

  • Manpage for rtorrent
  • Comparison of BitTorrent clients Wikipedia
  • rTorrent Community Wiki - セットアップ、構成、運用、および開発に関するrTorrentおよびrTorrentに関連するプロジェクトに関する情報の公開場所。
  • PyroScope - rTorrent 用のコマンドラインツールのコレクション。トレント ファイルの作成と変更、複数のウォッチ フォルダーを使用しない完了時のデータの移動、rTorrent の XML-RPC インターフェイスを介したダウンロード アイテムの一括制御 (検索、開始/停止、データ付き/データなしのアイテムの削除など) のためのコマンドを提供します。また、文書化された Python も提供されています。APIを提供します。
  • ruTorrent と Lighttpd
  • How-to install rTorrent and Hellanzb on CentOS 5 64-bit VPS
  • Installation guide for rTorrent and Pryoscope on Debian - BitTorrent プロトコル、特に rTorrent クライアントのためのツール集
  • mktorrent - torrent ファイルを作成するためのコマンドラインアプリケーション、公式リポジトリmktorrent でインストールできます。
  • docktorrent - Docker, rTorrent, ruTorrent を使用してフル機能の BitTorrent マシンを実行。
  • reptyr - (標準リポジトリにあります) プロセスはターミナルや tmux、screen、dtach のソケットにアタッチされるようになったかもしれません。プログラムの TTY を引き継ぐための別のツールです
  • neercs - reptyr よりも screen/tmux に似たツールですが、reptyr と同様に、neercs は、端末または tmux、screen、または dtach のソケットにスレーブとして開始された可能性のあるプロセスを "steal" することもできます。

フォーラムスレッド