You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何打包Chromium及其所有依赖以用于JasperServer部署

解决方案:打包可移植Chromium及其依赖用于JasperServer PDF导出

前提条件

  • 一台与目标JasperServer宿主机系统版本完全一致的机器/容器(用于打包,需能联网下载依赖包)

步骤1:下载Chromium及缺失依赖

  1. 下载对应系统架构的Chromium二进制包(如x86_64),解压到临时目录,记为/tmp/chrome
  2. 安装yum-utils工具(用于下载rpm包):
    yum install -y yum-utils
    
  3. 下载所有缺失依赖对应的rpm包:
    yumdownloader --resolve atk at-spi2-atk cups libxkbcommon at-spi2-core libXcomposite libXdamage libgbm alsa-lib
    

    注:上述包名对应你列出的缺失库,比如libatk-1.0.so.0来自atk包,libatk-bridge-2.0.so.0来自at-spi2-atk包,以此类推

步骤2:提取文件到统一可移植目录

  1. 创建最终打包目录:
    mkdir -p /tmp/chrome-portable/chrome
    
  2. 将Chromium解压后的所有文件复制到/tmp/chrome-portable/chrome
  3. 遍历所有下载的rpm包,提取文件到/tmp/chrome-portable:
    for rpm in *.rpm; do rpm2cpio "$rpm" | cpio -idmv -D /tmp/chrome-portable; done
    
    此命令会将rpm中的lib、lib64等目录内容直接合并到chrome-portable目录下

步骤3:配置启动脚本

在/tmp/chrome-portable目录下创建启动脚本chrome-headless.sh:

#!/bin/bash
# 设置依赖库路径,指向当前目录的lib和lib64
export LD_LIBRARY_PATH=$(pwd)/lib:$(pwd)/lib64:$LD_LIBRARY_PATH
# 调用Chromium无头模式执行PDF导出
./chrome/chrome --headless --disable-gpu --no-sandbox --print-to-pdf "$@"

给脚本添加执行权限:

chmod +x /tmp/chrome-portable/chrome-headless.sh

步骤4:验证与打包

  1. 在打包机器上验证依赖是否完整:
    cd /tmp/chrome-portable
    ldd ./chrome/chrome | grep "not found"
    
    确保无任何"not found"的输出
  2. 打包整个目录:
    tar -czf chrome-portable.tar.gz -C /tmp chrome-portable
    

步骤5:部署到目标服务器

  1. 将chrome-portable.tar.gz上传到本地制品仓库
  2. 在目标JasperServer宿主机上,从本地制品仓库下载包并解压到任意目录(如/opt/jasper/chrome-portable)
  3. 修改JasperServer配置,将PDF导出的Chrome执行路径设置为/opt/jasper/chrome-portable/chrome-headless.sh

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 00:46:27