Ubuntu系统下安装Wine来运行Windows程序的方法详解

   2015-11-07 0

有时候免不了要使用Windows应用程序,于是在本教程中,我们将使用Wine教你如何在Linux上顺畅地运行Windows应用程序。
Ubuntu系统下安装Wine来运行Windows程序的方法详解

纵然Linux软件品种繁多,但有时候你还是觉得缺少了与Windows版对应的某个应用程序。需要那一个应用程序可能有好多原因,最常见的原因恐怕是Linux不支持某一种文件格式或实际使用的某个应用程序。幸好,有好多办法可以在Linux系统上使用Windows应用程序。

  Wine的介绍

  Wine是Wine Is Not an Emulator(Wine不是模拟器)的缩写,其实是一个转换层(或程序装入器),能够在Linux及与POSIX兼容的其他类似操作系统上运行Windows应用程序。Wine在Linux上无法模拟Windows应用程序,而是提供了另外的方法来实施DLL(典型的Windows应用程序可以调用这些DLL)和代替Windows NT内核的进程。Wine完全由非微软代码组成。

  Wine支持数量众多的应用程序,但并非全部都得到同样的支持。可以访问Wine应用数据库(AppDB, http://appdb.winehq.org),看看你常用的Windows应用程序与Wine之间的兼容性有多好。AppDB由社区维护;你也可以添加自己发现的应用程序。AppDB定义了如下几种级别类型:

  白金:如果某应用程序在“即开即用”状态下可以顺畅无阻地安装和运行,它可以被评为白金级。Wine配置文件不需要进行更改。

  黄金:应用程序与一些DLL覆盖文件、其他设置或第三方软件可以顺畅无阻地协同运行。

  白银:就“平常”使用而言,应用程序可以出色地运行。比如说,游戏在单人玩家模式下运行很好,但在多人玩家模式下不行;Windows Media Player作为插件和独立播放器运行很好,但无法处理数字版权管理(DRM)等。

  青铜:应用程序可以运行,但存在一些问题,哪怕是平常使用。比如说,游戏无法正确地重新绘图或者用错误的颜色显示字体,速度比平常慢得多,等等。

  垃圾:如果应用程序无法用于原本的用途,就会得到这个评级。如果这样,通用软件缺陷跟踪系统Bugzilla中应该至少有一个软件缺陷报告。应用程序无法安装、无法启动,或者就算能启动,也有好多错误,以至于几乎没法使用。

  一. 安装Wine

  Wine适应于所有流行的UNIX操作系统,包括Ubuntu、Debian、Red Hat、SUSE、Mandriva、FreeBSD、Solaris和Mac OS X。

  在Ubuntu上:

  1. 打开Applications(应用程序)>Ubuntu Software Center(Unbuntu软件中心),打开Ubuntu软件中心。

  2. 然后点击Edit(编辑)>Software Sources(软件源)。选择Other Software(其他软件)选项卡,点击Add(添加)。然后输入下列apt行:

复制代码
代码如下:

  ppa:ubuntu-wine/ppa

  3. 从左边的Get Software(取得软件)部分中选择“PPA for Ubuntu Wine Team”,然后选择Microsoft Windows Compatibility Layer(Development files) – wine1.3-dev。点击Install(安装)。这会安装最新的Wine软件包,包括开发库。

  提示:卸载现有的Wine软件包,以确保最大的兼容性。另外,如果想干净安装,你可以删除Wine用户目录,为此可以从主目录中使用命令rm -r -v .wine。
        4.在 64 位 Ubuntu 15.10 中编译最新版 32 位 Wine
        Wine 发布了最新的1.7.53版本。此版本带来的大量性能提升,包括XAudio,Direct3D代码清理,改善OLE对象嵌入技术,更好的 Web Services DLL的实现,还有其他大量更新。
Ubuntu系统下安装Wine来运行Windows程序的方法详解

        虽然有一个官方 Wine PPA,但目前只提供1.7.44版本,所以安装最新版本可以从源码编译安装。

        下载源码包(直接下载地址在此)并解压 tar -xf wine-1.7.53。然后,安装如下依赖。

复制代码
代码如下:

sudo apt-get install build-essential gcc-multilib libx11-dev:i386 libfreetype6-dev:i386 libxcursor-dev:i386 libxi-dev:i386 libxshmfence-dev:i386 libxxf86vm-dev:i386 libxrandr-dev:i386 libxinerama-dev:i386 libxcomposite-dev:i386 libglu1-mesa-dev:i386 libosmesa6-dev:i386 libpcap0.8-dev:i386 libdbus-1-dev:i386 libncurses5-dev:i386 libsane-dev:i386 libv4l-dev:i386 libgphoto2-dev:i386 liblcms2-dev:i386 gstreamer0.10-plugins-base:i386 libcapi20-dev:i386 libcups2-dev:i386 libfontconfig1-dev:i386 libgsm1-dev:i386 libtiff5-dev:i386 libmpg123-dev:i386 libopenal-dev:i386 libldap2-dev:i386 libgnutls-dev:i386 libjpeg-dev:i386

       现在切换到 wine-1.7.53 解压后的文件夹,并输入:

复制代码
代码如下:

./configure
make
sudo make install

       同样地,你也可以给配置脚本指定 prefix 参数。以普通用户安装 wine:

复制代码
代码如下:

./configure --prefix=$HOME/usr/bin
make
make install

  二. 安装Wine支持包

  现在,我们需要安装非开源(但免费)的支持包。这包括微软Core Fonts、Visual C++运行时环境等软件包。

  不妨继续深入介绍。

  安装Cabextract:

  需要该软件包来解压缩微软.cab文件。

复制代码
代码如下:

  $ sudo apt-get install cabextract

  下载winetricks脚本:

  现在我们需要下载一个很棒的脚本,名为winetricks,它会自动下载和安装必要的支持包。

复制代码
代码如下:

  $ wget http://winetricks.org/winetricks

  现在输入下列命令,安装必要的支持包:

复制代码
代码如下:

  $ sh winetricks corefonts Tahoma

  提示:你还可以不用任何命令行参数来运行winetricks,那样就能从漂亮的GUI界面选择需要安装的软件包。

  三. 安装微软Office

  在本例中,我们将安装微软Office 2007。插入微软Office 2007光盘,鼠标右击setup.exe,选择“Open With Windows Program Loader”。这应该会启动微软Office安装程序。以平常的方式来安装,就像你在任何Windows系统上安装那样。

  四. 建立库

  鉴于已安装好了微软Office 2007,我们要确保Wine已经过配置,可以顺利使用该应用软件。你也看到,Wine以自己的方法实施了各种Windows库,但我们可以直接使用原生的Windows库,确保应用程序有最大的兼容性。Wine随带自己的配置工具:winecfg。除了其他功能外,该工具还让我们可以在内置版本的库与原生版本的库之间切换。

  输入命令winecfg,即可打开Wine配置工具。进入到Libraries(库)选项卡,把riched20和usp10添加到“native, builtin”。这表明,Wine应该先试着装入原生的Windows库;要是没有这些库,它会试着装入内置的库。

  五. 运行微软Office

  微软Office现在应该已出现在Ubuntu程序菜单中。可以先后进入到Application(应用程序)> Programs(程序)>Microsoft Office(微软Office)来访问它。

  这个过程确实相当简单。如果你只想临时运行某个Windows程序,假设兼容性很好,那么全都妥当了;但是高级用户想要再深入一步的话,需要继续读下去。[NextPage]

  使用Winelib构建Windows应用程序
Ubuntu系统下安装Wine来运行Windows程序的方法详解

如果你想不受微软的约束,Wine确实大有帮助。这年头,连第三方的Windows应用开发人员都要受微软的支配。比如说,Windows多媒体应用开发人员处理最简单的任务都要依赖DirectX。DirectX是微软的专属财产,别人谁也无法访问不了源代码。有一天,微软可能会开发DirectX的一些独特功能,由于这些功能没有列入文档,独立软件开发商访问不了这些功能。那样的话,Windows Media Player将是该平台上最好的多媒体播放器,因为其他播放器被迫依赖DirectX,又无法完全控制它。

  欢迎来到Linux社区:在这里,没有什么是不可能的。

  不妨再以DirectX为例。Wine以自己的方法实施了DirectX(借助Transgaming Technologies而实现)。Wine实施了常见的多媒体应用编程接口(API),比如Direct3D、DirectInput、DirectSound、DirectShow及其他许多API,实施的办法就是将它们与功能强大的、开放的Linux对应API联系起来,如OpenGL、X11和ALSA/OSS API。因而,将DirectX应用程序移植到Linux时,你可以使用所有这些开放的技术。Winelib可以用作将应用程序从Windows平台取出来放到Linux系统上的第一步。然后,可以逐渐充分利用Linux提供的所有功能。

  Winelib能够在Linux上运行和编译Windows应用程序,不需要Windows。Winelib是Wine项目的一部分。它以开源的方式实施了Win32 API,基于Linux和X Window System(如今常称为Xorg)而建。Winelib的代码与Wine完全共享,能够编译控制台应用程序和GUI应用程序。它还能编译DLL(动态链接库)等库文件。Wine通过下列两种方式来处理Windows源代码。

  •提供二进制级的兼容性

  二进制级的兼容性可通过Wine本身来获得。在此过程中,应用程序的源代码在Windows平台上编译,然后二进制文件被移到Linux系统上,通过Wine来运行。应用程序在二进制兼容的情况下运行时,它可以使用所有现有的.dll文件。这个过程相当简单,但无法释放Wine子系统的全部功能。这与我们使用Wine来运行微软Office 2007的方式一模一样。

  •提供源码级的兼容性

  在该方法中,源代码文件被移到Linux系统上,然后使用GCC对照Winelib库来进行编译。这样一来,应用程序还能够与UNIX API调用兼容,以便充分利用UNIX的全部功能。Winelib随带一款名为winemaker的工具,该工具可以通过VC++项目创建基于GNU标准autoconf的makefile文件。Winemaker是一个Perl脚本,负责处理转换源代码、使源代码专门用于UNIX、清空用例问题及其他众多方面的所有繁重任务。


 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Ubuntu使用——15(thinkphp路由报错Non-static method think\Route::get() should not be called statically)
    Ubuntu使用——15(thinkphp路由报错Non-static
    在route.php中添加代码:use think\Route;Route::get('/',function (){return 'hello world';});在浏览器中输入http://localhost/tp5-git/public/index.php,报错:[8192] ErrorException in route.php line 13Non-static method think\Route::get() should n
    03-08
  • Ubuntu与Window双系统安装的注意事项
    Ubuntu与Window双系统安装的注意事项
      UBUNTU与WINDOW双系统安装的注意事项 由 匿名 (未验证) 提交于 2019-05-18 10:07:41登录 发表评论29 次浏览假定电脑里面已经存在了Window系统,安装另外一个Linux系统:第一:首先确定电脑里面的window系统引导方式电脑系统的引导方式分为:(1)传统
    03-08
  • Ubuntu 图形界面损坏修复方法!!!亲测有用!!!
    Ubuntu 图形界面损坏修复方法!!!亲测有用!
    1.现象今天做实验的时候打开Ubuntu虚拟机,输入密码之后发现变成这样:然后重新开机,到了输入密码界面不输入,而是输入快捷键CTRL+alt+F1,输入用户名+密码进入之后输入ls,发现我的文件还在,心想这不是系统炸了啊上网搜说是图形界面损坏于是重新来:(参考
    03-08
  • Ubuntu终端输入异常、无法退格(删除文本)、使用方向键命令
    Ubuntu终端输入异常、无法退格(删除文本)、使
    1 起因为了学习嵌入式开发安装去安装的ncurses库,使用命令:sudo apt-get install libncurses5-dev导致系统自带的ncurses-base被自动删除。2 出现的问题误删ncurses-base后导致终端输入窗口出现了一系列的问题:Ubuntu终端输入无法退格(删除文本)、使用↑
    03-08
  • Raspberry Pi (Ubuntu) 上的 VNC 无监视器
    Raspberry Pi (Ubuntu) 上的 VNC 无监视器
    超级方便的无监视器VNC方便的树莓派远程桌面操作,无需显示器\(^^)/通过在页面末尾设置“无显示器设置”,可以在启动树莓派之前和之后连接和断开 HDMI 显示器电缆(这很重要)。来自主 PC 的远程桌面环境树莓派 4Ubuntu 20.04(64位)服务器+桌面设置VNC 设
    03-08
  • 免费供个人使用最多3个! !我尝试注册 ESM 将 Ubuntu LTS 版本的支持期延长 5 年
    免费供个人使用最多3个! !我尝试注册 ESM 将
    我个人使用 Ubuntu 作为我的 Linux 机器的操作系统。 Ubuntu 有正常版本和 LTS(长期支持)版本的操作系统。至此,版本号奇数为普通版,偶数为LTS版,LTS版长期支持5年,而普通版有支持期半年左右。。由于Linux机器用作GPU服务器,由于驱动程序和库的兼容性等
    03-08
  • [WSL2 Ubuntu22.04] 尝试使用 WSLg 运行 Elixir Desktop(未完成)
    [WSL2 Ubuntu22.04] 尝试使用 WSLg 运行 Elixir
    现状启用 WSLg 后,Elixir Desktop 会不会像在 Ubuntu 上一样工作?Elixir 桌面示例我试着跑步窗口显示并似乎在移动,但 Todo 应用程序未显示在窗口中。这是一个空白的显示。显示窗口和菜单。Extra 的内容也可以单独使用。如果您使用 Extra 的 Open Browser
    03-08
  • ubuntu中vi下删除键和上下左右键输入字符异常(
     刚安装的Ubuntu系统,使用vi编辑文本的时候,出现以下现象:点删除键输入了 D回车无效上下左右为字母光标乱跳 原因:自带的vi功能问题 解决:卸载原有vi,重新安装完整版本vim执行以下命令即可: sudo apt-get remove vim-common sudo apt-get install v
    02-10
  • ubuntu禁止ping操作(禁用ICMP协议访问) icmp
    ping命令是计算机之间进行相互检测线路完好的一个应用程序,计算机间交流数据的传输没有经过任何的加密处理,因此我们在用ping命令来检测某一个服务器时,可能在因特网上存在某个非法分子,为了安全我们把ping给禁止掉。通过专门的黑客程序把在网络线路上传输
    02-10
  • Ubuntu16配置静态IP ubuntu16.04配置静态ip
    一、静态IP地址配置sudo vi/etc/network/interfaces然后按照如下格式修改:注意这里的网卡名字是ens33auto loiface lo inet loopbackauto ens33iface ens33 inet staticaddress 192.168.1.106netmask 255.255.255.0gateway 192.168.1.1二、配置DNS#临时修改su
    02-10
点击排行