#!/bin/bash
# edited 2015.04.20 15:50 est
set -e
SCRIPT="$(readlink -e ""$0"")"
## install dependencies and required compiling tools from standard repos
sudo apt-get update
sudo apt-get -y install build-essential checkinstall pkg-config libtool intltool libcurl4-openssl-dev libssl-dev libevent-dev
sudo sed -i 's/TRANSLATE=1/TRANSLATE=0/' /etc/checkinstallrc
#-uncomment if needed:
#sudo apt-get -y install natpmp-utils
## download, compile and install Transmission 2.84
cd ~
sudo rm -rf transmission-2.84; rm -f transmission-2.84.tar.xz
wget https://transmission.cachefly.net/transmission-2.84.tar.xz
xz -c -d transmission-2.84.tar.xz | tar -x
cd transmission-2.84
./configure; make
sudo checkinstall -y
cd ..
sudo rm -r transmission-2.84; rm transmission-2.84.tar.xz
## add user transmission
if [ ! $(grep '^transmission:' /etc/passwd) ]; then
sudo adduser --disabled-password --disabled-login --gecos "" transmission
fi
## copy lines after #initdscript# as /etc/init.d/transmission-daemon, make it autostart
tail -n +$(($(grep -n "^#initdscript#" "$SCRIPT"|grep -Eo '^[^:]+')+1)) "$SCRIPT" | sudo tee /etc/init.d/transmission-daemon >/dev/null
sudo chmod +x /etc/init.d/transmission-daemon
sudo update-rc.d transmission-daemon defaults
sudo /etc/init.d/transmission-daemon start
sudo /etc/init.d/transmission-daemon stop
echo $'\n'$'\n'"Settings: /home/transmission/.config/transmission-daemon/settings.json"$'\n'
exit
#initdscript# (from `https://trac.transmissionbt.com/wiki/Scripts/initd` 2015.03.31)
#!/bin/sh
### BEGIN INIT INFO
# Provides: transmission-daemon
# Required-Start: networking
# Required-Stop: networking
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Short-Description: Start the transmission BitTorrent daemon client.
### END INIT INFO
# Original Author: Lennart A. JÃŒtte, based on Rob Howell's script
# Modified by Maarten Van Coile & others (on IRC)
# Do NOT "set -e"
#
# ----- CONFIGURATION -----
#
# For the default location Transmission uses, visit:
# http://trac.transmissionbt.com/wiki/ConfigFiles
# For a guide on how set the preferences, visit:
# http://trac.transmissionbt.com/wiki/EditConfigFiles
# For the available environement variables, visit:
# http://trac.transmissionbt.com/wiki/EnvironmentVariables
#
# The name of the user that should run Transmission.
# It's RECOMENDED to run Transmission in it's own user,
# by default, this is set to 'transmission'.
# For the sake of security you shouldn't set a password
# on this user
USERNAME=transmission
# ----- *ADVANCED* CONFIGURATION -----
# Only change these options if you know what you are doing!
#
# The folder where Transmission stores the config & web files.
# ONLY change this you have it at a non-default location
#TRANSMISSION_HOME="/var/config/transmission-daemon"
#TRANSMISSION_WEB_HOME="/usr/share/transmission/web"
#
# The arguments passed on to transmission-daemon.
# ONLY change this you need to, otherwise use the
# settings file as per above.
#TRANSMISSION_ARGS=""
# ----- END OF CONFIGURATION -----
#
# PATH should only include /usr/* if it runs after the mountnfs.sh script.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DESC="bittorrent client"
NAME=transmission-daemon
DAEMON=$(which $NAME)
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS
#
# Function that starts the daemon/service
#
do_start()
{
# Export the configuration/web directory, if set
if [ -n "$TRANSMISSION_HOME" ]; then
export TRANSMISSION_HOME
fi
if [ -n "$TRANSMISSION_WEB_HOME" ]; then
export TRANSMISSION_WEB_HOME
fi
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \
--exec $DAEMON --background --test -- -f $TRANSMISSION_ARGS > /dev/null \
|| return 1
start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \
--exec $DAEMON --background -- -f $TRANSMISSION_ARGS \
|| return 2
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
case "$1" in
start)
echo "Starting $DESC" "$NAME..."
do_start
case "$?" in
0|1) echo " Starting $DESC $NAME succeeded" ;;
*) echo " Starting $DESC $NAME failed" ;;
esac
;;
stop)
echo "Stopping $DESC $NAME..."
do_stop
case "$?" in
0|1) echo " Stopping $DESC $NAME succeeded" ;;
*) echo " Stopping $DESC $NAME failed" ;;
esac
;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
echo "Restarting $DESC $NAME..."
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0|1) echo " Restarting $DESC $NAME succeeded" ;;
*) echo " Restarting $DESC $NAME failed: couldn't start $NAME" ;;
esac
;;
*)
echo " Restarting $DESC $NAME failed: couldn't stop $NAME" ;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
配置文件/home/transmission/.config/transmission-daemon/settings.json
默认登录地址:http://ip:9091
rpc-username帐号
rpc-password密码
rpc-port端口
rpc-authentication-required是否开启使用账号密码加密访问
不错的web-UI:https://github.com/ronggang/transmission-web-control
参考:
https://forum.transmissionbt.com/viewtopic.php?t=16887
http://www.hostloc.com/forum.php?mod=viewthread&tid=291278
—————————————————————————
如果出现类似下面错误
./libtransmission.a(utils.o): In function `to_utf8': /root/transmission-2.42/libtransmission/utils.c:1248: undefined reference to `libiconv_open' /root/transmission-2.42/libtransmission/utils.c:1250: undefined reference to `libiconv' /root/transmission-2.42/libtransmission/utils.c:1252: undefined reference to `libiconv_close' collect2: ld returned 1 exit status make[1]: *** [blocklist-test] Error 1 make: *** [all-recursive] Error 1
将脚本里./configure
换成
./configure CFLAGS=-liconv -q
再次编译。
——————————————-Centos7 yum安装———————————————————–
yum install epel-release yum -y update yum -y install transmission-daemon systemctl enable transmission-daemon
编辑/var/lib/transmission/.config/transmission-daemon/settings.json修改大概如下
{
"alt-speed-down": 50,
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": false,
"alt-speed-time-end": 1020,
"alt-speed-up": 50,
"bind-address-ipv4": "0.0.0.0",
"bind-address-ipv6": "::",
"blocklist-enabled": false,
"blocklist-url": "http://www.example.com/blocklist",
"cache-size-mb": 4,
"dht-enabled": true,
"download-dir": "/var/lib/transmission/Downloads",
"download-queue-enabled": true,
"download-queue-size": 5,
"encryption": 1,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/var/lib/transmission/Downloads",
"incomplete-dir-enabled": false,
"lpd-enabled": false,
"message-level": 1,
"peer-congestion-algorithm": "",
"peer-id-ttl-hours": 6,
"peer-limit-global": 200,
"peer-limit-per-torrent": 50,
"peer-port": 51413,
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,
"peer-port-random-on-start": false,
"peer-socket-tos": "default",
"pex-enabled": true,
"port-forwarding-enabled": true,
"preallocation": 1,
"prefetch-enabled": 1,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-password": "password",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "user",
"rpc-whitelist": "",
"rpc-whitelist-enabled": false,
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"seed-queue-enabled": false,
"seed-queue-size": 10,
"speed-limit-down": 100,
"speed-limit-down-enabled": false,
"speed-limit-up": 100,
"speed-limit-up-enabled": false,
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 18,
"upload-slots-per-torrent": 14,
"utp-enabled": true
}
最后
systemctl restart transmission-daemon