在Ubuntu下rtorrent編譯安裝筆記

rtorrent是一個Bittorrent軟件,基於終端的BT客戶端,高性能、低資源,另外有很多人給rtorrent開發了Web GUI來更好的讓用戶控制管理rtorrent,總而言之在Linux平臺下,rtorrent是一個不錯的BT下載解決方案。
  rtorrent是一個Bittorrent軟件,基於終端的BT客戶端,高性能、低資源,另外有很多人給rtorrent開發了Web GUI來更好的讓用戶控制管理rtorrent,總而言之在Linux平臺下,rtorrent是一個不錯的BT下載解決方案。
  rtorrent已被添加進Ubuntu源中,在Ubuntu下安裝rtorrent很是容易,一句話便可安裝:
  $sudo apt-get install rtorrent
  可是這裏要寫的是編譯安裝rtorrent的筆記記錄,在這個編譯安裝過程當中能夠學習到一些關於編譯安裝源碼的簡單經驗。在這裏所用到的是全新安裝的Ubuntu 8.10,以此爲例來進行編譯安裝的學習。
  首先在rtorrent官方Wiki中的Install條目中給出了安裝步驟:
  cd /home/rtorrent
  svn co svn://rakshasa.no/libtorrent/trunk
  cd /home/rtorrent/trunk
  svn up
  cd libtorrent
  ./autogen.sh
  ./configure
  make
  make install
  cd ../rtorrent
  ./autogen.sh
  ./configure
  make
  make install
  在一個全新安裝的Ubuntu下還未安裝subversion,沒法使用svn獲取最新源碼,因此咱們須要安裝subversion:
  $sudo apt-get install subversion
  在/home下建立一個文件夾須要提權:
  $cd /home
  $sudo mkdir rtorrent
  而後根據rtorrent wiki的Install條目進行下一步:
  $cd /home/rtorrent
  因爲svn獲取源碼寫入/home/rtorrent也須要提權:
  $sudo svn co svn://rakshasa.no/libtorrent/trunk
  接下來就會下載一堆源碼,下載完成後接着進行下一步: 
  $cd /home/rtorrent/trunk
  想要查看經過svn得到的源碼版本使用命令:
  $sudo svn up
  這條命令會返回版本號,因爲編譯軟件須要編譯器,因此咱們在這一步就須要安裝編譯器先:
  $sudo apt-get install build-essential
  安裝完編譯器以後進行接下來的步驟:
  $sudo ./autogen.sh
  應該會返回信息:aclocal not found,這是由於須要安裝automake:
  $sudo apt-get install automake
  安裝完automake以後再重複上一步:
  $sudo ./autogen.sh
  應該會返回信息:
  aclocal...
  configure.ac:22: warning: macro `AM_DISABLE_STATIC' not found in library
  configure.ac:23: warning: macro `AM_PROG_LIBTOOL' not found in library
  autoheader...
  libtoolize... libtoolize nor glibtoolize not found
  這是由於未安裝libtool軟件包,一句話安裝:
  $sudo apt-get install libtool
  安裝完libtool以後再重複上一步:
  $sudo ./autogen.sh
  應該會返回信息:
  aclocal...
  autoheader...
  libtoolize... using libtoolize
  automake...
  configure.ac:23: installing `./config.guess'
  configure.ac:23: installing `./config.sub'
  configure.ac:18: installing `./install-sh'
  configure.ac:18: installing `./missing'
  src/Makefile.am: installing `./depcomp'
  autoconf...
  ready to configure
  接下來進行下一步: 
  $sudo ./configure
  將會開始檢查環境、配置,應該會返回信息:
  checking for OPENSSL... configure: error: Package requirements (openssl) were not met:
  Consider adjusting the PKG_CONFIG_PATH environment variable if you
  installed software in a non-standard prefix.
  Alternatively, you may set the environment variables OPENSSL_CFLAGS
  and OPENSSL_LIBS to avoid the need to call pkg-config.
  See the pkg-config man page for more details.
  經過Google搜索結果中,都說的是在這裏須要告訴pkg-config這個openssl的相關配置文件(.pc)的位置,一般已安裝的軟件和包的.pc文件都會出如今/usr/lib/pkg-config下,但我在這裏沒有找到openssl的.pc文件,而且經過使用命令$sudo apt-get install openssl發現openssl是已安裝了的,到這一步就停滯不前了。最後在Ubuntu的package網站裏搜索到一個相關的包是libssl- dev,安裝這個包:
  $sudo apt-get install libssl-dev
  安裝完libssl-dev以後再接着重複上一步$sudo ./configure又會收到和以前相似的信息,只是這回返回的是:
  checking for STUFF... configure: error: Package requirements (sigc++-2.0) were not met:
  No package 'sigc++-2.0' found
  再次經過Ubuntu的Package網站裏搜索到相關軟件包是libsigc++-2.0,因此須要安裝這個包:
  $sudo apt-get install libsigc++-2.0-dev html

        若是仍是不行的話安裝這個包libcurl4-openssl-dev c++

       $sudo apt-get install libsigc++-2.0-dev

  安裝完這個包以後再重複執行$sudo /.configure,能夠順利完成了,接下來的步驟:
  $sudo make
  $sudo make install ubuntu

       sudo ldconfig
  $cd ../rtorrent
  $sudo ./autogen.sh
  $sudo ./configure
  返回*** The ncurses library is required!,安裝ncurses開發包:
  $sudo apt-get install ncurses-dev libncursesw5-dev
  重複$sudo ./configure,再返回信息checking for libcurl... configure: error: Package requirements (libcurl >= 7.15.4),安裝libcurl開發包(libcurl-dev是由libcurl4-openssl-dev提供的虛擬軟件包):
  $sudo apt-get install libcurl4-openssl-dev
  重複$sudo ./configure,能夠順利完成而且進行下一步了:
  $sudo make
  $sudo make install
  至此rtorrent編譯安裝就完成了,在此次編譯安裝rtorrent能夠學習到如下基礎經驗:
  編譯所需的東西是首先要安裝好的:
  $sudo apt-get install build-essential automake libcurl4-openssl-dev
  在進行./configure步驟出現找不到的包的狀況下先將Package requirement後括號中的關鍵字詞記下來,在Ubuntu Package(http://packages.ubuntu.com/) 搜索一下,就能夠知道如何經過apt-get來安裝哪一個包了。一般狀況下所須要安裝的是相關包的開發包,因此一般安裝的是***-dev這樣子的包,好比以前的openssl就是一個典型,編譯須要用到openssl的開發包libssl-dev。另外編譯安裝軟件以前應該有個好習慣,是此次編譯安裝所得到的經驗,那就是至少應該先讀一讀svn下載下來的源碼中的README文本文件,在libtorrent目錄下的README(用nano README命令打開文本文件)中已說明了庫依賴(LIBRARY DEPENDENCIES)libsigc++ 2.0(deb:libsigc++-2.0-dev),g++ >=3.3,而rtorrent目錄下的README文本文件裏說明了所需庫依賴文件是libcurl >=7.12.0,ncurses。因此若是編譯以前先閱讀了這些說明文件,至少能夠事先安裝好所需庫文件包。 curl

安裝rtorrent過程當中使用 ./configure --with-ncursesw 選項好像也沒法改變 生成Makefile文件中仍然爲LIBS = -lncurses -lsigc-2.0   -lcurl   -L/usr/local/lib -ltorrent,這時須要將全部的Makefile文件都手工改成LIBS = -lncursesw -lsigc-2.0   -lcurl   -L/usr/local/lib -ltorrent,尤爲是src目錄及其子目錄下面的Makefile修改完畢後make一下,若是出現can't find lncursesw ,sudo apt-get install libncursesw5-dev,須要檢查一下/usr/lib/libncursesw.so文件,若是沒有須要 ide

ln -sfv /lib/libncursesw.so.5 /usr/lib/libncursesw.so 前提是已經存在libncursesw.so.5 或 libncursesw.so.5.7 svn

make 性能

makinstall 學習

OK 這樣rtorrent就不會有亂碼 網站

InstallingBuilding

./configure; make; make install ui

Building from latest development version (trunk)

(note: you need to have SVN installed)

Before the first use, you have to get the latest trunk version. This needs to be done only once. In this example, the directory in which you store the sources is /home/rtorrent/trunk

cd /home/rtorrentsvn co svn://rakshasa.no/libtorrent/trunk

Then, everytime you want to update your copy and recompile libTorrent and rTorrent:

cd /home/rtorrent/trunksvn upcd libtorrent./autogen.sh./configuremakemake installcd ../rtorrent./autogen.sh./configuremakemake install

(hint: you can put that in a file and run it everytime you want to recompile from trunk)

If it doesn't work, make sure you have a recent version of autotools. See also CompilationHelp.

libtorrent.so.5: cannot open shared object file: No such file or directory

Make sure you have $prefix/lib in either your /etc/ld.so.conf or LD_LIBRARY_PATH, where $prefix is where you installed libtorrent. To update the ld cache, run "ldconfig".

Non-blocking hostname lookup in curl

RTorrent will block on hostname lookup during tracker requests and http downloads. You can avoid this by compiling libcurl with 'cares' support, though this will be fixed later by using seperate threads within rTorrent.

後來又安裝rTorrentWeb時配置~/.rtorrent.rc文件,添加scgi_port = localhost:5000參數後,重啓rtorrent報錯,rtorrent:XMLRPC not supported ,究其緣由原來編譯安裝rtorrent時沒有把xmlrpl的功能編譯進來後來根據這篇文件的提示 安裝xmlrpc後 編譯rtorrent時加上了./configure --with-xmlrpc-c編譯選項終於成功

 

2010-12-23 今天安裝rtorrent-0.8.7.tar.gz , libtorrent-0.12.7.tar.gz的時候

/rtorrent/trunk/libtorrent# ./autogen.sh

aclocal...configure.ac:20: warning: macro `AM_PATH_CPPUNIT' not found in library 

./autogen.sh  提示 warning: macro `AM_PATH_CPPUNIT' not found in library,查閱資料發現缺乏cppunit

apt-get install libcppunit-dev 安裝完畢再次執行autogen.sh搞定

make rtorrent 時最後編譯main.o出現錯誤 /usr/bin/ld: note: 'pthread_create@@GLIBC_2.1' is defined in DSO /lib/libpthread.so.0 so try adding it to the linker command line

手工添加/lib/libpthread.so.0執行成功

libtool --tag=CXX   --mode=link g++  -g -O2 -g -DDEBUG -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include     -I/usr/local/include   -I/usr/local/include    -o rtorrent main.o libsub_root.a ui/libsub_ui.a core/libsub_core.a display/libsub_display.a input/libsub_input.a rpc/libsub_rpc.a utils/libsub_utils.a -lncursesw  -lsigc-2.0   -lcurl   -L/usr/local/lib -ltorrent   -L/usr/local/lib   -lxmlrpc_server -lxmlrpc -lxmlrpc_util -lxmlrpc_xmlparse -lxmlrpc_xmltok -L/lib lib/libpthread.so.0

相關文章
相關標籤/搜索