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,分别是数据文件和索引文件,你只需再次添加任务开始下载就行,一般都可以继续原数据下载。