Jenkins: fontconfig head is null, check your fonts or fonts configuration;


在部署jenkins第一次启动时遇到如下报错:
在这里插入图片描述

一大串报错,看的让人脑瓜疼。。。静静地分析一下日志,发现第一行报错信息: fontconfig head is null, check your fonts or fonts configuration。

这是个什么鬼,我也不造,在网上搜的解决办法如下:


“Jenkins fontconfig head is null, check your fonts or fonts configuration” 这条错误信息通常表示 Jenkins 在加载或找到渲染文本所需的字体时遇到了问题,这种情况通常发生在运行图形应用程序或生成嵌入文本的报告时,尤其是在无头环境(如 CI/CD 管道)中,那里没有图形用户界面。

以下是一些解决该问题的方法:

1. 安装所需的字体

  • 确保在运行 Jenkins 的系统上安装了所需的字体。在基于 Debian 的系统(如 Ubuntu)上,你可以使用以下命令安装一组常用字体:
    sudo apt-get install -y fonts-dejavu-core fonts-freefont-ttf
    
  • 在基于 Red Hat 的系统上,使用以下命令:
    sudo yum install -y dejavu-sans-fonts
    

2. 验证 Fontconfig 的安装

  • 确保 fontconfig 已正确安装和配置。fontconfig 是一个允许程序访问和管理字体数据的库。你可以使用以下命令安装它:
    sudo apt-get install -y fontconfig
    
  • 运行以下命令检查 fontconfig 是否可以正确检测到字体:
    fc-list
    
    该命令应列出系统上所有可用的字体。如果没有列出,则可能是字体配置出现了问题。

3. 手动设置字体路径

  • 有时,显式设置字体路径可以解决问题。你可以通过将 FONTCONFIG_PATH 环境变量设置为包含字体配置文件的目录来实现:
    export FONTCONFIG_PATH=/etc/fonts
    

4. 配置 Jenkins 使用无头模式

  • 如果问题是由于 Jenkins 试图在无头环境中运行引起的,请确保你的 Java 应用程序配置为使用无头模式:
    java -Djava.awt.headless=true -jar jenkins.war
    
  • 你还可以将 -Djava.awt.headless=true 添加到 Jenkins 配置中的 JVM 选项。

5. 重建字体缓存

  • 有时,字体缓存可能已损坏或不同步,重建它可能会有所帮助:
    sudo fc-cache -f -v
    

6. 检查权限

  • 确保 Jenkins 具有访问字体目录和字体配置文件的适当权限。

如果这些步骤无法解决问题,请提供有关你的设置的更多详细信息(例如操作系统、Jenkins 版本、Java 版本等),这可能有助于进一步诊断问题。

如果你的 Linux 服务器没有联网,你可以采用以下步骤进行 Jenkins 的离线安装: 1. 在联网的机器上下载 Jenkins 的安装包和依赖包,并将它们复制到 Linux 服务器上。你可以使用以下命令下载 Jenkins 的安装包: ``` wget https://pkg.jenkins.io/debian-stable/binary/jenkins_2.303.2_all.deb ``` 在这个例子中,我们下载了 Jenkins 2.303.2 版本的安装包。 2. 安装 Jenkins 的依赖包。可以通过以下命令安装 Jenkins 的依赖: ``` sudo apt-get install daemon default-jre-headless fontconfig-config fonts-dejavu-core java-common libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libfontconfig1 libice6 libjbig0 libjpeg-turbo8 libjpeg8 liblcms2-2 libnspr4 libnss3 libpcsclite1 libpixman-1-0 libsm6 libsqlite3-0 libx11-6 libx11-data libxau6 libxcb-render0 libxcb-shm0 libxcb1 libxdmcp6 libxext6 libxfont2 libxi6 libxrender1 libxt6 x11-common xfonts-encodings xfonts-utils ``` 3. 安装 Jenkins。可以通过以下命令在 Linux 上安装 Jenkins: ``` sudo dpkg -i jenkins_2.303.2_all.deb ``` 在安装过程中,你可能会遇到一些依赖问题。你可以通过以下命令解决这些依赖问题: ``` sudo apt-get install -f ``` 4. 启动 Jenkins。可以通过以下命令启动 Jenkins: ``` sudo systemctl start jenkins ``` 5. 访问 Jenkins。你可以通过在浏览器中输入 `http://<your-server-IP>:8080/`,来访问 Jenkins 的 Web 页面。 6. 安装插件。在 Jenkins 的 Web 页面中,点击“管理 Jenkins”,然后点击“插件管理”。在“可选插件”中选择需要安装的插件,然后点击“安装无需重启”按钮即可。 以上是在 Linux 中离线安装 Jenkins 的大致步骤。由于离线安装的具体情况会因版本和环境而有所不同,因此建议你在执行之前先仔细阅读官方文档或参考其他可靠的资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值