此文凝聚笔者不少心血请尊重笔者劳动,转载请注明出处,侵权必究http://freeze.blog.51cto.com/

个人小站刚上线,http://www.linuxwind.com  欢迎大家访问.

 忙了一些日子,笔者可以静下心把这篇博客写完,跟大家分享。有朋友期待好久了吧?:-)

笔者演示的环境为fedora 14 内核版本为2.6.35.10-74.fc14.i686 关闭selinux

所安装的开发组件有:GNOME 软件开发   Java 开发  Perl 开发  X 软件开发  开发工具  开发程序库 XFCE 软件开发   传统软件开发

介绍中有好多应用软件大多在ubuntu上应用,fedora 14上笔者尝试也可以正常使用,以下应用软件不全是依赖wine,好多还是linux桌面应用的源代码包编译安装,本文的目的是打造一个linux桌面应用能够一定程度上windows桌面,使得linux爱好者可以有自己真实的操作环境而且还不局现于windows的特性,不局限于只使用虚拟机,笔者为了方便阐述,笔者介绍不分顺序,如有阐述不到位的地方,请朋友们指出。

首先简单介绍下,在linux系统上实现以上图片展示的某些软件,主要利用了一款工具程式的软体wine

一.wine 的简介

 

“WINE 代表 Wine Is Not an Emulator(即,Wine 不是一个仿真器)。更确切地说,Wine 是 X 和 UNIX 之上对 Windows API 的一个开放源代码实现。您可以认为它是一个 Window 兼容层。Wine 不需要 Microsoft Windows,因为它是由 100% 非 Microsoft 代码构成的另一个实现。但是它可以使用本机系统 DLL,只要这些 DLL 可用。而且它可以让您在 Linux 或者其他类 UNIX 操作系统之上运行大部分 Windows 软件。”

Wine使得在任何“类Unix”操作系统(特别是在Linux)上运行Windows程序成为可能。在其核心,Wine是一个Windows应用程序接口(API)库,作为一个Windows程序和Linux之间的桥梁。Wine是一个兼容层,当Windows程序尝试执行一个通常情况下Linux不能理解的功能(函数),Wine将把该程序的指令翻译成Linux能够理解的指令。 通俗的说,wine其实就是一个可以方便的在linux系统下运行属于windows程序的程序。

Wine 如何工作


既然我们已经理解了 Wine 的基本原理,让我们更详细地来研究 Wine 能够做什么。本文中,我们讨论的是 Wine 在纯 Linux 上的安装,没有任何 Windows 分区。

  1. Windows 可执行文件: 
    Wine 完全支持 Windows 可执行文件( .exe 和 DLL)的二进制加载。
  2. DLL: 
    Wine 有几百个 Windows DLL 的内部实现 -- 不过,其中没有多少是完全的实现。例如,包含有用户界面相关函数的 userd32.dll 在开放源代码的 Wine 中实现了 92%。
  3. COM: 
    这是一种几乎被所有的大型 Windows 应用程序所使用的 Windows 技术,它支持诸如将一个 Excel 电子数据表嵌入到 Word 文档中等功能。这一技术得到了 Wine 的很好的支持。
  4. 注册表: 
    这是另一个几乎任何一个 Windows 应用程序都会使用的关键技术,Wine 实现了大约 90% 的 Windows 注册表管理 API。
  5. 核心功能: 
    核心系统功能也得到了特别好的支持。如前面提到的,尽管 Linux 和 Windows 之间存在区别,但是基本的层次上还有很多类似之处,因此与进程、线程、文件和消息队列相关的核心系统 API 得到了近乎完美的支持。
  6. 音频和视频: 
    Wine 支持 Windows 音频和视频文件的运行(还可以使用 Windows 媒体播放器)。
  7. 打印: 
    也得到了支持,可以从一个在 Wine 中运行的 Windows 应用程序进行打印。
  8. ODBC: 
    Wine 支持那些需要通过 ODBC 访问数据库的 Windows 应用程序。
  9. 调试: 
    Wine 有一个非常健壮和强大的内置调试器,除了支持标准的调试功能外,它还为调试运行于 Linux 上的 Windows 二进制程序进行了定制。它是 Wine 为其开发者提供的最重要工具之一。Wine 还有一个设计完备的追踪和记录日志的模块,可以帮助调试。我们之所以强调这一点,原因在于,尽管框架是健壮的,但是,当在 Wine 中安装和运行 Windows 应用程序时有很多不确定因素,在使用开放源代码的 Wine 时迟早会停下来进行调试。

 

简单介绍完原理,下面就开始安装吧。

 首先下载wine的源码包,目前最新的版本是1.3.9笔者习惯用较为稳定的版本1.2.1,笔者做过测试,1.3.9版本的包在安装IE6.0的时候总是报错,所以笔者用1.2.1版本做演示。

安装包的下载地址直接google搜索wine-1.2.1 有很多

笔者用的是wine-1.2.1.tar.bz2

1. tar jxvf wine-1.2.1.tar.bz2               #解压缩wine到当前目录

2. cd wine-1.2.1                             #进入目录

3. ./configure                   # 检测系统当前是否有安装编译源代码必须的软件包,并根据具体计算机环境和configure后面附加的参数生成Makefile文件。可以加一些参数来控制,后面附加的参数,笔者用默认,如果中间报错,会提示你你的哪些库文件缺失,找到相应的开发包,装上即可。编译完成会提示你执行make命令。

4. make                          #编译,需要等好长一段时间,编译是在cpu中进行的,机子会很慢

5. make install                  #编译安装

执行完后,如果没有报什么错,就说明安装成功了,下面开始装一些wine运行其他平台所需要的一些库组件。

 

获取最新的WineTricks

WineTricks 是 Wine的其中一个开发者DanKegel写的一个安装Windows有关库和软件的小程序。

wget http://www.kegel.com/wine/winetricks

 

终端下运行

sh winetricks msxml3 gdiplus riched20 riched30 ie6 vcrun6 vcrun2005sp1 flash wenquanyi

 

之后会安装一些程序,出现安装界面一直点下一步就行了,等待上一段时间。如果中间出现以上界面,则执行

yum install cabextract     #yum大家应该很熟悉了,不过多介绍,可以用163的yum源 

在终端运行

regedit

打开注册表,打开[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes]

MS Shell Dlg = wenquanyi

MS Shell Dlg 2 = wenquanyi

Tahoma = wenquanyi (这个没有手动新建字符串)

至此,wine基本组件已经安装完毕,下面做一下简单配置,在终端执行

winecfg

 

       

#做如图配置,主要是把d盘设置到/opt目录下,以后软件都装在此处,方便查找,点一下自动侦测就能检测到,检测不到手动添加下。

 大功告成,下面开始安装应用程序吧。有了wine的虚拟环境,windows下的好多软件可以直接使用,比如MSN,QQ,大智慧,等等,篇幅有限,笔者不能一一介绍,介绍几款常用的,如果有需求的话请留言。

1.QQ

 直接到QQ官方网站,下载最新版的QQ安装包,下载完直接双击打开。

则出现熟悉的安装画面,可惜是乱码,这个不用管,一直点下一步就行了,到选择安装路径是改到/opt下

方便查找,安装过程出现程序错误不用管,点击右上角的X就行了。

 

安装完成后直接运行/opt/QQ/BIN/QQ.exe,(具体目录跟你安装目录所对应),打开后输入帐号密码登录,但是需要注意的是密码必须用软键盘输入,否则会崩溃,请你用虚拟键盘输入(就是不要点击密码框,而是直接点击左边的键盘按钮)最好勾上记录密码和自动登录登录成功后的效果图:

 


2.虚拟机 VirtualBox

Sun VirtualBox 是由Sun Microsystems公司出品的软件,原由德国innotek公司开发。2008年2月12日,Sun Microsystems宣布将以购买股票的方式收购德国Innotek软件公司,新版不再叫做Innotek VirtualBox,而改叫Sun xVM VirtualBox。VirtualBox 是一款功能强大的 x86 虚拟机软件,它不仅具有丰富的特色,而且性能也很优异。更可喜的是,VirtualBox 于数日前走向开源,成为了一个发布在 GPL 许可之下的自由软件。VirtualBox 可以在 Linux 和 Windows 主机中运行,并支持在其中安装 Windows (NT 4.0、2000、XP、Server 2003、Vista)、DOS/Windows 3.x、Linux (2.4 和 2.6)、OpenBSD 等系列的客户操作系统。假如你曾经有用过虚拟机软件的经历的话,相信使用 VirtualBox 不在话下。即便你是一个新手,也没有关系。VirtualBox 提供了详细的文档,可以助你在短期内入门。   VirtualBox与Xen是Unix/Linux/BSD平台下以GPL发布的虚拟技术力作,但VirtualBox在网络方面需再进行改进。

笔者感觉virtualBox比vmware,kvm,xen速度快的多,而且方便管理,毕竟现在归到oracle旗下了,还是强烈推荐的首选虚拟机。

安装:

直接去网上下载VirtualBox的rpm包,笔者下载的是VirtualBox-3.2-3.2.12_68302_fedora14-1.i686.rpm 版本

yum localinstall VirtualBox-3.2-3.2.12_68302_fedora14-1.i686.rpm --nogpgcheck

##因为有一些包的依赖,最好用yum安装,163的mirrors地址为http://mirrors.163.com

 

装好后效果图,还有前面的一张启动的图片(运行程序在左上角应用程序中的系统工具里)

 

 

 3.系统监控软件conky

 Conky是一种自由软件,用于X视窗系统的系统监视,可以在FreeBSD、OpenBSD和各种Linux发布上使用的自由软件 on SourceForge.net。Conky具有很高的可配置性 by Dmitri Popov on Linux.com by Casey Stamper on Debian.net by Sebastian Wieseler,可以监视许多系统参数,如:CPU、内存、交换内存、硬盘使用情况等状态;各种硬件的温度;系统的进程(top);网络状态;电池电量;系统信息和邮件收发;各种音乐播放器MPD、XMMS2、BMPx、Audacious)的控制。 

效果图如下:

 安装很简单,如果用163的mirrors,直接yum可以安装:

yum install conky                                     #会自动解决依赖关系

安装完后在终端运行conky就出现了,但此时你的conky没有配置,你会发现非常丑陋,那么做一下简单的配置,网上有conky的配置教程,笔者不重复介绍,笔者把自己的配置参数与大家分享:

vim /etc/conky/conky.conf

笔者配置:(例如CPU温度或者是上面的字体可能有些显示不出来,需要安装一些字体支持的包和插件,网上有教程,笔者不过多叙述。)

(如果想让conky开机启动,编辑/root/下的.bash_profile在里面加一条sleep 10 && conky &)

background no

override_utf8_locale yes 

font Sans:size=9

xftfont Sans:size=9

use_xft yes 

xftalpha 1

update_interval 1.0 

total_run_times 0

own_window yes 

own_window_type override

own_window_transparent yes 

own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

double_buffer yes 

draw_shades no

draw_outline no

draw_borders no

draw_graph_borders no

minimum_size 170 5

maximum_width 240 

alignment top_right

gap_x 10

gap_y 50

no_buffers yes 

cpu_avg_samples 2

override_utf8_locale yes 

uppercase no # set to yes if you want all text to be in uppercase

use_spacer none

out_to_console no

default_color white
default_shade_color black
default_outline_color white
TEXT
${color grey}运行时间 $uptime  ${color grey}CPU @ ${freq}MHz ${alignr} ${color grey}${cpubar 8}
${color white}$stippled_hr
${color white}CPU Used:$alignr${color red} $cpu%
${color white}cpu 温度:$alignr${color red}${execi 6 /usr/bin/sensors | grep temp2|cut -d' ' -f8 }
${color }$stippled_hr
${color }Processes:$alignr${color }$processes  ($running_processes running)
${color white}$stippled_hr
${color }Highest CPU:$alignr  PID   CPU%
${color #ddaa00}${top name 1}$alignr${top pid 1}  ${top cpu 1}
${color lightgrey}${top name 2}$alignr${top pid 2}  ${top cpu 2}
${color lightgrey}${top name 3}$alignr${top pid 3}  ${top cpu 3}
${color }Highest MEM:$alignr  PID   MEM%
${color #ddaa00}${top_mem name 1}$alignr${top_mem pid 1}  ${top_mem mem 1}
${color lightgrey}${top_mem name 2}$alignr${top_mem pid 2}  ${top_mem mem 2}
${color lightgrey}${top_mem name 3}$alignr${top_mem pid 3}  ${top_mem mem 3}
${color white}$stippled_hr
${color green}网络信息 ${hr 1}${color}
${color white}IP地址: ${color #dcff82}${addr eth0}${color}
${voffset 1}${color white}上行速率:${color #dcff82} ${upspeedf eth0} Kb/sec      ${voffset 1}${color white}下行速率:${color dcff82} ${downspeedf eth0} Kb/sec
${downspeedgraph eth0 25,98 000000 4ea5cd} ${alignr}${upspeedgraph eth0 25,98 000000 296dac}
${color white}上行统计: ${color #dcff82}${totalup eth0}              ${color white}下行统计:${color #dcff82}${totaldown eth0}
${color white}$stippled_hr
${color }MEM:${color} $memperc%$alignr$mem/$memmax
${membar 3,160}
${color }ROOT:$alignr${color}${fs_used /}/${fs_size /}
${fs_bar 3,160 /}
${color }HOME:$alignr${color}${fs_used /home}/${fs_size /home}
${fs_bar 3,160 /home}
${color white}$stippled_hr
${color green}RSS阅读${hr 1}
${color white}${rss http://tech.qq.com/web/webrss.xml 5 item_titles 14}

4.电影播放器 Mplayer

 linux下的播放器中,笔者认为mplayer是当之无愧的王者。

MPlayer被评为Linux下的最佳媒体播放工具,又成功地移植到Windows下。它能播放几乎所有流行的音频和视频格式,相对其它播放器来说,资源占用非常少,不需要任何系统解码器就可以播放各种媒体格式,对于MPEG/XviD/DivX格式的文件支持尤其好,不仅拖动播放速度快得不可思议,而且播放破损文件时的效果也好得出奇,在低配置的机器上使用更是能凸显优势。 
MPlayer本身编译自带了多种类型的解码器,不需要再安装xvid、ffdshow、ac3 filter、ogg、vobsub等等所谓看DVDrip必备解码器,也不会跟你的电脑原来所安装的解码器有任何冲突。它支持大多数的媒体格式如:MPEG/VOB, AVI, ASF/WMA/WMV,RM, QT/MOV/MP4, Ogg/OGM, MKV, VIVO, FLI, NuppelVideo, yuv4mpeg, FILM和RoQ文件。还能观看VCD, SVCD, DVD, 3ivx, DivX 3/4/5, 甚至 WMV 电影。 

MPlayer广泛地支持音视频输出驱动。它不仅可以使用 X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, libcaca, DirectFB, Quartz, Mac OS X CoreVideo, 也能使用GGI, SDL (及它们的所有驱动), 所有VESA兼容显卡上的VESA(甚至不需要 X11), 某些低级的显卡相关的驱动(如 Matrox, 3dfx 及 ATI) 和一些硬件 MPEG 解码器卡, 比如 Siemens DVB, Hauppauge PVR (IVTV), DXR2 和 DXR3/Hollywood+。它们中绝大多数支持软件或硬件缩放, 所以你可以享受全屏电影。

上mplayer的官方网站可以下载到最新的源码包,还有解码器,笔者下载的是MPlayer-1.0rc3.tar.gz源码包和essential-20071007.tar.bz2解码器,这个版本的笔者感觉比较稳定,下载好后,进入源码包所在的目录,还是老规矩,五步走:

tar zxvf MPlayer-1.0rc3.tar.gz

cd MPlayer-1.0rc3

./configure

make 

make install

如果./configure没有报错的话,make出错 ,/usr/lib/libgif.so.4: could not read symbols: Invalid operation collect2: ld returned 1 exit status make: *** [mplayer] 错误 1

是因为lib库引用错了.  QuantizeBuffer是libgif里的东东, 但是却引用成-lungif. 找到Makefile引用的地方, 把-lungif改成-lgif就可以了.则解决方案为 在Makefile包含的一个config.mak里(大概是46行,把lungif换成lgif即可

下面安装essential-20071007.tar.bz2

tar jxvf essential-20071007.tar.bz2

cd  essential-20071007

mv  *  /usr/lib/wincodecs

OK,大功告成,下面试一下吧。

5.办公软件

 linux下也有跟微软office功能差不多强大的办公软件,叫openoffice.

安装很简单的,挂163的mirrors.

yum install openoffice -y

只需等待安装

安完后的使用效果

 

 

六 游戏

 玩游戏,最大的障碍就是显卡驱动,而且linux下的显卡驱动安装起来比较麻烦,首先,现查看自己的显卡型号。使用命令

 

[root@freeze ~]# lspci |grep "VGA"

01:00.0 VGA compatible controller: ATI Technologies Inc M92 [Mobility Radeon HD 4500 Series]

笔者是 ATI的显卡,HD4500,然后去google搜索 ATI HD4500 for linux,找到安装包,放到root目录下,重启,进入3级别模式,直接执行安装就可以了,需要注意的是,显卡的型号一定要匹配,不然会出乱子,如果是N卡的话,现在完驱动,确认版本没问题并且,安装按照以上方法不行的话,请升级内核版本。笔者不一一介绍了,安装驱动没多大难度,如果有需要的朋友,可以留言,笔者写出详细过程。

装完之后你会发现玩游戏什么的不在卡了,直接用wine 就可以调出。

 想全屏的话加上 --opengl的参数 

 

好了,写到这里,基本功能全部已经实现,经过你的精心打造,linux下基本能实现windows的大部分功能,是不是很激动呢?以后就用linux把.可以 边学边实践.好了,就简单介绍到这里,大家要是有什么喜欢的功能想融合,欢迎交流.