mldonkey编译及运行

上网、浏览、聊天、下载等
回复
lisir
帖子: 1187
注册时间: 2006-04-29 14:54
来自: 山东
联系:

mldonkey编译及运行

#1

帖子 lisir » 2007-10-27 9:00

什么是mldonkey?
Mldonkey(mldonkey.sourceforge.net)是一个支持多平台、多协议的p2p下载软件,它支持Linux/Unix/Windows平台,默认支持eDonkey、BitTorrent、FileTP(又称wget)、Fasttrack、Direct Connect协议,其中的FileTP可以下载http、ftp协议的文档。原来支持的Gnutella、Gnutella2、Open Napster、Soulseek、OpenFT现在已经默认放弃支持了。从其支持的协议看,更象是迅雷,而比迅雷更强大。

它的核心是命令行文件,可以通过Web界面、telnet界面、简单Wap界面和GUI界面来操作,刚一上手,多是用GUI界面,而支持mldonkey的GUI界面也有许多,最著名的一个就是Sancho,关于如何使用Sancho,请看zhuqin_83的这个帖子(viewtopic.php?t=42337)。

虽然可以直接下载现成的二进制文件,但我更主张自己编译,性能更好,也更稳定,至少原来我使用下载的二进制文件配合Sancho过程中居然出现了运行中找不到Core了的错误。而编译呢,最新版本莫过于用cvs下载源代码编译的了,这是直接下载的最新源代码。
注:cvs是个版本控制软件,我们只是用它来下载源代码和更新源代码、打补丁。

获取源代码

要想用cvs下载,先得安装它,默认Ubuntu是不安装的:

代码: 全选

sudo apt-get install ssh cvs
MLDonkey CVS检验还需要autoconf和m4:

代码: 全选

sudo apt-get install autoconf
使用CVS获取源代码

代码: 全选

cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/mldonkey co mldonkey
从CVS更新源代码
进入原来下载的mldonkey目录,从CVS更新:

代码: 全选

cd mldonkey
    cvs -q -z3 up -dPA
打补丁:

代码: 全选

cd mldonkey
   patch -p0 -E -s <.../your.patch 
注:
1、“.../your.patch ”是你的补丁文件的路径含文件名。
2、更新源代码、打补丁后都需要重新编译。

编译准备

安装基本编译环境:

代码: 全选

sudo apt-get install gcc g++ libc-dev make
安装编译mldonkey需要的包:

代码: 全选

sudo apt-get install zlib1g-dev libbz2-dev libgd2-noxpm-dev libmagic-dev libpthread-stubs0-dev libgtk2.0-dev libiconv-hook-dev librsvg2-dev libclthreads-dev
上面这些包中,zlib1g-dev libbz2-dev libgd2-noxpm-dev libmagic-dev 是在http://mldonkey.sourceforge.net/CompilationProblems中提到的,后面这几个是我为了打开mldonkey的全部特性摸索出来的,可能有一两个不准确。我没有采用libgd2-noxpm-dev这个包,而是用的libgd2-xpm-dev,一样通过了编译。
另外,Install.txt文件中提到还需要两个包ocaml和lablgtk,这既可以通过

代码: 全选

sudo apt-get install ocaml-nox ocaml-native-compilers
从源里安装ocaml(貌似http://mldonkey.sourceforge.net/CompilationProblems没有提lablgtk的事儿)。

如果有网络,也可以通过先安装wget:

代码: 全选

sudo apt-get install wget
再在./configure时加上--enable-batch让系统自动下载并编译安装这两个包。
配置
前期工作做好了,现在我们准备编译了,建议采用如下参数:

代码: 全选

./configure --enable-batch --enable-pthread-lib
这样一是可以自动下载安装那两个包,再就是可以打开线程支持。
正确配置完,一般最后显示信息如下:
……
Building dependencies (if it blocks, try 'make depend' to see the problem)

Configuring MLDonkey 2.9.2.CVS - SCM: 2007-10-26 22:03:29 completed.

Network modules:
- eDonkey enabled (eMule SUI enabled)
- BitTorrent enabled
- FileTP (aka wget) enabled
- Fasttrack enabled
- Gnutella disabled - unmaintained
- Gnutella2 disabled - unmaintained
- Direct Connect enabled
- Open Napster disabled - currently not usable
- Soulseek disabled - currently not usable
- OpenFT disabled - currently not usable

Core features:
- zlib (required) enabled
- threads enabled
- bzip2 enabled
- iconv enabled
- libmagic enabled
- graphical stats enabled
- png support enabled
- jpg support enabled

Compilers:
- Ocaml version 3.10.0
- gcc version 4.1.3
- g++ version 4.1.3

Now execute 'make' to start compiling. Good luck!

To compile a static code execute: make mlnet.static
To produce a release tarball execute: make release.mlnet.static
To clean the build directory execute: make maintainerclean

Compiling CryptoPP.cc can take several minutes, on slow machines up to half an hour.
关于编译mldonkey自带的GUI界面,可以通过在configure时加一个参数 --enable-gui=newgui2来实现,编译后会在mldonkey目录中出现一个ml**gui(具体文件名记不清了)的文件,不过还是不推荐,自带的Gui比较简陋,也无法设置参数,还是使用Sancho的好,还有zhuqin_83做的中文界面呢。

编译
然后,

代码: 全选

make
好了,现在你应该在你的mldonkey目录中会有一个mlnet的文件了,就是它了。
运行时可以在其所在目录输入命令

代码: 全选

./mlnet
显示
[dMain] Core started
就表明已经成功运行了。

要退出,只需要简单地按Ctrl+C中断这条命令就可以了。

以后如果不想每次都进入这个目录再执行./mlnet,可以将mlnet文件拷贝到系统路径如/usr/bin中:

代码: 全选

sudo cp mlnet /usr/bin

关联

在Firefox中还需要将ed2k协议与mlnet相关联,否则它不知道如何处理,也就是当你点击ed2k的链接时没有反应。

一方面,我们可以手动添加,具体请参考zhuqin_83的帖子,另一方面,我们也可以使用编译时产生的工具,当然我们得再编译一下:
在mldonkey源代码目录下,执行:

代码: 全选

make utils
编译后,会生成一些工具,其中就有我们需要的,在mldonkey/distrib/ed2k_mozilla下有个名为mldonkey_protocol_handler-2.2.xpi的Firefox扩展,我们只要打开Firefox的附加软件窗口,再把这个文件拖动到窗口里安装就可以了。
上次由 lisir 在 2007-10-27 11:59,总共编辑 3 次。
学会看置顶帖、精华帖。
学会使用搜索。
常见问题解答和发帖需知
lisir
帖子: 1187
注册时间: 2006-04-29 14:54
来自: 山东
联系:

#2

帖子 lisir » 2007-10-27 9:07

本文选取翻译了mldonkey.sourceforge.net上的文档的一部分,并结合自己的实践写的。水平不高,欢迎指正。

另,不知为何,使用了mldonkey_protocol_handler-2.2.xpi的Firefox扩后Firefox变慢了(我原来是自己添加协议使用submit提交链接,没有删除)。
学会看置顶帖、精华帖。
学会使用搜索。
常见问题解答和发帖需知
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
联系:

#3

帖子 zhuqin_83 » 2007-10-27 9:49

囗囗囗囗
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
wgsdd
帖子: 153
注册时间: 2007-04-11 17:39

#4

帖子 wgsdd » 2007-10-27 11:09

sudo apt-get install zlib1g-dev libbz2-dev libgd2-noxpm-dev libmagic-dev libpthread-stubs0-dev libgtk2.0-dev libiconv-hook-dev librsvg2-dev libclthread2-dev

最后个应该为libclthreads-dev
lisir
帖子: 1187
注册时间: 2006-04-29 14:54
来自: 山东
联系:

#5

帖子 lisir » 2007-10-27 11:58

wgsdd 写了:sudo apt-get install zlib1g-dev libbz2-dev libgd2-noxpm-dev libmagic-dev libpthread-stubs0-dev libgtk2.0-dev libiconv-hook-dev librsvg2-dev libclthread2-dev

最后个应该为libclthreads-dev
谢谢指正。
学会看置顶帖、精华帖。
学会使用搜索。
常见问题解答和发帖需知
h6120c
帖子: 43
注册时间: 2009-06-02 19:55

Re: mldonkey编译及运行

#6

帖子 h6120c » 2009-06-28 15:02

学习了 :em20
头像
Cherrot
帖子: 981
注册时间: 2011-04-03 10:01
系统: Ubuntu 12.XX
来自: 帝都
联系:

Re: mldonkey编译及运行

#7

帖子 Cherrot » 2011-05-02 21:01

make 出错:

代码: 全选

cherrot@Cherrot-TA880G-HD:/tmp/mldonkey-3.0.7$ make
/tmp/mldonkey-3.0.7/patches/local/bin/ocamlopt -inline 10    -I src/utils/extlib  -I src/utils/cdk  -I src/utils/bitstring  -I src/utils/lib  -I src/utils/ocamlrss  -I src/utils/xml-light  -I src/utils/net  -I tools  -I src/daemon/common  -I src/daemon/driver  -I src/utils/mp3tagui  -I src/config/unix  -I src/networks/direct_connect  -I src/networks/fasttrack  -I src/networks/fileTP  -I src/networks/bittorrent  -I src/networks/donkey -I +camlp4 -c src/daemon/common/commonMain.ml
File "src/daemon/common/commonMain.ml", line 20, characters 0-12:
Error: Unbound module Printf2
make: *** [src/daemon/common/commonMain.cmx] 错误 2
何解?
Ubuntu技巧汇总http://wiki.ubuntu.org.cn/UbuntuSkills --你遇到的各种问题可能已经在里面了
我的技术博客http://www.cherrot.com
Code tells you how, comments should tell you why.
头像
Cherrot
帖子: 981
注册时间: 2011-04-03 10:01
系统: Ubuntu 12.XX
来自: 帝都
联系:

Re: mldonkey编译及运行

#8

帖子 Cherrot » 2011-05-02 21:13

LS的错误我搜了一下,貌似在加上 --enable-force-ocaml即可解决,如下:

代码: 全选

./configure --enable-batch --enable-pthread-lib --enable-force-ocaml
于是我删除makefile执行上述命令,然后make,输出结果如下,还是无法编译……

代码: 全选

/tmp/mldonkey-3.0.7/patches/local/bin/ocamlc   -I src/utils/extlib  -I src/utils/cdk  -I src/utils/bitstring  -I src/utils/lib  -I src/utils/ocamlrss  -I src/utils/xml-light  -I src/utils/net  -I tools  -I src/daemon/common  -I src/daemon/driver  -I src/utils/mp3tagui  -I src/config/unix  -I src/networks/direct_connect  -I src/networks/fasttrack  -I src/networks/fileTP  -I src/networks/bittorrent  -I src/networks/donkey -I +camlp4 -c tools/ocamlpp.ml
/tmp/mldonkey-3.0.7/patches/local/bin/ocamlc -linkall -o ocamlpp.byte \
	     -custom bigarray.cma unix.cma str.cma -ccopt " " -cclib "-lz  " -cclib -lbz2 -ccopt "-pthread" \
	  \
	  \
	  \
	  \
	  \
	  \
	-I build         tools/ocamlpp.cmo  
/bin/sh: /tmp/mldonkey-3.0.7/patches/local/bin/camlp4: not found
make: *** [src/utils/lib/options.ml] 错误 127
已解决!犯了低级错误,放到/tmp下编译却忘记了sudo,在家目录下编译成功
上次由 Cherrot 在 2011-05-07 13:30,总共编辑 1 次。
Ubuntu技巧汇总http://wiki.ubuntu.org.cn/UbuntuSkills --你遇到的各种问题可能已经在里面了
我的技术博客http://www.cherrot.com
Code tells you how, comments should tell you why.
头像
月下叹逍遥
论坛版主
帖子: 33994
注册时间: 2010-10-07 14:23
系统: Archdows10
来自: 某系某星某洲某国某省某市
联系:

Re: mldonkey编译及运行

#9

帖子 月下叹逍遥 » 2011-05-02 21:15

编译……没试过…… :em06
浮生七十今三十,从此凄惶未可知
头像
Cherrot
帖子: 981
注册时间: 2011-04-03 10:01
系统: Ubuntu 12.XX
来自: 帝都
联系:

Re: mldonkey编译及运行

#10

帖子 Cherrot » 2011-05-04 21:20

升级后第一次编译程序,没想到就如此悲剧…… :em20
Ubuntu技巧汇总http://wiki.ubuntu.org.cn/UbuntuSkills --你遇到的各种问题可能已经在里面了
我的技术博客http://www.cherrot.com
Code tells you how, comments should tell you why.
回复