虚拟机安装MacOS教程.docx
《虚拟机安装MacOS教程.docx》由会员分享,可在线阅读,更多相关《虚拟机安装MacOS教程.docx(40页珍藏版)》请在冰豆网上搜索。
虚拟机安装MacOS教程
补充:
1、本文内容已经在WindowsVista+VMwareWorkstation7.0+MACOSXSnowLeopard10.6环境下安装成功!
2、当你在虚拟机里浏览镜像文件时看不到DMG文件,需要点Browse,将文件类型CD-ROMimages(*.iso)改为Allfiles(*.*)。
3、请仔细阅读文中由粗体字标出的部分,忽略这些部分将导致安装失败。
在PC机上安装MACOSX系统有两种方法,一是在硬盘上分区,专门安装MACOSX;二是在现有Windows系统上使用VMWare等虚拟机软件安装。
两种安装方法在网上都有介绍,但第二种方法一般都需要将苹果系统的DMG光盘镜像文件刻录到D9光盘上,不仅让没有刻录条件的同学为难,连我有刻录条件的人也觉的麻烦。
今天我就在这里补充介绍一下使用VMWare安装MACOSX时,无需刻录D9光盘,无转换成ISO格式,直接使用MACOSX的DMG镜像文件进行安装的方法。
安装必备:
硬件:
一台拥有支持虚拟技术的64位双核处理器和2GB以上内存的PC。
软件:
VMWareWorkstation7.0
DMG光盘镜像文件:
苹果操作系统-雪豹10.6
darwin300
darwin300.rar(52K)下载次数:
14173或者RebelEFI
RebelEFI.rar(55K)下载次数:
9744引导光盘ISO镜像文件
首先安装好VMWareWorkstation7.0。
使用File->New->VirtualMachine创建一个虚拟机,在选择操作系统时选择Other->FreeBSD64-bit。
CPU设置1核可以,2核也可以,如果你是双核CPU,建议你分配1个核;内存建议设置为1024MB,如果你的物理内存够大也可以多给些;硬盘最少分配15GB,太小则无法进行安装,如果你还想多装些软件,建议多分配一些。
最后一步可以在CustomizeHardware选项里把软驱删除,因为这个用不上。
创建好之后,需要你在刚建立的虚拟机目录下找到一个扩展名为.vmx的文件,用记事本打开,找到guestOS="freebsd-64"一行,将引号里的freebsd-64改为darwin10,改完是guestOS="darwin10",保存修改后的文件。
做了这一步,在这个虚拟机的Options->General选项下就可以看到操作系统版本显示为:
MACOSXServer10.6,如下图所示。
仍显示为FreeBSD64-bit的需要重启一下VMWare。
如果运行不了后面介绍的MACOSX安装程序,很可能是忽略了这步或者修改错了。
接下来我们就要开始安装了。
安装的第一步是用Darwin.iso或者RebelEFI.iso镜像进行引导。
先装载镜像文件:
在刚才建立的虚拟机Settings->Hardware中,选择CD/DVD(IDE)设备,选择右侧的UseISOimagefile,点Browse加载Darwin.iso或者RebelEFI.iso。
装载完镜像文件后,现在启动虚拟机。
先演示使用RebelEFI镜像启动,引导完成后就能看到如下图的界面:
按照屏幕提示等待10秒或者按'1'键,选择当前光盘驱动器。
此时会出现如下图所示的界面:
这里提示请插入MACOSX的DVD光盘。
此时我们再次打开这个虚拟机的Settings->Hardware,找到CD/DVD(IDE)设备(你可以双击VMWare窗口右下角的光盘图标来快速打开,如图:
),将刚才的RebelEFI镜像替换为苹果系统的DMG镜像;点Browse,将文件类型CD-ROMimages(*.iso)改为Allfiles(*.*)就能浏览到DMG文件了。
这里有一个关键地方:
选择DMG镜像文件后,将下图所示Devicestatus里的Connected前打上勾(否则不能进入安装界面),然后确定。
此时,我们便进入了MACOSX的安装程序准备阶段。
有的同学使用RebelEFI引导可能会出现禁止符号,无法安装,如下图所示:
遇到这个问题可以使用Darwin镜像替换RebelEFI,并重新启动虚拟机。
在出现下图所示界面后,在CD/DVD(IDE)设备里将Darwin镜像改为苹果的DMG镜像即可,同样记得给“Connected”选项打勾。
雷世尧标注:
ThinkpadT4002767Lu1无法使用REBEL,使用Darwin时没有图形界面,出现插入光驱提示符后更换虚拟光盘即可,安装过程可能需要重启一次,按原方法操作即可
经过一阵准备阶段就进入了苹果系统的安装过程,如下图所示:
在这里特别提一下,有的同学在进行到选择安装盘的步骤时看不到硬盘选项,不要着急,在屏幕上方的菜单中找到“实用工具”->“磁盘工具”,如图所示:
对你的虚拟硬盘执行“抹掉”操作,如图所示:
操作完成后关闭“磁盘工具”窗口就OK了,如图所示:
根据你的电脑配置不同,大概进行几十分钟的安装,你就可以用上苹果操作系统了。
看到下图的界面,表示你的系统已经安装完成,需要重新启动。
重新启动前你要特别注意,先要去掉安装时在CD/DVD(IDE)设备上加载的苹果DMG镜像,换上Darwin或者RebelEFI引导镜像,否则你将不能成功引导安装好的MACOSX系统。
补充:
1、本文内容已经在WindowsVista+VMwareWorkstation7.0+MACOSXSnowLeopard10.6环境下安装成功!
2、当你在虚拟机里浏览镜像文件时看不到DMG文件,需要点Browse,将文件类型CD-ROMimages(*.iso)改为Allfiles(*.*)。
3、请仔细阅读文中由粗体字标出的部分,忽略这些部分将导致安装失败。
在PC机上安装MACOSX系统有两种方法,一是在硬盘上分区,专门安装MACOSX;二是在现有Windows系统上使用VMWare等虚拟机软件安装。
两种安装方法在网上都有介绍,但第二种方法一般都需要将苹果系统的DMG光盘镜像文件刻录到D9光盘上,不仅让没有刻录条件的同学为难,连我有刻录条件的人也觉的麻烦。
今天我就在这里补充介绍一下使用VMWare安装MACOSX时,无需刻录D9光盘,无转换成ISO格式,直接使用MACOSX的DMG镜像文件进行安装的方法。
安装必备:
硬件:
一台拥有支持虚拟技术的64位双核处理器和2GB以上内存的PC。
软件:
VMWareWorkstation7.0
DMG光盘镜像文件:
苹果操作系统-雪豹10.6
darwin300
darwin300.rar(52K)下载次数:
14173或者RebelEFI
RebelEFI.rar(55K)下载次数:
9744引导光盘ISO镜像文件
首先安装好VMWareWorkstation7.0。
使用File->New->VirtualMachine创建一个虚拟机,在选择操作系统时选择Other->FreeBSD64-bit。
CPU设置1核可以,2核也可以,如果你是双核CPU,建议你分配1个核;内存建议设置为1024MB,如果你的物理内存够大也可以多给些;硬盘最少分配15GB,太小则无法进行安装,如果你还想多装些软件,建议多分配一些。
最后一步可以在CustomizeHardware选项里把软驱删除,因为这个用不上。
创建好之后,需要你在刚建立的虚拟机目录下找到一个扩展名为.vmx的文件,用记事本打开,找到guestOS="freebsd-64"一行,将引号里的freebsd-64改为darwin10,改完是guestOS="darwin10",保存修改后的文件。
做了这一步,在这个虚拟机的Options->General选项下就可以看到操作系统版本显示为:
MACOSXServer10.6,如下图所示。
仍显示为FreeBSD64-bit的需要重启一下VMWare。
如果运行不了后面介绍的MACOSX安装程序,很可能是忽略了这步或者修改错了。
接下来我们就要开始安装了。
安装的第一步是用Darwin.iso或者RebelEFI.iso镜像进行引导。
先装载镜像文件:
在刚才建立的虚拟机Settings->Hardware中,选择CD/DVD(IDE)设备,选择右侧的UseISOimagefile,点Browse加载Darwin.iso或者RebelEFI.iso。
装载完镜像文件后,现在启动虚拟机。
先演示使用RebelEFI镜像启动,引导完成后就能看到如下图的界面:
按照屏幕提示等待10秒或者按'1'键,选择当前光盘驱动器。
此时会出现如下图所示的界面:
这里提示请插入MACOSX的DVD光盘。
此时我们再次打开这个虚拟机的Settings->Hardware,找到CD/DVD(IDE)设备(你可以双击VMWare窗口右下角的光盘图标来快速打开,如图:
),将刚才的RebelEFI镜像替换为苹果系统的DMG镜像;点Browse,将文件类型CD-ROMimages(*.iso)改为Allfiles(*.*)就能浏览到DMG文件了。
这里有一个关键地方:
选择DMG镜像文件后,将下图所示Devicestatus里的Connected前打上勾(否则不能进入安装界面),然后确定。
此时,我们便进入了MACOSX的安装程序准备阶段。
有的同学使用RebelEFI引导可能会出现禁止符号,无法安装,如下图所示:
遇到这个问题可以使用Darwin镜像替换RebelEFI,并重新启动虚拟机。
在出现下图所示界面后,在CD/DVD(IDE)设备里将Darwin镜像改为苹果的DMG镜像即可,同样记得给“Connected”选项打勾。
经过一阵准备阶段就进入了苹果系统的安装过程,如下图所示:
在这里特别提一下,有的同学在进行到选择安装盘的步骤时看不到硬盘选项,不要着急,在屏幕上方的菜单中找到“实用工具”->“磁盘工具”,如图所示:
对你的虚拟硬盘执行“抹掉”操作,如图所示:
操作完成后关闭“磁盘工具”窗口就OK了,如图所示:
根据你的电脑配置不同,大概进行几十分钟的安装,你就可以用上苹果操作系统了。
看到下图的界面,表示你的系统已经安装完成,需要重新启动。
重新启动前你要特别注意,先要去掉安装时在CD/DVD(IDE)设备上加载的苹果DMG镜像,换上Darwin或者RebelEFI引导镜像,否则你将不能成功引导安装好的MACOSX系统。
附录资料:
不需要的可以自行删除
libxml2应用实例
Libxml2是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MITLicense的免费开源软件。
它除了支持c语言版以外,还支持c++、PHP、Pascal、Ruby、Tcl等语言的绑定,能在Windows、Linux、Solaris、MacOsX等平台上运行。
功能还是相当强大的,相信满足一般用户需求没有任何问题。
二、Libxml2安装:
一般如果在安装系统的时候选中了所有开发库和开发工具的话(FedoraCore系列下),应该不用安装,下面介绍一下手动安装:
1)从xmlsoft站点或ftp(ftp.xmlsoft.org)站点下载libxml压缩包(libxml2-xxxx.tar.gz)
2)对压缩包进行解压缩 tarxvzflibxml2-xxxx.tar.gz
3)进入解压缩后的文件夹中运行
./configure--prefix/home/user/myxml/xmlinst(此处为待安装的路径)或者直接使用./configure
make
makeinstall
4) 添加路径
exportPATH=/home/user/myxml/xmlinst/bin:
$PATH
说明:
为了结构清晰,最好将libxml2不安装在解压目录中。
安装完成后就可以使用简单的代码解析XML文件,包括本地和远程的文件,但是在编码上有一些问题。
Libxml默认只支持UTF-8的编码,无论输入输出都是UTF-8,所以如果你解析完一个XML得到的结果都是UTF-8的,如果需要输出GB2312或者其它编码,需要ICONV来做转码(生成UTF-8编码的文件也可以用它做),如果系统中没有安装iconv的话,需要安装libiconv。
1)下载libiconv压缩包(例如libiconv-1.11.tar.gz)
2)对压缩包进行解压缩 tarxvzflibiconv-1.11.tar.gz
3)进入解压缩后的文件夹中运行
./configure
make
makeinstall
三、关于XML:
在开始研究Libxml2库之前,先了解一下XML的相关基础。
XML是一种基于文本的格式,它可用来创建能够通过各种语言和平台访问的结构化数据。
它包括一系列类似HTML的标记,并以树型结构来对这些标记进行排列。
例如,可参见清单1中介绍的简单文档。
为了更清楚地显示XML的一般概念,下面是一个简化的XML文件。
清单1.一个简单的XML文件
xmlversion="1.0"encoding="UTF-8"?
>
root
delete
10
清单1中的第一行是XML声明,它告诉负责处理XML的应用程序,即解析器,将要处理的XML的版本。
大部分的文件使用版本1.0编写,但也有少量的版本1.1的文件。
它还定义了所使用的编码。
大部分文件使用UTF-8,但是,XML设计用来集成各种语言中的数据,包括那些不使用英语字母的语言。
接下来出现的是元素。
一个元素以开始标记开始(如),并以结束标记结束(如),其中使用斜线(/)来区别于开始标记。
元素是Node的一种类型。
XML文档对象模型(DOM)定义了几种不同的Nodes类型,包括:
Elements(如files或者age)
Attributes(如units)
Text(如root或者10)
元素可以具有子节点。
例如,age元素有一个子元素,即文本节点10。
XML解析器可以利用这种父子结构来遍历文档,甚至修改文档的结构或内容。
LibXML2是这样的解析器中的其中一种,并且文中的示例应用程序正是使用这种结构来实现该目的。
对于各种不同的环境,有许多不同的解析器和库。
LibXML2是用于UNIX环境的解析器和库中最好的一种,并且经过扩展,它提供了对几种脚本语言的支持,如Perl和Python。
四、 Libxml2中的数据类型和函数
一个函数库中可能有几百种数据类型以及几千个函数,但是记住大师的话,90%的功能都是由30%的内容提供的。
对于libxml2,我认为搞懂以下的数据类型和函数就足够了。
1) 内部字符类型xmlChar
xmlChar是Libxml2中的字符类型,库中所有字符、字符串都是基于这个数据类型。
事实上它的定义是:
xmlstring.h
typedefunsignedcharxmlChar;
使用unsignedchar作为内部字符格式是考虑到它能很好适应UTF-8编码,而UTF-8编码正是libxml2的内部编码,其它格式的编码要转换为这个编码才能在libxml2中使用。
还经常可以看到使用xmlChar*作为字符串类型,很多函数会返回一个动态分配内存的xmlChar*变量,使用这样的函数时记得要手动删除内存。
2) xmlChar相关函数
如同标准c中的char类型一样,xmlChar也有动态内存分配、字符串操作等相关函数。
例如xmlMalloc是动态分配内存的函数;xmlFree是配套的释放内存函数;xmlStrcmp是字符串比较函数等等。
基本上xmlChar字符串相关函数都在xmlstring.h中定义;而动态内存分配函数在xmlmemory.h中定义。
3) xmlChar*与其它类型之间的转换
另外要注意,因为总是要在xmlChar*和char*之间进行类型转换,所以定义了一个宏BAD_CAST,其定义如下:
xmlstring.h
#defineBAD_CAST(xmlChar*)
原则上来说,unsignedchar和char之间进行强制类型转换是没有问题的。
4)文档类型xmlDoc、指针xmlDocPtr
xmlDoc是一个struct,保存了一个xml的相关信息,例如文件名、文档类型、子节点等等;xmlDocPtr等于xmlDoc*,它搞成这个样子总让人以为是智能指针,其实不是,要手动删除的。
xmlNewDoc函数创建一个新的文档指针。
xmlParseFile函数以默认方式读入一个UTF-8格式的文档,并返回文档指针。
xmlReadFile函数读入一个带有某种编码的xml文档,并返回文档指针;细节见libxml2参考手册。
xmlFreeDoc释放文档指针。
特别注意,当你调用xmlFreeDoc时,该文档所有包含的节点内存都被释放,所以一般来说不需要手动调用xmlFreeNode或者xmlFreeNodeList来释放动态分配的节点内存,除非你把该节点从文档中移除了。
一般来说,一个文档中所有节点都应该动态分配,然后加入文档,最后调用xmlFreeDoc一次释放所有节点申请的动态内存,这也是为什么我们很少看见xmlNodeFree的原因。
xmlSaveFile将文档以默认方式存入一个文件。
xmlSaveFormatFileEnc可将文档以某种编码/格式存入一个文件中。
5) 节点类型xmlNode、指针xmlNodePtr
节点应该是xml中最重要的元素了,xmlNode代表了xml文档中的一个节点,实现为一个struct,内容很丰富:
tree.h
typedefstruct_xmlNodexmlNode;
typedefxmlNode*xmlNodePtr;
struct_xmlNode{
void *_private;/*applicationdata*/
xmlElementType type; /*typenumber,mustbesecond!
*/
constxmlChar *name; /*thenameofthenode,ortheentity*/
struct_xmlNode*children; /*parent->childslink*/
struct_xmlNode*last; /*lastchildlink*/
struct_xmlNode*parent;/*child->parentlink*/
struct_xmlNode*next; /*nextsiblinglink */
struct_xmlNode*prev; /*previoussiblinglink */
struct_xmlDoc *doc;/*thecontainingdocument*/
/*Endofcommonpart*/
xmlNs *ns; /*pointertotheassociatednamespace*/
xmlChar *content; /*thecontent*/
struct_xmlAttr*properties;/*propertieslist*/
xmlNs *nsDef; /*namespacedefinitionsonthisnode*/
void *psvi;/*fortype/PSVIinformations*/
unsignedshort line; /*linenumber*/
unsignedshort extra; /*extradataforXPath/XSLT*/
};
可以看到,节点之间是以链表和树两种方式同时组织起来的,next和prev指针可以组成链表,而parent和children可以组织为树。
同时还有以下重要元素:
● 节点中的文字内容:
content;
● 节点所属文档:
doc;
● 节点名字:
name;
● 节点的namespace:
ns;
● 节点属性列表:
properties;
Xml文档的操作其根本原理就是在节点之间移动、查询节点的各项信息,并进行增加、删除、修改的操作。
xmlDocSetRootElement函数可以将一个节点设置为某个文档的根节点,这是将文档与节点连接起来的重要手段,当有了根结点以后,所有子节点就可以依次连接上根节点,从而组织成为一个xml树。
6) 节点集合类型xmlNodeSet、指针xmlNodeSetPtr
节点集合代表一个由节点组成的变量,节点集合只作为Xpath的查询结果而出现(XPATH的介绍见后面),因此被定义在xpath.h中,其定义如下:
/*
*Anode-set(anunorderedcollectionofnodeswithoutduplicates).
*/
typedefstruct_xmlNodeSetxmlNodeSet;
typedefxmlNodeSet*xmlNodeSetPtr;
struct_xmlNodeSet{
intnodeNr; /*numberofnodesintheset*/
intnode