用PlayOnLinux装Office 2010的改进方法

之前用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

Read More

今日小记

今天进城吃了一顿饭,是石中在央财的人的惯例聚餐。顺便明天是其中一个师兄的生日,所以买了蛋糕一起吃。蛋糕吃起来不错,只是有点融了,所以底有点掉了——所以切蛋糕分的时候非常困难,倒是出了不少搞笑的事情,吐槽寿星公手艺太差。

同行的妹子对于某位师弟比较忽略我们、不尊重我们这一届有点不高兴,而且因为师兄们太厉害了,所以她比较焦虑。所以另一个妹子和我安慰了她一路。

Read More

数据结构|linked list

linked list的元素是node,每个分成data和指向下一个node的reference两部分,而linked list这个变量只拥有head这个元素,head元素指向第一个node.

需要记住的是最后一个元素的reference指向的是null,可以通过这个来判断是否到了列表的结尾。

因为head只有指向第一个元素的ref,所以在头部插入node的时候一定要:先把要插入的node的ref指向原来的第一个node,然后再把head指向新的node;否则原来的整个链都会丢失.

Read More

《乡土社会》摘抄

让我先说明,礼治社会并不是指文质彬彬……礼并不带有“文明”、或是“慈善”、或是“见了人点个头”、不穷凶极恶的意思。礼也可以杀人,可以很“野蛮”。

礼是社会公认合式的行为规范。……礼却不需要这有形的权力机构来维持。维持礼这种规范的是传统。……如果我们对行为和目的之间的关系不加推究,只按着规定的方法做,而且对于规定的方法带着不这样做就会有不幸的信念时,这套行为也就成了我们普通所谓“仪式”了。……礼并不是靠一个外在的权力来推行的,而是从教化中养成了个人的敬畏之感,使人服膺;人服礼是主动的。……礼则有甚于道德:如果失礼,不但不好,而且不对、不合、不成。

礼治的可能必须以传统可以有效地应付生活问题为前提。乡土社会满足了这前提,因之它的秩序可以用礼来维持。在一个变迁很快的社会,传统的效力是无法保证的。

Read More

今日小记

凌晨的时候拉肚子,然后躺到两点半都还没睡着。早上半人半鬼,听课也只记得什么“NPV”“IRR”和“MIRR”,都是用来评价投资项目的好坏的。如果是期限不一样的,还有最小公倍数延长和固定年金法来对比。然后中午吃完饭回来睡到两点半就去探索天际省了。今天的外国新闻是NBA的高管说支持莫雷的港独言论,所以央妈直接停播NBA赛事。晚上的投资银行学老师又在吹逼,一点没听就打麻将,只知道作业要做(抄ppt)第1345题就对了。

明天必须要做公司理财的作业了,大概是抄财务报表分析的作业就好了。应该很快的。安安。

Read More

西直门吃爆

今天和舍友去西直门的日本半自助火锅吃饭,加了5次肉(1次1斤),每次都是一样来一份(all in),吃到腻了之后叫甜品,叫了3轮,感觉都要被这家店拉黑了2333333

但是吃完肉之后,吃第一个巧克力雪糕的时候突然幸福感爆棚,就像clannad里面刻海星的女主那样冒星星

Read More

无标题-2019-09-27-745

本来对魔趣的印象挺不错的,但是无论是windows还是linux,无论是firefox还是chromium,即使把ublock orgin关掉也还是没办法在网页版下载固件;更何况手机版的app更新如果下载全量包总会卡死在96%,然后fail了还没有断点续传,像个憨批一样,所以只能走邪道了。

首先要参考大佬的文章,但是时代变了,搜索的是“gen_link”,然后key也变成了filename。总体思路不变,开发者模式里Elements找到gen_link,在Console里面用:

1
setTimeout('$.post("/gen_link",{filename:"1e6f1f2c6892f49a5c68103fcd59f679"},function(data, status) {alert("下载链接:" + data);});',59000)

在19年9月27日,稍微阅读一下gen_link附近的js就能够理解,需要的是弹出框里的data,拼接成https://rom.mk/f/**_data_**,放到aria2c或者什么下载器里面就可以全速下载下来了。

Read More