MultiGet 文件下载器



home|首页
screenshots|截图
download|下载 [SSL]
docs|文档
forum|论坛
test report|测试报告

1.如何运行MultiGet文件下载器?
2.如何编译源代码?
3.我还坚持用2.4核心的桌面,能否使用MultiGet?
4.基于GTK+-1.0版本的运行库能否运行 MultiGet?
5.已知可以支持的窗口管理器有哪些?
6.已知有哪些Linux发行版可以运行 MultiGet?
7.如何增加镜像地址?
8.MultiGet是否支持命令行参数?
9.为什么有时候文件下载完成会移动失败?
10.如何批量下载有连续数字的文件?
11.剪贴板的过滤如何设置?系统如何处理?
12.程序中途意外退出怎么办?

问:如何运行MultiGet文件下载器?

答:如果你的桌面环境是GNOME v2.14+ ,核心版本2.6.x,gcc 版本4.x,则一般情况下可以直接运行已经编译好的可执行文件,这个文件放在下载包的binary里,名字是MultiGet- a.b.c.tar.gz,解压这个文件可以得到一个MultiGet文件,如果没有可执行标记,"chmod +x MultiGet" 加一个,然后运行./MultiGet即可,如果正常运行可以自己手工添加到你的桌面菜单里。如果运行出错,请参考下面的编译方法尝试自己编译源码,当前 的PCLinuxOS发行必须自己编译。

如果你用的是KDE或XFACE桌面,则可能需要添加GTK+-2.0运行环境,通常这个包的名字是libgtk+-2.0,安装这个包后即可以照上面的 方法运行了,大多数发行版都会安装好这个环境,但有些发行版则需要自己安装,比如kubuntu 6.06。如果还是不能运行,请参考下面的编译方法自己编译源码。

问:如何编译源代码?

答:Linux环境多种多样,我的编译可能不适合你的配置,所以必要时需要自己编译程序。我的开发环境是ubuntu 6.06, gcc v4.04, wxWidgets v2.6.3,GNOME 2.14。我想你最好使用和我相同的环境来编译。至少gcc要用4.x版本。虽然在我的系统里,用gcc v3.4来编译也没问题,但是我还是不建议用3.x版本的gcc(麒麟系统自带的3.2.3版gcc就不能正常编译wxWidgets,所以不能编译整个 程序)。wxWidgets我没有用ubuntu的安装包来做,而是从官方网站上下载的版本。 ubuntu中的wxWidgets环境似乎是unicode编译版(我还没有确认),我看不出在utf-8编码下使用wxWidgets的 unicode版本有什么优势,事实上会导致utf-8 <=> utf-16反复转换上的效率损失。

如何配置wxWidgets影响到MultiGet文件大小和运行方式,如果是这样配置:
./configure --disable-shared --enable-monolithic --with-gtk=2 --with-libpng=builtin --with-zlib=builtin --with-expat=builtin --with-libtiff=builtin --with-regex=builtin --with-libjpeg=builtin --disable-unicode

则将来的MultiGet是静态连接,体积比较动态连接大2M左右,如果你还同时用aMule等其他基于wxWidgets的程序,可以配置成动态连接

--enable-shared  --disable-monolithic

然后照wxWidgets的说明,make, make install, 也许还要ldconfig.

装好wxWidgets后确认一下,输入"wx-config --cxxflags"看看有没有合理的输出信息。如果有就说明装好了wxWidgets.


接下来进入MultiGet源码目录,直接输入"make",两分钟后就看到编译出了MultiGet。运行./MultiGet就行。

要注意的是,beta3版本及之前的源码,配置wxWidgets中必须带入--disable-unicode,unicode版的wxWidgets不能用来编译MultiGet, beta4版本开始可以采用unicode编译方式。好像linux版的wxGTK缺省配置就是--disable-unicode。目前多数发行版中自带的wxGTK库是unicode编码的。

如果你采用了wxWidgets 2.7.x版本,我不确定是否能编译成功,我没有测试过。


问:我还坚持用2.4核心的桌面,能否使用 MultiGet?

答:MultiGet倾向于支持最新的核心和桌面版本,虽然采用了wxWidgets做界面,但为了效率的原因,不可见部分并没有使用wx的线程和 socket,而且在编写代码时,没有考虑2.4的线程模型的兼容性,我记得2.6核心pthread库函数接口可能和2.4中的不同,也许你可以把 GCC升级到4.x版本试着编译。我没有测试过。

问:基于GTK+-1.0版本的运行库能否运行 MultiGet?

答:至少你要配置wxWidgets成兼容gtk 1.0, --with-gtk=1。但是是否成功要看你运气了,我没测试过,它太老了。

问:已知可以支持的窗口管理器有哪些?

答:GNOME,KDE,XFACE,其他不常用的窗口管理器没有测试过。这主要看wxWidgets是否支持,以及窗口管理器是否有sysicon显 示。程序中使用了sysicon。

问:已知有哪些Linux发行版可以运行 MultiGet?

答:包括ubuntu 5.10+,kubuntu 5.10+,  xubuntu 5.10+, fc5, fc6, opensuse10.2 alpha4, mandriva 2007, MEPIS 6.0, CentOS4.4, Puppy2.0, Xandros, edubuntu, RedFlag workstation 5, MagicLinux2.0, dubuntu, archlinux, Hiweed, rays, PCLinuxOS(源码编译).


问:如何增加镜像地址?

答:如果是在新建任务时需要添加镜像地址,则当新任务窗口已经打开时,拖放镜像地址到拖放小窗口或在浏览器中直接复制连接地址即可,当然,剪贴版设置必须 不能过滤掉这个地址,否则就不能加进来。镜像地址可以是目录,会自动加上你设置的文件尾,也可以是文件地址。如果任务运行中需要加镜像地址,则打开任务属 性窗口,然后操作同上即可。

问:MultiGet是否支持命令行参数?

答:支持如下格式 ./MultiGet url=http://www.sina.com.cn/logo.png refer=http://www.sina.com.cn/
两个参数都是字符串。如需要flashgot配合下载则把flashgot配置成[url=URL] [refer=REFERER],目前不支持flashgot下载全部链接的调用。

9.为什么有时候文件下载完成会移动失败?

答:可能因为你使用了ext3以外的文件系统作为目的存放地,作者只在ext3下做测试,没有在其他文件系统上做测试。不同的文件系统有不同的文件名支持,在ext3下合法的文件名在其他系统上可能是不合法的。

10.如何批量下载含有连续数字的文件?

答:从beta4开始,MultiGet支持批量下载,新建任务时修改主地址的文件尾。以半角中括号括起两个数字,如abc[1-9]. gif,将展开成abc1.gif, abc2.gif ...abc9.gif等9个任务下载。同理 abc[01-09].gif将展开成abc01.gif, abc02.gif ... abc09.gif等9个任务下载。可以把这个表达插在中间,如abc[005-105]cde.png展开成 abc005cde.png, abc006cde.png ... abc105cde.png。由于批量下载的特殊性,镜像地址在这种情况下最好是目录地址,如果是文件地址,则只当第一个展开任务的镜像使用。批量任务共 享其他任务属性。

11.剪贴板的过滤如何设置?

答:可以用英文的逗号、空格、分号来分隔各个要定义的后缀,如 .html,.exe;.gif,不要用多于1个的分割符号来分割,即不要用两个逗号或逗号加空格或其他组合来分割。“忽略的后缀 ”处理优先于“只监视的后缀”,如果两个有重复则不能监视到你想要的后缀,因为先过滤掉了。如果选择了 “只监视的后缀”,则除设定的后缀外其他都不监视。需要注意的是,用复制链接地址的方式添加镜像地址也受过滤规则控制,拖放的方 式不受这个限制。

12.程序中途意外退出怎么办?

答:当前的程序基本稳定,一般不会出现中途崩溃的情况,如果确实出现,任务可能会丢失,但数据保存在.MultiGet隐藏目录中,一个是xxx.mg, 一个是xxx.mgidx,分别是数据文件和索引文件,你只需再次添加任务开始下载就行,一般都可以继续原数据下载。