标签 开源 下的文章

又获Ubuntu 7.10光盘

Mark Shuttleworth,Ubuntu的创始人,给了Ubuntu爱好者一个免费获取Ubuntu光盘的机会,自从去年年初收到一次Ubuntu 5.10的光盘后,昨天我又拿到了最新的Ubuntu 7.10的光盘。

去年的光盘数目很多,估计当时的Canonical是为了扩大自己的linux distribution的影响,在"shipit"页面上鼓励你多多索取光盘。也正如Canonical所期望的,我将大部分光盘都分给了周围的同事和朋友了,也算帮Ubuntu进行了一次"推广"工作了:) 而这次我申请光盘时,其网站上提供的标准选择就是一张PC CD和一张64-bit PC CD了。当然你也可以选择索取更多,但是页面上会提醒你索取非标准选项的光盘数目,邮递周期会长达6-10 weeks。我选择了标准选项。从提交订单到拿到光盘,好像只用了3 weeks的时间。


Ubuntu包裹(包裹中有ubuntu logo的贴纸)

Ubuntu 7.10光盘被设计成为了LiveCD,就是说你可以不用安装linux就可以从CD启动使用Ubuntu linux。方法很简单:将光盘放入光驱,重启computer,注意BIOS设置中要将光盘驱动器放到启动设备列表的最前面。Ubuntu光盘启动后界面和XP很相似,黑底屏幕中央一个Ubuntu的logo以及闪烁的进度条。由于需要将光盘映像读入内存,所以这个过程比较慢。等Ubuntu的桌面展现在你的面前时,你就可以试用Ubuntu了,浏览网页、编辑文档等等均可以做到,所以试用后你再决定是否要安装Ubuntu也不为晚也。


Ubuntu LiveCD引导界面


Ubuntu内核加载(与WinXP启动界面形似吧)


Ubuntu桌面 (点击桌面上的install图标即开始安装Ubuntu)


贴上Ubuntu标签的本本

在Solaris上编译Ethereal的注意事项

自从上次'编译Ethereal On Windows'之后,好久没有接触Ethereal了,前期策划的基于Ethereal开发的一个工具的任务就落到了这批来的一个新员工的头上了。第一阶段他在Windows上开发了一个基于Ethereal的插件用于分析CMPP协议之用;第二个阶段我们需要移植到Unix上,我们使用的是Solaris。

目标机器是一个x86的Solaris10的系统,首先是将Ethereal依赖的所有开源包都先装上。开源的唯一不好的一点就是互相依赖太多,像Ethereal这样规模的软件,依赖的包不下十几种。这里我们用的源码包是ethereal-0.99.0。按照常规编译软件包的方法:解包=>进入Ethereal目录=>执行./configure => make。

如果想一次make成功显然是不太可能的。

我的那个新同事第一次make得到如下结果:
libtool: link: only absolute run-paths are allowed,他查找了好久,终于"投降"了。由于是新同事对Unix上繁芜复杂的操作不了解也是情有可原的,亲自出马吧。

我对libtool同样是不熟悉,到网上找答案吧。网上关于这个错误的解释太少了。只能用"only absolute run-paths are allowed"在libtool这个脚本文件里搜索,果然找到了,有两个地方有这样的echo输出。大致检查了一下,基本定位问题所在:在libtool执行的语句中,有类似"-R../lib"这样的参数选项,显然这个"../lib"不是一个绝对路径,我们需要针对这个地方进行一下手工修改。

目标就是Makefile文件。打开Makefile搜寻"../lib",一共有4处,分别在SNMP_LIBS、ethereal_LDADD、tethereal_LDADD和dftest_LDADD的定义中,在其中删除"-R../lib"或者为-R指定一个绝对路径即可。

问题解决,继续Make。还是没有过去,提示:在"/usr/sfw/lib/.libs下找不到libnetsnmp.so",Makefile中明明配置的是/usr/sfw/lib,且该路径下存在libnetsnmp.so,为什么libtool非要到"/usr/sfw/lib/.libs"下找呢?libtool就是这样一个怪脾气,没办法,创建/usr/sfw/lib/.libs路径,并将libnetsnmp.so拷贝进去,在Make这块就过去了。

问题仍然层出不穷,程序在链接tethereal的时候,提示:ld: fatal: Symbol referencing errors. No output written to .libs/tethereal
Undefined                       first referenced
 symbol                             in file
gsm_a_pd_str                        tap-gsm_astat.o
RegistrationRejectReason_vals       tap-h225counter.o
register_all_protocol_handoffs      tethereal.o

继续在网上搜索,还好有类似的问题别人也遇到了,解决方法:将epan/dissectors/.libs/libdissectors.a加到Makefile中多个变量的定义中。下面是详细的修改:
(1)
tethereal_additional_libs = \
        wiretap/libwiretap.la           \
        epan/libethereal.la

=>

tethereal_additional_libs = \
        wiretap/libwiretap.la           \
        epan/libethereal.la \
        epan/dissectors/.libs/libdissectors.a \

(2)
dftest_additional_libs = \
        wiretap/libwiretap.la           \
        epan/libethereal.la \
=>
dftest_additional_libs = \
        wiretap/libwiretap.la           \
        epan/libethereal.la \
        epan/dissectors/.libs/libdissectors.a
(3)
dumpcap_LDADD = \
        $(dumpcap_additional_libs)      \
        -lgmodule-2.0 -lglib-2.0                        \
        -lpcap
=>
dumpcap_LDADD = \
        $(dumpcap_additional_libs)      \
        -lgmodule-2.0 -lglib-2.0                        \
        -lpcap -lsocket -lnsl
(4)
ethereal_additional_libs = \
        gtk/libui.a             \
        wiretap/libwiretap.la   \
        epan/libethereal.la \
=>
ethereal_additional_libs = \
        gtk/libui.a             \
        wiretap/libwiretap.la   \
        epan/libethereal.la \
        epan/dissectors/.libs/libdissectors.a \
这回你再make,哇,编译成功了。

然后敲入make install安装这个ethereal,在Windows上启动Xmanager(trial版),连接到目标服务器,用root登录(如果没有root权限,是看不到网卡的,也就不能进行协议分析了)。进入/usr/local/bin,在这里我只发现了tethereal这个程序,执行起来也没有问题,但是那个图形界面的ethereal哪里去了。翻看install的日志,发现根本没有安装ethereal。怎么回事?

继续网上找答案,很快答案找到了:是否编译安装ethereal是configure决定的。在configure的执行日志我看到:
The Ethereal package has been configured with the following options.
                    Build ethereal : no
                   Build tethereal : yes
                    Build capinfos : yes
                     Build editcap : yes
                     Build dumpcap : yes
                    Build mergecap : yes
                   Build text2pcap : yes
                     Build idl2eth : yes
                     Build randpkt : yes
                      Build dftest : yes

显然Build ethereal : no。网上的理由是:GTK+版本安装不当。从configure日志看到:
checking for GTK+ – version >= 2.0.0… no
*** Could not run GTK+ test program, checking why…
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GTK+ is incorrectly installed.

这时只能重新检查GTK+,甚至是重新安装GTK+。

搞定这个后,再重新configure,注意别忘了备份上述对Makefile的修改,否则configure会覆盖你的成果。之后的工作这里就不说了。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats