由于现在是大四了,一直想为开源做一些贡献。所以,刚开始就选择了wine开发者。不过,我现在还没有真正的成为wine的开发者。也就是刚开始想做点东西,刚刚开始入门,记录一下自己的经历。所以,文章中如果有什么说的不好的或者是讲的不对的,请大家指出,定会好好修正,谢谢大家。
刚开始想要成为wine的开发者的时候,不知道如何下手。所以,我就进入了wine的官网:http://wiki.winehq.org/。
首先我通过wine的wiki,进一步了解了wine。我们很多人都会把wine想象成虚拟机或者是模拟器。其实wine这两个都不是。wine的名称来源于”wine is not emulator”,即wine不是模拟器。wine是能够在Linux,Mac,FreeBSD和solaris中运行windows程序的工具。wine是自由软件(free software).那么在不修改windows应用程序的情况下,wine是如何运行windows应用程序的呢?
1:wine如何运行应用程序
wine运用的是api转换技术做出Linux对应到windows相应的函数来调用DLL来运行windows应用程序。
2:成为开发者的第一步
如果想成为开发者,首先需要获得wine的最新的源代码,如何获取最新的源代码呢?
wine被托管在github上,我们可以直接使用git将最新的wine源代码下载下来:
git clone git://source.winehq.org/git/wine.git wine-git
然后,我们进入wine-git目录,使用下面的命令:
./config
注意,如果要编译64位的wine,在config的后面需要使用下面的选项:
./config --enable-win64
使用这个命令,他会帮助你检测一些你的系统中不存在的一些依赖,他就会报错,每当报错一个,你就使用apt-get命令来安装相应的库就可以了。
下面我来列举一个我遇到的比较难解决的一个库,我在使用上面的命令的时候,由于我的系统是64位的,需要安装一些32位的库。我在config的时候,遇到这样一个问题。
configure: error: FreeType 32-bit development files not found. Fonts will not be built.
Use the --without-freetype option if you really want this.
遇到这样的问题,一般有两个解决办法;
1:第一个解决办法就是像上面提供的”Use the –without-freetype option if you really want this.”使用”–without-freetype”,即”./config –without-freetype”来忽略这个问题
2:第二个解决办法,就是安装freetype库。而且他提示是安装32位的freetype库。那么我们如何知道该库的名称呢?我们可以这样:
我们使用 sudo apt-get install libfreetype,到这里,我们使用tab按键来搜索相应的库,tab出来之后,有好几个,但是一般是-dev后缀的是我们需要的,所以,我们就找到这个了libfreetype6-dev,但是,我们需要安装32位的库,这个比较简单,只需在库后面添加”:i386”即可,所以,最终的解决方案就是这样的:
sudo apt-get install libfeetype6-dev:i386
等待安装好了,接着进行config。
等待config完成之后,我们就可以编译我们的wine了:
make
等待编译完成,我们就能够安装使用了:
sudo make install
在安装完成之后,我们需要做的第一步工作就是需要配置我们的wine,那么就需要使用winecfg命令进行配置,当启动winecfg的时候,他会自动检测用户系统中还没有安装的库,自动下载安装,我们选择是 。下载安装完成之后,就进入wine的配置界面了,我们将系统设置为windows xp或者是windows 7,都可以。
但是有些用户在 打开winecfg的时候,可能会吓一跳,因为上面所有的文字都乱码了,特别是中文。那么我们应该如何配置呢?
我来说一个办法:
1:复制windows中的C:/windows/Fonts中的simsun.ttc复制到~/.wine/drive_c/windows/fonts中
2:使用下面的命令打开文件:
gedit ~/.wine/system.reg
打开之后,搜索LogPixels,将其中的:
“LogPixels”=dword:00000060
改为:
“LogPixels”=dword:00000070
所搜:FontSubstitutes
将其中的:
“MS Shell Dlg”=”Tahoma”
“MS Shell Dlg 2″=”Tahoma”
改为:
“MS Shell Dlg”=”SimSun”
“MS Shell Dlg 2″=”SimSun”
3:新建一个zh.reg文件,使用gedit打开:
gedit zh.reg
4:将下面的内容复制下来:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Arial"="simsun"
"Arial CE,238"="simsun"
"Arial CYR,204"="simsun"
"Arial Greek,161"="simsun"
"Arial TUR,162"="simsun"
"Courier New"="simsun"
"Courier New CE,238"="simsun"
"Courier New CYR,204"="simsun"
"Courier New Greek,161"="simsun"
"Courier New TUR,162"="simsun"
"FixedSys"="simsun"
"Helv"="simsun"
"Helvetica"="simsun"
"MS Sans Serif"="simsun"
"MS Shell Dlg"="simsun"
"MS Shell Dlg 2"="simsun"
"System"="simsun"
"Tahoma"="simsun"
"Times"="simsun"
"Times New Roman CE,238"="simsun"
"Times New Roman CYR,204"="simsun"
"Times New Roman Greek,161"="simsun"
"Times New Roman TUR,162"="simsun"
"Tms Rmn"="simsun"
5:保存,退出,使用下面的命令:
regedit zh.reg
注意:有点报错没有关系
6:打开我们的winecfg看一看,很漂亮
到这里,我们已经将我们的wine编译完成并且安装ok了。那么后面我们就需要每天进行下面的操作:
git fetch
git rebase origin
./configure && make depend && make
来获取最新的代码。
好了,这里就先到这里了,后面再学习一个wine