在MAC OS X下用VMware安装Ubuntu


最近用C++写数据库系统,内存泄露很严重,想要安装内存检测工具valgrind,但是这东西对我的MAC OS X 10.6不太支持,加上一些另外的原因,我决定在MAC下安个Ubuntu。。。。什么,问我安Valgrind的流程?我刚安好Ubuntu,Valgrind还没搞定呢,跟我在mac下安装的问题一样。。。一会在说吧:P  (后续:Valgrind安装流程在本文最后)

在MAC OS X下用VMware安装Ubuntu流程:
1.下载安装Vmware Fusion。上官网下载也行,我从太平洋上下的 http://ftp-dg.pconline.com.cn/pub/download/201006/VMware-Fusion-3.1.0-261058-light.dmg,然后又在百度知道上搜了3.0的序列号:YU2NJ-JVGKY-44N8R-H8Q5Y-0PGE3
安装很简单,一步步来就行了。


2.然后上Ubuntu官网下载ubuntu-10.10-desktop-i386.iso http://www.ubuntu.com/desktop/get-ubuntu/download。下载完是个.iso镜像文件。由于mac系统默认就是使用镜像文件作为安装程序的,所以相比windows下可以省去虚拟光驱的一个步骤~

3.然后就是打开安装好的VMware,首页->在新虚拟机中安装Windows或其他操作系统->不使用光盘继续->使用操作系统安装光盘镜像文件,然后在文件对话框里选择你刚才下载好的Ubuntu系统ISO文件,最后输入密码和选择读写方式然后继续,点击完成就自动开始安装。

4.下面稍微提一下Ubuntu系统的使用。
1)命令行窗口在左上角Applications->Accessories->Terminal。安装一些自带的程序,如Java或C++的编译器时非常方便,直接输入javac,会自动提示你可供安装的包的名字和完整命令行的写法,照着写就能自动下载安装。C++的话,好像要安装g++, gcc, yacc, lex。

2)因为是Linux嘛,有些安装需要有root权限。进入root权限的命令是su root,修改初始密码的命令是sudo passwd root。

3)文件交流。安装完Ubuntu,从虚拟意义上它就是和MAC分开的两个系统。共享他们之间的文件有很多方式,大多需要网络或局域网络。我这里说一个最简单的不需要网络的方法:U盘。呵呵,你插入U盘时系统会问你要连接到MAC还是Linux,你就当连两个不同的机器就好了,拷贝粘贴吧~反正我觉得文件不大时一点也不麻烦,双系统的话用U盘就需要来回重启比较烦人,这个是虚拟的不需要重启。

PS: 我觉得Ubuntu还蛮好用的~ 至今用过最好用的Linux~

Valgrind安装流程
1. 继续上官网http://valgrind.org/downloads/current.html,下完了解压。
2.用命令行进入到解压完的文件夹下,然后输入./configure命令,再然后是make命令,make check命令,最后是make install命令。如果make install不能用,尤其是认真看出错的输出是文件夹建立失败,应该是你没有root权限。输入su root登陆权限,然后再次输入make install就好了~
3.完毕~
4.另外,如果用Valgrind运行程序时出现如下错误:
valgrind:  Fatal error at startup: a function redirection
valgrind:  which is mandatory for this platform-tool combination
valgrind:  cannot be set up.  Details of the redirection are:
valgrind: 
valgrind:  A must-be-redirected function
valgrind:  whose name matches the pattern:      index
valgrind:  in an object with soname matching:   ld-linux.so.2
valgrind:  was not found whilst processing
valgrind:  symbols from the object with soname: ld-linux.so.2
就安装一下Ubuntu的ibc6-dbg包就解决了,在命令行里执行sudo apt-get install libc6-dbg
这个错误是因为为了避免该工具出错,执行时会调用strlen检查,所以一开始不能找到这个函数的话,valgrind就拒绝继续执行。

相关内容