用PlayOnLinux装Office 2010的改进方法

于 2019-10-20 发布

之前用PlayOnLinux(简称POL)来安装Office 2010的时候,OneNote总是作怪,隔几分钟就崩溃,实在是没法用。当时迫不得已,用wine直接装,用了一段时间,但是某次系统大更新,把wine升级了之后,OneNote就没办法调出中文输入法,又废掉了。结果只能回来研究POL怎么安装才能搞定。直接按照流程来做的话,因为国内网络的问题,十有八九会在下载包的过程中断开连接而fail掉。但是即使是丢了一些包,竟然还能打得开,所以就有了手动修复依赖包的想法。浏览到POL论坛的Office2010的安装script(附在文章结尾了),依赖包有dotnet20 gecko corefonts gdiplus riched20 riched30 msxml6 mspatcha

所以如果fail了,点开POL的“配置”,选中Office2010,然后“安装内容”里面先把dotnet20和它的sp1、sp2安装上,然后corefonts对应的是Microsoft Core Fonts,剩下的包名字都能找到,就不多说了。

安装完还要在“Wine”标签页里面配置Wine,在“函数库”里面确保gdiplus mspatcha riched20 riched30 msxml6全都有而且设置成了“原装优先于内建”(native,builtin)。最后还需要在“杂项”标签页里选择“在此虚拟盘中运行可执行文件”,把Office 2010的SP1补丁安装上。之后Office就能顺利运行啦。如果掉不出输入法,记得把环境变量LANG设置成zh_CN.UTF-8,而且环境变量已经设置好fcitx作为输入法模块。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/bash
  
# CHANGELOG
# [Quentin PÂRIS] (2012-05-05 14-45)
#   Wine version set to 1.5.3, Outlook 2010 compatiblity
# [Quentin PÂRIS] (2012-05-05 15-05)
#   Check winbind (samba) presence on Linux, required to install
#   Adding gettext support
# [Quentin PÂRIS] (2012-05-12 18-36)
#   Requires 4.0.18
# [SuperPlumus] (2013-06-09 14-44)
#   gettext
# [Quentin PÂRIS] (2014-07-21 17-09)
#   Updating with the latest WineHQ version
# [rbelo] (2018-07-22 15-50)
#   Updating with the latest stable WineHQ version (3.0.2), ver 1.7.52 does not seem to work.
# [Mrjacobarussell] (2018-09-25 20-50)
# Updating missing dotnet20 , gdiplus, gecko, corefonts, msxml6
# [diogoborges14] (2018-12-01)
#   mspatcha
 
[ "$PLAYONLINUX" = "" ] && exit 0
source "$PLAYONLINUX/lib/sources"
  
PREFIX="Office2010"
WINEVERSION="3.0.2"
TITLE="Microsoft Office 2010"
  
POL_GetSetupImages "http://files.playonlinux.com/resources/setups/Office/top.jpg" "http://files.playonlinux.com/resources/setups/Office/left.png" "$TITLE"
  
POL_SetupWindow_Init
POL_SetupWindow_SetID 801
  
POL_SetupWindow_presentation "$TITLE" "Microsoft" "http://www.microsoft.com" "Quentin PÂRIS" "$PREFIX"
  
POL_RequiredVersion 4.0.18 || POL_Debug_Fatal "$TITLE won't work with $APPLICATION_TITLE $VERSION\nPlease update"
  
if [ "$POL_OS" = "Linux" ]; then
        wbinfo -V || POL_Debug_Fatal "Please install winbind (or samba, on Arch Linux) before installing $TITLE"
fi
POL_Debug_Init
POL_System_SetArch "x86"
  
  
POL_SetupWindow_InstallMethod "LOCAL,DVD"
  
if [ "$INSTALL_METHOD" = "DVD" ]; then
        POL_SetupWindow_cdrom
        POL_SetupWindow_check_cdrom "x86/setup.exe" "setup.exe"
        SetupIs="$CDROM_SETUP"
        cd "$CDROM"
else
        POL_SetupWindow_browse "$(eval_gettext 'Please select the setup file to run')" "$TITLE"
        SetupIs="$APP_ANSWER"
fi
  
POL_Wine_SelectPrefix "$PREFIX"
POL_Wine_PrefixCreate "$WINEVERSION"
  
if [ "$POL_OS" = "Mac" ]; then
    # Samba support
    POL_Call POL_GetTool_samba3
    source "$POL_USER_ROOT/tools/samba3/init"
fi
  
  
POL_Wine_WaitBefore "$TITLE"
[ "$CDROM" ] && cd "$CDROM"
  
if [ ! "$(file $SetupIs | grep 'x86-64')" = "" ]; then
    POL_Debug_Fatal "$(eval_gettext "The 64bits version is not compatible! Sorry")";
fi
POL_Wine "$SetupIs"
POL_Wine_WaitExit "$TITLE"
POL_Call POL_Install_dotnet20
POL_Call POL_Install_gecko
POL_Call POL_Install_corefonts
POL_Call POL_Install_gdiplus
POL_Call POL_Install_riched20
POL_Call POL_Install_riched30
POL_Call POL_Install_msxml6
POL_Call POL_Install_mspatcha
# See http://forum.winehq.org/viewtopic.php?f=8&t=23126&p=95555#p95555
POL_Wine_OverrideDLL "native,builtin" "riched20"
POL_Wine_OverrideDLL "native,builtin" "riched30"
POL_Wine_OverrideDLL "native,builtin" "gdiplus"
plsy 
 
# Fix a crash when loading a file
 
  
POL_Shortcut "WINWORD.EXE" "Microsoft Word 2010" "" "" "Office;WordProcessor;"
POL_Shortcut "EXCEL.EXE" "Microsoft Excel 2010" "" "" "Office;Spreadsheet;"
POL_Shortcut "POWERPNT.EXE" "Microsoft Powerpoint 2010" "" "" "Office;Presentation;"
POL_Shortcut "ONENOTE.EXE" "Microsoft OneNote 2010" "" "" "Network;InstantMessaging;" # No category for collaborative work?
POL_Shortcut "OUTLOOK.EXE" "Microsoft Outlook 2010" "" "" "Network;Email;" # Calendar;ContactManagement; ? :p
  
POL_Extension_Write doc "Microsoft Word 2010"
POL_Extension_Write docx "Microsoft Word 2010"
POL_Extension_Write xls "Microsoft Excel 2010"
POL_Extension_Write xlsx "Microsoft Excel 2010"
POL_Extension_Write ppt "Microsoft Powerpoint 2010"
POL_Extension_Write pptx "Microsoft Powerpoint 2010"
  
if [ "$POL_OS" = "Mac" ]; then
    POL_Shortcut_InsertBeforeWine "Microsoft Word 2010" "source \"$POL_USER_ROOT/tools/samba3/init\""
    POL_Shortcut_InsertBeforeWine "Microsoft Excel 2010" "source \"$POL_USER_ROOT/tools/samba3/init\""
    POL_Shortcut_InsertBeforeWine "Microsoft Powerpoint 2010" "source \"$POL_USER_ROOT/tools/samba3/init\""
    POL_Shortcut_InsertBeforeWine "Microsoft OneNote 2010" "source \"$POL_USER_ROOT/tools/samba3/init\""
    POL_Shortcut_InsertBeforeWine "Microsoft Outlook 2010" "source \"$POL_USER_ROOT/tools/samba3/init\""
fi
  
POL_SetupWindow_message "$(eval_gettext '$TITLE has been installed successfully\n\nIf an installation Windows prevent your programs from running, you must remove and reinstall $TITLE')" "$TITLE"
POL_SetupWindow_Close
exit

目录