搭建完美的媒體服務器:Ubuntu 11.10
譯文本教程介紹了如何安裝Ubuntu 11.10(Oneiric Ocelot)和必需的所有程序,以便完美的媒體服務器下載你的所有媒體,并流式傳送到PS3游戲機上。這套架構包括:Sabnzbd+(用Ypthon編寫的開源二進制新聞閱讀器)、Sickbeard(面向新聞組用戶的個人錄像機)、Couch Potato(NZB和torrent文件自動下載工具)、Headphones(面向SABnzbd的音樂自動下載工具)以及Serviio(免費的媒體服務器系統)。
一、系統要求
要安裝這樣一套系統,你需要下列部分:
•Ubuntu 11.10桌面版光盤,可從此處http://www.ubuntu.com/start-download?distro=desktop&bits=64&release=latest獲得。
•快速互聯網連接
•向Usenet提供商注冊的帳戶(作為服務的一部分,你的ISP可能會免費提供這個帳戶)
•向newzbin.com注冊的帳戶(可選)
•向nzbmatrix.com注冊的帳戶(可選)
二、事先聲明
在本教程上,我將使用主機名server1.example.com,IP地址為192.168.0.100,網關是192.168.0.1。你的這些設置可能有所不同,所以必要時要換成相應的設置。
三、基本系統
把Ubuntu安裝光盤插入到系統,啟動系統。選擇你的語言:

然后選擇Install Ubuntu(安裝Ubuntu)。

勾選Download updates while installing(安裝過程中下載更新版)和Install this third-party software(安裝該第三方軟件),點擊Continue(繼續)。

假設你安裝在干凈的硬盤上,確保Erase disk and install Ubuntu(擦除磁盤,安裝Ubuntu)已選中,點擊Continue(繼續)。

點擊Install Now(立即安裝)。
點擊你所在的時區,點擊Continue(繼續)。

選擇你的鍵盤布局,點擊Continue(繼續)。

輸入你的名稱和計算機名,并挑選用戶名和合適的密碼,我喜歡選擇Log in automatically(自動登錄),但你可以選擇其中任何一個選項,然后點擊Continue(繼續)。
你在等安裝完成時,可以沖杯咖啡喝喝。

點擊Restart Now(立即重啟)。
你會看到一堆信息在屏幕上滾動,然后看到這個信息:
Please remove installation media and close the tray (if any) then press ENTER:
請取出安裝介質,關閉托盤;然后按回車鍵:
取出光盤,按回車鍵。
登錄進入到剛安裝好的Ubuntu。
#p# 四、安裝Sabnzbd+
點擊Dash Home按鈕(儀表板上的頂部圖標),輸入term,點擊第一個圖標Terminal,打開終端窗口。
想安裝Sabnzbd+,就要添加jcfp庫。為此,在終端中運行下列命令:
sudo add-apt-repository ppa:jcfp/ppa
輸入密碼后,你會看到下列告知:
You are about to add the following PPA to your system:
PPA for jcfp
This PPA contains packages for the latest and greatest version of the SABnzbd+ binary newsgrabber, allowing for easy installation, dependency tracking, and automatic upgrading of the program.
Everything works just like any other repository; nevertheless, for those who need them, newbie-proof instructions can be found at http://forums.sabnzbd.org/index.php?topic=387.0
More info: https://launchpad.net/~jcfp/+archive/ppa
Press [ENTER] to continue or ctrl-c to cancel adding it
按回車鍵即可繼續。
安裝Sabnzbd+:
sudo apt-get install -y sabnzbdplus sabnzbdplus-theme-smpl sabnzbdplus-theme-plush sabnzbdplus-theme-iphone
打開sabnzbdplus配置文件:
sudo gedit /etc/default/sabnzbdplus
將以何身份運行的用戶改成你的用戶帳戶,把主機字段設成0.0.0.0,把端口設成8080。現在,你的配置文件應該是這個樣子:
#
# 使用初始化腳本啟動SABnzbd+時,
# 始終使用--daemon選項,該程序在$USER帳戶下啟動,如下所示。
#
# 每個設置被標為“必需”或“可選”;
# 對任何必需設置不加配置會導致該服務無法啟動。
# [必需] 運行該程序的用戶或帳戶uid:
USER=user
# [必需] 你選擇的配置文件的完整路徑;
# 不然,就使用默認位置(在$USER的主目錄中);
CONFIG=
# [可選] hostname/ip和偵聽的端口號:
HOST=0.0.0.0
PORT=8080
# [可選]額外的命令行選項,如果有的話:
EXTRAOPS=
開啟sabnzbdplus服務,對它進行配置:
sudo service sabnzbdplus start
* Starting SABnzbd+ binary newsgrabber [ OK ]
打開Firefox web瀏覽器,瀏覽到:http://localhost:8080。

#p# 選擇你的語言,點擊Start Wizard(啟動向導)。

輸入你usenet提供商的詳細資料,應該能夠從提供商處獲得這些信息。點擊Test Server(測試服務器),即可確認設置。一旦每一項設置都正確無誤,點擊Next(下一步)。

如果你希望能夠從你網絡上的其他計算機來訪問SABnzbd界面,就要確保讓該選項I want SABnzbd to be viewable by any PC on my network(我希望可以從網絡上的任何PC來瀏覽SABnzbd)已啟用,但我強烈建議你勾選Password protect access to SABnzbd (recommended),即密碼保護對SABnzbd的訪問(建議),然后輸入合適的用戶名和密碼。點擊Next(下一步)。

如果你有newzbin和nzbmatrix帳戶,輸入相應帳戶的詳細資料。

現在設置已完成,點擊Go to SABnzbd(進入到SABnzbd),即可開啟SABnzbd界面。
點擊配置按鈕,進入到配置面板,選擇類別選項卡(左邊倒數第二個)。為電影、音樂和電視創建類別,如下圖所示;這有點不合常理,在default正下方的類別字段和同一行上的文件夾/路徑字段里面輸入相應內容,點擊右邊的add(添加)按鈕。

這就是我們要做的所有配置工作,如果你喜歡,可以查看所有的配置選項。
在我們安裝其他程序之前,不妨花點時間創建文件夾。打開終端,輸入下列幾個命令(把user換成你的用戶名):
sudo mkdir -p /Media/TV\ Shows
sudo mkdir /Media/Movies
sudo mkdir /Media/Music
sudo chown user:user -R /Media
#p# 五、安裝Sickbeard
打開終端窗口,執行下列幾個命令:
wget https://github.com/midgetspy/Sick-Beard/tarball/master -O sickbeard.tar.gz
tar xf sickbeard.tar.gz
ls
ls命令執行后,你會看到這樣的信息:
Desktop Downloads midgetspy-Sick-Beard-8d7484d Pictures Templates
Documents examples.desktop Music Public Videos
我們想把midgetspy-Sick-Beard-xxxxxx文件夾移到.sickbeard,可以用下列命令來實現(你需要改動命令,以適合文件夾名稱):
mv midgetspy-Sick-Beard-8d7484d .sickbeard
sudo mv .sickbeard/init.ubuntu /etc/init.d/sickbeard
sudo gedit /etc/init.d/sickbeard
編輯APP_PATH,指向/home/user/.sickbeard,其中“user”是你的用戶名,將RUN_AS設成你的用戶名,之后你的文件應該像這個樣子:
#! /bin/sh
### 開始初始化信息
# Provides: sickbeard
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# 簡短描述:啟動Sick Beard的實例
# 描述:使用start-stop-daemon,啟動Sick Beard的實例
### 結束初始化信息
############### EDIT ME ##################
# 應用程序路徑
APP_PATH=/home/user/.sickbeard
# python bin路徑
DAEMON=/usr/bin/python
# 存儲PID文件的路徑
PID_FILE=/var/run/sickbeard/sickbeard.pid
PID_PATH=$(dirname $PID_FILE)
# 腳本名稱
NAME=sickbeard
# 應用程序名稱
DESC=SickBeard
# 用戶
RUN_AS=user
# 數據目錄
DATA_DIR=/home/${RUN_AS}/.sickbeard
# 啟動參數
DAEMON_OPTS=" SickBeard.py -q --daemon --nolaunch --pidfile=${PID_FILE} --datadir=${DATA_DIR}"
############### 結束EDIT ME ##################
test -x $DAEMON || exit 0
set -e
if [ ! -d $DATA_DIR ]; then
mkdir -p $DATA_DIR
chown $RUN_AS $DATA_DIR
fi
case "$1" in
start)
echo "Starting $DESC"
rm -rf $PID_PATH || 返回1
install -d --mode=0755 -o $RUN_AS -g $RUN_AS $PID_PATH || 返回1
start-stop-daemon -d $APP_PATH -c $RUN_AS --start --pidfile $PID_FILE --exec $DAEMON -- $DAEMON_OPTS
;;
stop)
echo "Stopping $DESC"
start-stop-daemon --stop --pidfile $PID_FILE --retry 15
;;
restart|force-reload)
echo "Restarting $DESC"
start-stop-daemon --stop --pidfile $PID_FILE --retry 15
start-stop-daemon -d $APP_PATH -c $RUN_AS --start --pidfile $PID_FILE --exec $DAEMON -- $DAEMON_OPTS
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
保存變更內容,然后使用下列命令,將sickbeard設成啟動時運行:
sudo update-rc.d sickbeard defaults
第一次啟動sickbeard:
sudo service sickbeard start
打開Firefox,瀏覽到http://localhost:8081。
#p# 你會看到下面這個屏幕。

窗口頂部你會看到Unknown version: If you've never used the Sick Beard upgrade system then I don't know what version you have.--Update Now Click the Update Now 這個鏈接,意思是“未知版本:如果你之前從未用過Sick Beard升級系統,那么我不知道你有什么版本。——立即更新,請點擊“立即更新”。
Sickbeard會重啟,一旦頁面重新裝入,點擊Config(配置)| General(常規)。
配置分為五個選項卡:General Search Settings(一般搜索設置)| Search Providers(搜索提供商)| Post Processing(后期處理)| Notifications(通知)。
先取消勾選General Configuration(常規配置)中的Launch Browser(啟動瀏覽器),因為我們將在啟動時運行sickbeard,點擊Save Changes(保存變更)。
點擊Search Settings(搜索設置)選項卡,將NZB Method:改成SABnzbd,并將SABnzbd URL設成http://localhost:8080/。
將SABnzbd用戶名和密碼設成你在SABnzbd配置中所用的設置。需要從SABnzbd界面獲取API密鑰,于是在另一個瀏覽器標簽頁中打開http://localhost:8080,進入到配置頁面,在General(常規)選項卡下,你會看到API密鑰,拷貝其中的文本,重新回到Sickbeard配置選項卡,將API密鑰粘貼到SABnzbd API Key文本框里面。點擊Test SABnzbd(測試SABnzbd),即可測試設置,然后點擊Save Changes(保存變更)。
點擊Search Providers選項卡,勾選你想要使用的哪些提供商。如果你向NZBs'R'US、NZBs.org、NZBMatrix或Newzbin注冊了帳戶,確保在這里勾選了它們。你還可以拖動提供商,選擇想要搜索它們的優先級。
在提供商優先級下面,你會看到Configure Built-In Providers(配置內置的提供商),從下拉框中選擇想要配置的提供商,然后輸入該提供商的相應信息,輸入完畢后,點擊Save Changes(保存變更)。
點擊Post Processing選項卡。你需要往TV Download Dir(電視下載目錄)文本框里面輸入/home/user/Downloads/complete/tv,把user換成你的用戶名。Sabnzbd+將把下載完畢的電視放在這里。現在我們配置SickBeard,對這些文件進行后期處理。
取消勾選Keep Original Files(保留原始文件),我們將原始文件拷貝到媒體存儲位置后,不想繼續保留這些文件。配置想要創建的元數據,為此從Metadata Type(元數據類型)下拉框中選擇你的目標,從Create(創建)列表框勾選合適的元數據項,完成后點擊Save Changes(保存變更)。
不妨添加一個電視節目試一下。
在Home菜單上點擊Home,然后點擊Add Show(添加節目)按鈕,點擊Add New Show(添加新節目)按鈕,輸入節目名稱,點擊Search(搜索)。如果Sickbeard返回幾個匹配的節目,選擇正確的那個節目,然后點擊Next(下一步)。點擊New按鈕,瀏覽到/Media/TV Shows文件夾,點擊OK(確定)。
點擊Next,選擇漏掉幾集節目的初始狀態(如果你想下載全集節目,將Skipped更改成Want),勾選Season Folders(季文件夾)。選擇你偏愛的下載質量。我還建議在點擊Add Show(添加節目)之前,先點擊Save Defaults(保存默認值)按鈕。
然后,節目會添加到節目列表中;一段時間后,不斷點擊刷新,直至你看到屏幕變化,它應該會裝入所有相關信息,并在Download欄下方顯示集數;如果點擊節目名稱,它會深入分析該節目,顯示全集和全季節目;從這個屏幕上,你可以將想要下載的任何一集節目的狀態從Skipped改成Want,然后它們會自動為你下載。
#p# 六、安裝Couch Potato
打開終端窗口,執行下列幾個命令:
wget https://github.com/RuudBurger/CouchPotato/tarball/master -O couchpotato.tar.gz
tar xvf couchpotato.tar.gz
ls
ls命令執行完畢后,你會看到這樣的信息:
couchpotato.tar.gz Downloads Pictures Templates
Desktop examples.desktop Public Videos
Documents Music RuudBurger-CouchPotato-2344e1a
我們想把RuudBurger-CouchPotato-xxxxxxx移到.couchpotato,為此你可以用下列命令來實現(你需要改動命令,適合文件夾名稱):
mv RuudBurger-CouchPotato-2344e1a .couchpotato
sudo mv .couchpotato/initd.ubuntu /etc/init.d/couchpotato
sudo mv .couchpotato/default.ubuntu /etc/default/couchpotato
sudo gedit /etc/default/couchpotato
把APP_PATH改成/home/user/.couchpotato,其中user是你的用戶名;并把ENABLE_DAEMON改成1,把RUN_AS改成你的用戶名,此后你的文件應該看起來這樣:
# 該文件由/etc/init.d/couchpotato提供
#
# 使用初始化腳本啟動couchpotato時,在$USER帳戶下啟動,如下所示。
#
# 每個設置被標為“必需”或“可選”;
# 對任何必需設置不加配置會導致該服務無法啟動。
# [必需] 設置安裝couchpotato的路徑:
APP_PATH=/home/user/.couchpotato
# [可選] 改成1,啟用daemon
ENABLE_DAEMON=1
# [必需] 運行該程序的用戶或帳戶uid:
RUN_AS=user
# [可選] 改成1,能夠從Web界面來進行更新
# 這將/opt/couchpotato的所有權歸為用戶@ RUN_AS
WEB_UPDATE=0
# [可選] 你選擇的配置文件的完整路徑;
# 不然,使用默認位置(~/.couchpotato);
CONFIG=
# [可選] 用來存儲數據的文件夾(databases/thumbs)的完整路徑;
# 不然,使用默認位置(~/.couchpotato);
DATADIR=
# [可選] 迫使端口號偵聽,不然使用config.ini中設置的端口;
PORT=
# [可選] pidfile的完整路徑
# 不然,使用默認位置/var/run/couchpotato/couchpotato.pid;
PID_FILE=
現在,我們可以將couchpotato設成啟動時運行,讓它運行:
sudo update-rc.d couchpotato defaults
sudo service couchpotato start
你應該會看到告知服務已啟動的信息,這時回到Firefox,打開Couch Potato界面,默認端口是5000,于是瀏覽到http://localhost:5000,應該會看到樣子很普通的屏幕,沒有電影添加上去;點擊此處,即可添加電影,但是我們先要配置Couchpotato,所以點擊頂部的齒輪圖標,進入到配置屏幕。
如果你看到這樣的信息:Update (diff) available: update now,那么點擊Update now鏈接,即可獲得最新版本;稍后,couchpotato會重啟,你回到了配置頁面。
點擊General,如果你喜歡,可以設置用戶名和密碼,取消勾選launch browser,點擊Save(保存)。
點擊Downloaders選項卡,輸入你Sabnzbd的Host、Apikey、Username和Password。另外輸入movies作為類別,然后點擊Save(保存)。
接下來是Providers選項卡,啟用你想要使用的所有提供商,輸入相應的信息,點擊Save(保存)。
如果你想修改任何內置的配置文件或創建自己的配置文件,可以順便查看Quality(質量)選項卡;但是眼下,內置的配置文件足夠了,所以接下來看看Renaming(更名)選項卡。
我們想要啟用更名,于是勾選Enable(啟用)復選框,輸入/home/user/Downloads/complete/movies,作為你SABnzbd電影的Download folder(下載文件夾),把user換成你的用戶名。輸入/Media/Movies,作為你的Movie destination(電影目的地);如果你想更改命名選項,也可以更改;我更喜歡默認的命名,然后點擊Save(保存)。
點擊Extras選項卡,我使用Extras選項卡的唯一用途是勾選Save Metadata(保存元數據)復選框,但是你可以添加Blu-Ray.com、Kinepolis.com、Trailers、Subtitles、Trakt和IMDB Watchlists的詳細資料,電影需求列表就會自動從其他這些來源填充。我更喜歡將電影手動添加到couchpotato。
好了,可以點擊About選項卡,點擊Restart(重啟),即可讓密碼變更生效。
#p# 七、安裝Headphones
打開終端窗口,執行下列幾個命令。
wget https://github.com/rembo10/headphones/tarball/master -O headphones.tar.gz
tar xvf headphones.tar.gz
ls
ls命令執行完畢后,你會看到這樣的信息:
Desktop examples.desktop Pictures Templates
Documents headphones.tar.gz Public Videos
Downloads Music rembo10-headphones-514844e
我們想把rembo10-headphones-xxxxxxx移到.headphones,為此可以使用下列命令來實現(你需要改動命令,適合文件夾名稱):
mv rembo10-headphones-514844e .headphones
sudo mv .headphones/init.ubuntu /etc/init.d/headphones
sudo chmod +x /etc/init.d/headphones
sudo gedit /etc/init.d/headphones
把APP_PATH改成/home/user/.headphones,其中user是你的用戶名,將RUN_AS更改成你的用戶名,之后你的文件應該看起來這樣:
#! /bin/sh
### 開始初始化信息
# Provides: Headphones application instance
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# 簡短描述:啟動Headphones的實例
# 描述:使用start-stop-daemon,啟用Headphones的實例
### 結束初始化信息
############### EDIT ME ##################
# 應用程序路徑
APP_PATH=/home/user/.headphones
# python bin路徑
DAEMON=/usr/bin/python
# 啟動參數
DAEMON_OPTS="Headphones.py -q"
# 腳本名稱
NAME=headphones
# 應用程序名稱
DESC=headphones
# 用戶
RUN_AS=user
PID_FILE=/var/run/headphones.pid
############### 結束EDIT ME ##################
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo "Starting $DESC"
start-stop-daemon -d $APP_PATH -c $RUN_AS --start --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
;;
stop)
echo "Stopping $DESC"
start-stop-daemon --stop --pidfile $PID_FILE
;;
restart|force-reload)
echo "Restarting $DESC"
start-stop-daemon --stop --pidfile $PID_FILE
sleep 15
start-stop-daemon -d $APP_PATH -c $RUN_AS --start --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
現在,我們可以將headphones設成啟動時運行,開始讓它運行。
sudo update-rc.d headphones defaults
sudo service headphones start
你會看到告知服務已啟動的消息,這時可以回到Firefox,打開Headphones界面,默認端口是8181,于是瀏覽到http://localhost:8181,你應該會看到headphones界面。如果你看到You're running an unknown version of Headphones. Click here to update(你在運行Headphones的未知版本。點擊此處,即可更新)鏈接,點擊該鏈接即可更新。稍后,Headphones應該會更新并重啟,你可能需要點擊刷新。
如果headphones沒有重新啟動,請回到終端,重啟它。
sudo service headphones start
點擊設置,進入到設置頁面;與SABnzbd+/SickBeard和Couchpotato不一樣,Headphones的所有設置都在一個頁面上。
為Web界面設置用戶名和密碼。
輸入SABnzbd的詳細資料:
SABnzbd Host name http://localhost:8080, SABnzbd username, SABnzbd password and SABnzbd API key.
至于SABnzbd Category,輸入music。
至于Music download Directory,輸入/home/user/Downloads/complete/music,將user換成你的用戶名。
啟用你想要使用的搜索提供商,輸入相應信息,向下移到Quality(質量)和Post Processing(后期處理)部分。
質量設置不用管,但是要勾選后期處理的所有選項。
將你的目的地文件夾路徑成/Media/Music,保存變更。現在大功告成,設置好了自動下載電視節目、電影和音樂,現在最后一步是如何從你的PlayStation 3觀看這一切內容。
#p# 八、流式傳送到PS3
將媒體流式傳送到PS3有許多不同的辦法,我過去常用MediaTomb,但是這個工具似乎停止了發展。于是我換成了PS3MediaServer,它很好,但有時顯示節目時不按順序,除非我重啟,否則它不會更新文件夾,這很麻煩。最近我開始使用Serviio,它到目前為止似乎非常好。它甚至可以提取元數據,按演員或導演等類別來顯示電影,如果你希望這樣。
第一步是下載和安裝serviio,打開終端,輸入這些命令:
wget http://download.serviio.org/releases/serviio-0.6.2-linux.tar.gz
tar xvf serviio-0.6.2-linux.tar.gz
mv serviio-0.6.2 .serviio
sudo gedit /etc/init/serviio.conf
gedit會打開serviio.conf空白文檔,把下列內容粘貼進來:
start on started networking
script
/home/user/.serviio/bin/serviio.sh
end script
保存變更。
現在我們可以開始讓serviio運行,然后打開配置控制臺。
sudo start serviio
.serviio/bin/serviio-console.sh
你在控制臺中要做的主要是切換到Library選項卡,添加你的幾個文件夾:/Media/TV Shows、/Media/Movies和 /Media/Music。確保你勾選了文件夾里面含有什么類型的內容,如果是Movies和TV Shows,就勾選Video;如果是Music文件夾,就勾選Music。如果你希望,還可以勾選Retrieve Metadata(檢索元數據)復選框,確保保存了變更。
就這樣,現在你可以享用電影、電視節目和音樂了。




















