Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 日志 › 「日志记录」Docker 中使用 pywpsrpc

「日志记录」Docker 中使用 pywpsrpc

Eswlnk的头像
Eswlnk
2023-10-27 12:30:46
「日志记录」Docker 中使用 pywpsrpc-Eswlnk Blog
智能摘要 AI
该文章主要讨论了在无图形环境中安装和运行WPS Office的挑战及解决方案。对于带桌面环境的Docker,可以顺利安装并使用WPS;但在无图形环境中,通常会遇到WPS无法启动的问题。通过修改`/usr/bin/wps`脚本和设置多模块模式,可以解决部分问题。此外,还需确保安装必要的依赖库如`libxslt1.1`、`libqt5xml5`等,以避免共享对象文件找不到的错误。对于使用pywpsrpc时,还需同意WPS的EULA并将其设置为多组件模式。最后,作者提供了一个简化版的Docker镜像,专门用于无图形环境下的WPS安装与使用。需要注意的是,在特定硬件如鲲鹏920+麒麟V10上,WPS Office可能无法正常运行。

一般如果使用带桌面环境的 docker,比如 dorowu/ubuntu-desktop-lxde-vnc,然后安装 wps 后,使用 https://github.com/timxx/pywpsrpc 是没啥问题的,需要注意的是 wps 第一次打开后,需要同意 EULA,然后按照 https://github.com/timxx/pywpsrpc/issues/44#issuecomment-1032304847 中提到的改为 multi-module mode,然后就可以愉快使用了,但是对于无图形环境的 docker,似乎是连 wps 都无法启动

「日志记录」Docker 中使用 pywpsrpc-Eswlnk Blog
Docker

解决WPS无法启动的问题

wps安装之前需要安装一些依赖环境,这个后文给出完整的安装流程,此处主要解决 wps 安装完成后,启动无输出,直接闪退的问题

此处安装 https://github.com/timxx/pywpsrpc/wiki/Run-on-Server 配置了环境,但是wps依旧闪退

首先执行 whereis wps ,我们找到 wps 的执行文件路径,一般位于 /usr/bin/wps

然后我们编辑该文件

function run()
{
        oldPwd="${PWD}"
        if [ -e "${gInstallPath}/office6/${gApp}" ] ; then
                if [ 1 -eq ${gDaemon} ]; then
                        nohup ${gInstallPath}/office6/${gApp} ${gOpt} > /dev/null 2>&1 &
                elif [ 1 -eq ${gIsUrl} ]; then
                        { ${gInstallPath}/office6/${gApp}  ${gOptExt} ${gOpt} "${gFilePaths[@]}"; } > /dev/null 2>&1
                elif [ 1 -eq ${gIsFushion} ] && [ "$1" != "/prometheus" ]; then
                        { unset GIO_LAUNCHED_DESKTOP_FILE && ${gInstallPath}/office6/${gApp} /prometheus ${gOptExt} ${gOpt} "$@"; } > /dev/null 2>&1
                else
                        { ${gInstallPath}/office6/${gApp}  ${gOptExt} ${gOpt} "$@"; }
                fi
        else
                echo "${gApp} does not exist!"
        fi
}

将最后一个 else 的输出重定向去除,此时我们再运行 wps 就有报错输出了

dlopen /opt/kingsoft/wps-office/office6/libwpsmain.so failed , error: libxslt.so.1: cannot open shared object file: No such file or directory

然后我们运行下面的命令来解决他

apt-get install -y libxslt1.1

然后再运行wps即可,如果还是有缺失的问题,继续找补

或者可以直接运行 xvfb-run /opt/kingsoft/wps-office/office6/wps 来看报错

整体安装流程(for ubuntu)

apt-get install -y wget
# 下载 deb 安装包
wget https://wps-linux-personal.wpscdn.cn/wps/download/ep/Linux2019/11698/wps-office_11.1.0.11698_amd64.deb
# 防止 debconf (no usable dialog-like program 报错 ref:https://www.kaijia.me/2015/09/unable-to-initialize-frontend-dialog-issue-solved/
apt-get install -y dialog
# 安装 wps 所需依赖(安装wps时需要)
apt-get install -y bsdmainutils xdg-utils
# 安装 wps
apt-get install -y ./wps-office_11.1.0.11698_amd64.deb
# 安装运行 wps 时的依赖
apt-get install -y libxslt1.1 qtbase5-dev
# 安装虚拟显示器
apt-get install -y xvfb
# 使用 xvfb 来运行 wps
xvfb-run wps

但是此时如果你使用 pywpsrpc,还是启动不起来的

需要同意 wps 的 EULA 并且将 wps 改为多组件模式

# 将 wps 改为多组件模式
echo 'wpsoffice\Application%20Settings\AppComponentMode=prome_independ' >> ~/.config/Kingsoft/Office.conf
echo 'wpsoffice\Application%20Settings\AppComponentModeInstall=prome_independ' >> ~/.config/Kingsoft/Office.conf
# 同意 wps 的EULA
echo 'common\AcceptedEULA=true' >> ~/.config/Kingsoft/Office.conf

注意此时调用 pywpsrpc 其实还会出现一个错误

/tmp/64742_asso/assocheck.sh: line 18: gvfs-info: command not found
/tmp/64742_asso/assocheck.sh: line 19: gvfs-mime: command not found
/tmp/13013_desktop/desktopcheck.sh: line 23: gvfs-info: command not found
/tmp/13013_desktop/desktopcheck.sh: line 24: gvfs-mime: command not found

测试后感觉该错误不影响使用,如果在意的话可以通过 apt install gvfs-bin 来解决

封装的 Docker

为了更精简,qtbase5-dev 可替换为 libqt5gui5

但注意,导入使用 pywpsrpc 时可能会报错 ImportError: libQt5Xml.so.5: cannot open shared object file: No such file or directory ,还需要安装 libQt5Xml

apt-get install -y libqt5xml5

如果不差空间,使用 pywpsrpc 前更建议安装 qtbase5-dev

根据上面的测试,我做了一个镜像

该镜像只安装了 wps,并且做好了可使用的配置,可参照readme进行使用

https://github.com/akkuman/headless-wps

针对arm64的我也做了测试,结果发现实际上 wps 无法在 鲲鹏920+麒麟V10 上正常运行,当然,可能是因为这个系统内核的内存对齐比较特殊,连chrome也没法在这个系统上跑

本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
Dockerpywpsrpcwps
0
0
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
QQ互联接免证件教程 | 一步步教你实现快速认证
上一篇
「日志记录」Debian 开启SSH服务便于远程连接
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 「日志」IG无缘S15总决赛
  • 来自谷歌27岁的生日涂鸦
  • 事件记录:国内网络故障情况
  • 科研记录:ecCodes处理grib文件问题
  • 本站上线邀请码免费兑换系统
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

「日志记录」微信官方拦截QQ域名,并标记为危险网页
2023-10-29 23:10:09
做了一个常用的Chat AI聊天网站
2023-02-16 1:34:51
「教程分享」自签名证书制作 Docker 工具镜像:Certs Maker
2022-10-22 16:58:32

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.765 秒   |  SQL查询 20 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈