LINUX(ubuntu,arch)下使用wine Office 2010

一、前言

Linux下没有微软件Office可是一件麻烦事,虽然libreoffice也可以打开.doc的文档,不过其兼容性明显不够好,用起来也很不习惯。而虚拟机跑起来就比较费资源,下面说说如何在Ubuntu14.04下如何用winehq来跑office 2010

本文主要说明如何手动按装,对于老手来说,应该是轻车熟路

二、安装过程

2.1 安装准备

  • 联网的ubuntu14.04电脑,并且源已配置完毕;
  • 完整的office 2010的32位安装包

安装的基本的思路为:安装winehq—-配置winehq—-安装office—-检测安装情况,解决问题。

2.2 安装winehq

ubuntu源中处自带了比较老的winehq的版本,一般为1.6,不过新的版本效果会好一点。下面就在ubuntu上安装最新开发版及其辅助配置工具winetricks:

$ sudo dpkg --add-architecture i386
$ sudo add-apt-repository ppa:wine/wine-builds
$ sudo apt-get update
$ sudo apt-get install --install-recommends winehq-devel
$ sudo apt-get install winetricks

2.3 配置wine

由于版权的原因,使得winehq不能使用很多windows自带的工具(环境 包),需要手动安装与配置。而winetricks则集合了很多安装源,可以下载安装与配置,避免了手动寻找的麻烦。不过这些源国内不一定可以下载,这个时候就要手动下载并安装相关的环境包。

对于office来说,需要的环境包主要有:

 donet20
 gdiplus
 gdiplus_winxp
 msls31
 msxml3
 msxml6
 riched20
 riched30
 字体包corefonts

配置wine,首先为wine创建一个配置环境。因为32位的wine运行比较良好,而64位则会常常出问题,故要配置32位的wine环境。
在~/.bashrc最后添加

export WINEARCH=win32

然后通过运行source来使得配置生效

$ source ~/.bashrc

打开winetrcks:

$ winetrcks

会配置wine的环境(即在~下生成.wine目录),然后下载安装一些东西,如果能下载,就选择是。在里面添加需要的windows的dll和字体。这些下载安装的速度会比较慢,中间还可以能会出现手动虽要手动下载安装的运行库。winetrick会将这些运行库均会下载到~/.cache/winetricks/目录下,所以如果手动下载了这些运行库的安装程序,直接放到对应的目录下即可。这些运行库有保存的价值,建议备份一下。

2.4 更改winecfg

因为wine使用开源的一些替代库并不好用,在这里我们采用原生的windows动态链接库替代wine中开源的库。

$ winecfg

在打开的界面中,libraries选项卡下,确保这些DLL添加成功并用”编辑”将其所有属性改为”native”(windows)

gdiplus
mscoree
msxml3
msxml6
riched20

2.5 安装Office2010

挂载office的ISO镜像文件,,双击setup.exe,选择完全安装。这个时候一般是可以完全安装成功的

三、卸载Office

注意:下面命令会删除所有wine生成的快捷方式

$ rm -fr ${HOME}/.wine
$ rm -fr ${HOME}/.local/share/application/wine-extension-*
$ rm -fr ${HOME}/.local/share/application/wine

四、错误记录

4.1 不能解决的问题

  1. 不支持划词翻译,如果打开划词翻译的话,就会时常溃溃。
  2. 不支持旧式的公式,只能以图片的形式打开,无法转换。但是对于新式的公式可以使用。个人觉得新式的公式输入更加舒服一点。
  3. 使用新式公式会删除时会出现乱码现像,但是不影响正常使用
  4. 生成pdf会出现公式错误,同时生成的pdf也体积也较大

4.2 文件保存出错,或退出过程出错

发现wine office在文件保存和退出上存在一些问题,会出现卡死现像。查看报告发现是msctf.dll.so调用上出了问题,所以使用windows原有msctf.dll即可,

  • 解决方法1:在上述的libraries下添加msctf,并将其属性更改为native(windows),
  • 解决方法2:将winxp下的msctf.dll拷到.wine/drive_c/windows/system32/下即可

4.3 KMS激活问题

ubuntu的KMS这个已经在另外一篇文章中讨论http://yinflying.top/2016/12/264

但这个方案在arch失效了,所以不得另寻它法。现有状况是:KMS程序已安装,IP设置为127.0.0.2,而端口设置为1688。下面是解决方案:

  1. 利用playonlinux打开相应容器的注册表
  2. HKEY_LOCAL_MACHINE\Software\Microsoft\OfficeSoftwareProtectionPlatform下添加:
    • “new -> string value”,名为KeyManagementServiceName,值为: 127.0.0.2
    • “new -> string value”,名为KeyManagementServicePort,值为: 1688
  3. 打开office 2010并关闭,然后切到HKEY_USERS\S-1-5-20\Software\Microsoft\OfficeSoftwareProtectionPlatform键值下添加:
    • “new -> binary value”,名为VLRenewalSchedule,值随意,不填亦可(本步可能需要重启刷新)
  4. 重新打开office,发现已经激活了。

4.4 输入法无法切换

UPDATE 2017-08-04
现象:

  • fcitx所有环境均已安装,而且wine qq是能够正常输入的

解决方法:
只需要在office设置中的文件->选项->高级选项卡中取消输入控制处于活动状态即可。

真是一个神奇的现象,不知道原因是什么。

4.5 窗口无法移动(KDE)

环境: arch KDE plasma

现象:

  1. 无法使用鼠标移动窗口和改变窗口大小
  2. 可以使用使用外加alt的来改变窗口大小和移动窗口
  3. 能过更改winecfg中的”grahpics”中去除”allow the window manager to control the windows”选项来改变这种现像,不过却存无法窗口边缘拟合的方式
  4. 图片改变大小时,出现错位。
  5. 启动时,启动图标不正中显示(正常情况下应当是正中显示)

UPDATE 2017-12-05
感觉得一个BUG.实际上只要不使用office的默认的最大化方法(点击右上角或双击标题栏最大化)之前,还是可以使用窗口大小的,而一旦使用了该方法,窗口就会处于一种奇特的“最大化状态”,无法移动,虽然还可以通过快捷键等方式或ALT移动或改变窗口大小。最近使用过程中忽然发现一种可以解除这种“最大化状态”的方法。

首先需要给KDE配置窗口最大化快捷键(最好还有占左半屏的快捷键)。当窗口处于奇特的“最大化状态”时,只需要使用最大化快捷键即可解决该状态,然后使用其它方式解除最大化状态即可(如使用占左半屏快捷键,或者右键任务栏的图标,再次选择最大化即可,但是不能使用office自身的),这样窗口就可以直接移动了。

总之,office自身的最大化方式与KDE之间有点冲突。

综合来说,下面是折衷的解决方案:
1、尽可能的不使用office自带的最大化方案,如果需要,可以使用右键任务栏图标的方法。
2、或者使用快捷键移动窗口。

下面方法存在一些问题,不建议使用
解决方法:能过KDE的窗口管理器自定义规则来解决这个问题:

  1. Start System Settings
  2. Select Window Behaviour
  3. Select Window Rules
  4. Click “New…” to create a new Window Rules
  5. Enter the description
  6. Window Class: Regular Expression. I use .*\b(winword.exe|excel.exe|powerpnt.exe)\b.*
  7. Check “Match whole window class”
  8. Check on tab “Size & Position”
  9. Check “Full screen”: value Forced, No
  10. Check “Ignore Requested Geometry”: value Forced, Yes

但是这样同样会带来一个副作用:内部改变图片大小时,会错误显示。所以我的建议是:放弃上述修改,而改用alt来操作。其中atl+左键可以移动窗口,而alt+右键则可改变窗口的大小(感觉这个方面有点郁闷,不过对于我习惯用快捷方式的操作的人来说,影响并不大)。

4.6 playonlinux中的wine下载地址

http://wine.playonlinux.com/,下载下的包实际上tar.bz2的压缩包,可以使用mimetype探测一下就知道了。

4.7 wine程序不能运行基本方案

如果确认该wine程序是能够较好的运行的(在其它的机器上能够较好的运行),而本机上则出现的一些问题,这个时间往往是由于系统库的缺失引起的。这个时候最好的方案是查询wine的log,然后观察其中有没有类似于这样的提示:

err:ole: *****.so no such file or directory(没有该文件或目录)

然后只需要安装含有该库的包即可。如果找不到相对应的版本,如需要libudev.so.0,但是系统中却只存在libudev.so.1,这个时候可以试试做个软链,看看效果如何。

此条目发表在LINUX分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。