搜尋此網誌

2013年6月22日 星期六

nas-01g compile transmission 2.77(BT client)

成功的把nas-01g 上的debian 4 更新成功後,開始要編譯 rtorrent 但試了2天始終失敗
決定放棄,試著找別的bt 程式來替代,發現 transmission 這個程式,內建web 界面,不必像 rtorrent 還要用別的程式來控制,就改試著編譯 transmission
首先上網查資料,找到一些要先安裝的 package
apt-get install ca-certificates libcurl4-openssl-dev libssl-dev pkg-config build-essential libglib2.0-dev  intltool
然後執行  intltoolize

一開始先用 svn 下載最新版本來編譯
svn co svn://svn.transmissionbt.com/Transmission/trunk transmission
但在 ./autogen.sh 這裏就會生很多錯誤
查了一下是 autoconf,automake,libtool 的版本不夠新,只好手動先編譯這3個程式


wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
   tar xzfv autoconf-2.69.tar.gz
   cd autoconf-2.69
   ./configure
   make install

wget http://ftp.gnu.org/gnu/automake/automake-1.13.4.tar.gz
   tar xzfv automake-1.13.4.tar.gz
   cd automake-1.13.4
   ./configure
make install

wget http://ftp.twaren.net/Unix/GNU/gnu/libtool/libtool-2.4.tar.gz
   tar xzfv libtool-2.4.tar.gz
   cd libtool-2.4
   ./configure
   make install

成功的編譯這3個程式,並更新原系統上的

若沒更新這3個程式,會出現下列的錯誤

1.會出現 --enable-nls 錯誤 need intltool)
2. cannot find input file: `po/Makefile.in.in' 未執行  intltoolize 導致

想說transmission成功的跑完
./autogen.sh
./configure --disable-nls --disable-gtk --enable-daemon --enable-cli --disable-libnotify --disable-mac --enable-wx --enable-beos --enable-lightweight
結果在 make 時還是出現下列錯誤
/usr/include/pthread.h:441: error: expected ‘)’ before ‘*’ token
/usr/include/pthread.h:446: error: expected ‘)’ before ‘*’ token
/usr/include/pthread.h:449: error: expected ‘)’ before ‘*’ token
/usr/include/pthread.h:452: error: expected ‘)’ before ‘*’ token
/usr/include/pthread.h:462: error: expected ‘)’ before ‘*’ token
/usr/include/pthread.h:465: error: expected ‘)’ before ‘*’ token
/usr/include/pthread.h:475: error: expected ‘)’ before ‘*’ token
/usr/include/pthread.h:481: error: expected ‘)’ before ‘*’ token
/usr/include/pthread.h:484: error: expected ‘)’ before ‘*’ token
/usr/include/pthread.h:487: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
/usr/include/pthread.h:492: error: expected ‘)’ before ‘*’ token
/usr/include/pthread.h:496: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
/usr/include/pthread.h:500: error: expected ‘)’ before ‘*’ token

網路查了好久,始終無法解決
於是想到svn上的最新版的可能較不穩定,應該先用有release 的版本來試
此時transmission 官網上放的是
下載後沒想到連 tar 的版本都不夠新沒法解開 .xz 的檔
但不想再更新 tar,只好再另找別的格式的檔

找到有 .bz2 不是 .xz 的

tar -jxvf transmission-2.77.tar.bz2
cd transmission-2.77
裏頭已有 configure,所以不用先跑 ./autogen.sh
直接./configure --disable-nls --disable-gtk --enable-daemon --enable-cli --disable-libnotify --disable-mac --disable-wx --disable-beos --enable-lightweight
make
總算編譯成功
make install 也沒問題
先執行 transmission-daemon
會在 ~/.config/transmission-daemon/ 出現 settings.json 設定檔
根據自己需要調整參數後,順利的用 web interface(port 9091) 進入,上傳 torrent file 並捉檔成功



老機器再度成功運作最新版的 transmission 2.77
如不想用web 界面,在windows 下也有gui 界面 Transmission Remote GUI

2013年6月16日 星期日

PCI NAS-01G debian 4 更新奮戰

NAS-01G 2006年買了 這台 NAS ,大多都是只用 mldonkey 來捉 ed2k 的檔
但近來很多 ed2k 的 server 都關了,捉檔的速度也很慢
但因之前只把 mldonkey 更新到 3.0.0,想用BT來捉檔發現版本太老,一些tracker 跟 DHT 都不支援
在mobile 01 找到了有人放的 mldonkey 3.1.0,更新後總算bt 功能可以用了
但查了一下發現目前mldonkey 最新版是 3.1.3 ,想說不要都等捉別人的來更新,要試著自己compile mldonkey 跟 rtorrent,因此開始了 debian 更新的 奮戰過程

1.一開始用網路查到的一些資料
啟動 sshd 後下 apt-get update,apt-get upgrade
結果都失敗,查了很久的的網路資料發現問題出在 sources.list
nas-01g 網路捉的debian 是 4.0 版代號是 etch
在2010年後相關檔案都被搬到 http://archive.debian.org/debian/ 沒有其它主機可以用了
經過測試,可用的sources.list 的內容為下列6行

deb http://archive.debian.org/debian/ etch main non-free contrib
deb http://archive.debian.org/debian-security/ etch/updates main non-free contrib
deb http://archive.debian.org/debian-volatile/ etch/volatile main non-free contrib
deb-src http://archive.debian.org/debian/ etch main non-free contrib
deb-src http://archive.debian.org/debian-security/ etch/updates main non-free contrib
deb-src http://archive.debian.org/debian-volatile/ etch/volatile main non-free contrib

是否把 sources.list 設正確後就可以正常跑 apt-get update
錯,一跑就出現 E: Dynamic MMap ran out of room 的錯誤訊息
又查了一陣子網路,原來是因為update 的 list 資料太多,空間不夠
要到 /etc/apt/apt.conf
加入下列參數,參數的作用是保留40M 空間來用
APT::Cache-Limit 40000000;
如果你在下 apt-get update 時沒有錯誤,就不用管它

2. apt-get update 順利跑完了,執行 apt-get upgrade 時又出現錯誤
glibc6.2.6.3 "overwrite ...." 
不管跑什麼都會出現類似的錯誤訊息
因一開始對 debian 裏的 package 不熟,查了很久的網路都不知如何解決
因此仔細的研究一下 glibc6 這個package,此 lib 為基本的 lib 很多程式都會用到
故一定要先把這個lib 更新成功才能繼續其它的更新
最後針對 overwrite 這個錯誤訊息去查,原來是 2 個 package 沒寫好,衝突到所以無法安裝
但可以下參數強迫安裝
於是先用 
apt-get -o Dpkg::Options::="--force-overwrite" install libc6 
單獨更新看看,終於成功更新了
繼續下  apt-get upgrade 還有2個package 會出現錯誤
用下列2行單獨更新
apt-get -o Dpkg::Options::="--force-overwrite" install libc-dev

apt-get -o Dpkg::Options::="--force-overwrite" install dpkg
最後總算順利跑完 apt-get upgrade