ubuntu小技巧30--23.10桌面版安装钉钉启动报错undefined symbol: FT_Get_Color_Glyph_Layer

ubuntu小技巧30-- 23.10桌面版安装钉钉启动报错undefined symbol: FT_Get_Color_Glyph_Layer

  • 介绍
  • 解決方法
  • 说明

介绍

近期在电脑上安装了 ubuntu 23.10桌面版本, 安装最新版钉钉后无法正常打开软件,报错 undefined symbol: FT_Get_Color_Glyph_Layer ,具体如下

xg@xghome:~/Desktop$ bash /opt/apps/com.alibabainc.dingtalk/files/Elevator.sh
ubuntu
ubuntu branch
preload_libs=
./com.alibabainc.dingtalk: symbol lookup error: /lib/x86_64-linux-gnu/libcairo.so.2: undefined symbol: FT_Get_Color_Glyph_Layer

在这里插入图片描述

解決方法

启动异常后,从钉钉的桌面快捷键中找到它启动脚本 /opt/apps/com.alibabainc.dingtalk/files/Elevator.sh
粗略看了下脚本,发现它会根据不同的系统和 libc等文件选择性预加载一些特定的库,因此猜测 ubuntu 23.10 新版本的库和老版本的库功能不一致导致。

进一步查看 22.04和23.10的 /lib/x86_64-linux-gnu/libcairo.so.2 , 发现 ubuntu22.04 版本对应 libcairo.so.2.11600.0 , 而ubuntu23.10对应libcairo.so.2.11800.0 ,因此考虑将22.04 的库文件放在钉钉预加载目录,让其使用22.04的库libcairo.so.2.11600.0 ,测试后发现可以正常跑起来。

步骤如下:

提前预装22.04桌面版系统,从 22.04 版本的机器上拷贝库文件到 7.1.0-Release.31017 目录,并新建好对应的软链接
sudo mv libcairo.so.2.11600.0 /opt/apps/com.alibabainc.dingtalk/files/7.1.0-Release.31017/
sudo ln -s libcairo.so.2.11600.0 libcairo.so.2
chmod 777 libcairo.so.2.11600.0

配置好之后就可以正常打开软件了
在这里插入图片描述

说明

系统版本: Ubuntu 23.10
钉钉版本: 7.1.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/175649.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

​软考-高级-系统架构设计师教程(清华第2版)【第5章 软件工程基础知识(190~233)-思维导图】​

软考-高级-系统架构设计师教程(清华第2版)【第5章 软件工程基础知识(190~233)-思维导图】 课本里章节里所有蓝色字体的思维导图

FreeRTOS源码阅读笔记3--queue.c

消息队列可以应用于发送不定长消息的场合,包括任务与任务间的消息交换,队列是 FreeRTOS 主要的任务间通讯方式,可以在任务与任务间、中断和任务间传送信息,发送到 队列的消息是通过拷贝方式实现的,这意味着队列存储…

降低城市内涝风险,万宾科技内涝积水监测仪的作用

频繁的内涝会削弱和损坏城市的关键基础设施,包括道路、桥梁和公用设施。城市内涝风险降低可以减少交通中断事件,也可以保护居民安全并降低路面维修等成本,进一步确保城市基本服务继续发挥作用。对城市可持续发展来讲有效减少内涝的风险是重要…

如何正确使用 JavaScript 中的 slice() 方法

在 JavaScript 中,slice() 是一个常用的数组方法,用于从现有数组中提取一部分元素,然后返回一个新的数组。它是一个非常有用的工具,可以帮助你在不改变原始数组的情况下操作数组的子集。本文将介绍 slice() 的基本概念、使用方法、…

Unity中Shader的矩阵加减法

文章目录 前言一、什么是矩阵矩阵就是一组数的阵列 二、矩阵的加法三、矩阵的负值四、矩阵的减法五、矩阵的表示 前言 Unity中Shader用到的矩阵加减法,以及矩阵的一些基础常识 一、什么是矩阵 矩阵就是一组数的阵列 1 2 3 4 5 6 二、矩阵的加法 两个矩阵相加就是…

GoLong的学习之路(二十三)进阶,语法之并发(go最重要的特点)(锁,sync包,原子操作)

这章是我并发系列中最后的一章。这章主要讲的是锁。但是也会讲上一章channl遗留下的一些没有讲到的内容。select关键字的用法,以及错误的一些channl用法。废话不多说。。。 文章目录 select多路复用通道错误示例并发安全和锁问题描述互斥锁读写互斥锁 syncsync.Wait…

网站安全攻防战:守护数据的钢铁堡垒

在数字化时代,网站的安全性至关重要,因为它不仅关乎用户的隐私信息,还涉及到业务的正常运行。一旦网站受到攻击,可能导致数据泄露、服务中断等问题,因此网站安全应成为企业和个人关注的焦点。本文将探讨网站安全的重要…

前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(四)

你可以的&#xff0c;去飞吧&#xff01; 同步代码和异步代码 回调函数地狱和 Promise 链式调用 回调函数地狱 缔造“回调地狱”↓ 制造里层回调错误&#xff0c;却在最外层接收错误→无法捕获 axios源码抛出异常&#xff08;未捕获&#xff09; <!DOCTYPE html> <ht…

万宾科技内涝积水监测仪效果,预警城市积水

当城市之中出现强降雨或者大暴雨&#xff0c;可能会导致雨水不断堆积到城市排水管网之中&#xff0c;可能还会淹没城市的排水系统时&#xff0c;这种现象被称为城市之中的内涝&#xff0c;并且在许多城市之中内涝问题日益引起人们的关注。 内涝积水监测仪的出现成为了希望的灯塔…

leetcode:876. 链表的中间结点

一、题目 函数原型&#xff1a; struct ListNode* middleNode(struct ListNode* head) 二、思路 要找到链表的中间结点&#xff0c;有两种思路&#xff1a; 暴力解法&#xff1a;先遍历一遍链表&#xff0c;计算出链表的长度&#xff0c;再次遍历链表&#xff0c;找到中间结点。…

Window MongoDB安装

三种NOSQL的一种,Redis MongoDB ES 应用场景: 1.社交场景:使用Mongodb存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人,地点等功能 2.游戏场景:使用Mongodb存储游戏用户信息,用户的装备,积分等直接以内嵌文档的形式存储,方便查询,高效率存储和访问…

[工业自动化-20]:西门子S7-15xxx编程 - 软件编程 - 基本编程指令与梯形图基本元素:位逻辑指令、定时器指令、计数器指令、触发器指令

目录 一、PLC编程的基本指令 1.1 什么是PLC指令 1.2 PLC指令的分类 1.3 PLC指令与梯形图基本元素的关系 三、基本的位运算指令 四、边沿触发指令 4.1 什么是沿 4.2 沿的持续时间 4.3 使用场景 五、定时器指令 六、计数器指令 七、触发器指令 一、PLC编程的基本指令…