ubuntu1804替换系统的cups后,启动cups时报错 undefined symbol:_cupsMessageSave。。。

news2024/10/6 12:33:48

开发环境:
Ubuntu18.04 + cups-2.2.7
最终要将cups-2.2.7替换为cups-.2.3.3


好,在编译完cups后,对系统的cups进行替换,,此操作已完成。。。。

接下来,启动cups,发现启动失败。。
在这里插入图片描述
紧接着执行 journalctl -f -u cups,追踪错误。
在这里插入图片描述
**这个意思就是这个动态库中没有这个函数,,,,

好,查看cups所依赖的动态库,执行命令 ldd /usr/sbin/cupsd
在这里插入图片描述

里面有一个非常关键的cups的库,libcups.so.2
编译cups时会生成,在 /usr/lib/libcups.so.2
执行命令 nm -D /usr/lib/libcups.so.2 > log

在这里插入图片描述


打开log可以看到 确实有这个 _cupsMessageSave函数,,,
那为啥还报错???

执行命令 find / -name libcups.so.2

在这里插入图片描述
发现在 /usr/lib/x86_64-linux-gnu下也存在 libcups.so.2文件。
于是执行命令 nm -D /usr/lib/x86_64-linux-gnu/libcups.so.2 > log
打开log观察,发现没有 _cupsMessageSave函数。
那报错就不奇怪了。。。。

在这里插入图片描述


/usr/lib/x86_64-linux-gnu/是干什么的???

/usr/lib/x86_64-linux-gnu/ 是一个Linux系统中存放共享库文件的默认目录,主要用于存放64位的共享库文件。共享库文件是一些程序所需的动态链接库,它们包含了程序运行所需的一些函数和操作系统调用的实现。在Linux系统中,许多程序都会使用共享库文件,因此将这些共享库文件存放在一个目录中,可以方便程序的调用和管理。
在64位Linux系统中,共享库文件通常存放在 /usr/lib/x86_64-linux-gnu/ 目录下,而32位系统中则存放在 /usr/lib/i386-linux-gnu/ 目录下。但是,有些发行版也可能将共享库文件存放在其他目录下,这取决于发行版的特定配置。

例如在麒麟V10的ARM架构上,这个目录是 /usr/lib/aarch64-linux-gnu。。



解决方案

此时将编译生成的libcups.so.2动态库拷贝替换 /usr/lib/aarch64-linux-gnu 目录下的 libcups.so.2, 或者直接将 /usr/lib/aarch64-linux-gnu下的libcups.so.2直接删除。
最后,执行 systemctl restart cups命令 重启 cups,重启成功。。

此时,我们再看看 ldd /usr/sbin/cupsd
在这里插入图片描述

cups启动成功的结果。
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Java 核心技术面试》课程笔记(九)

对比 Hashtable、HashMap、TreeMap 有什么不同? 典型回答 Hashtable、HashMap、TreeMap 都是最常见的⼀些 Map 实现,是以键值对的形式存储和操作数据的容器类型。Hashtable 是早期 Java 类库提供的⼀个哈希表实现,本身是同步的,…

GE H201TI 全系统自检和自诊断

Hydran 201Ti是一个小型在线预警发射器。它永久安装在变压器上,将为工作人员提供各种故障气体复合值的单一ppm读数,以提醒他们潜在的问题。 可以下载该值,并且可以将警报设置在预定水平,以提醒人员并能够监控发展中的故障状况。 …

作为一位php程序员应具要有那些能力

最近,随着信息技术的发展,更多的人开始关注PHP程序员的职业发展,并渴望成为一名高薪稳定就业的PHP程序员。但是,想要成为一名优秀的PHP程序员,并不仅仅需要掌握PHP的语言基础,还需要具备其他的技能和能力。…

本地代码提交到gitee

提交步骤 注意:该步骤需要使用git工具,请提前下载 参考文章1:如何将本地代码上传到 gitee 该博客包含了gitee创建仓库流程 参考文章2:Git push命令报hint: Updates were rejected because the remote contains work that you do问…

【论文阅读笔记】Federated Unlearning with Knowledge Distillation

个人阅读笔记,如有错误欢迎指出 Arxiv 2022 [2201.09441] Federated Unlearning with Knowledge Distillation (arxiv.org) 问题: 法律要求客户端有随时要求将其贡献从训练中消除的权利 让全局模型忘记特定客户的贡献的一种简单方法是从头开始对模型进…

【机器视觉4】双目立体视觉标定

双目立体视觉标定的目的是标定左、右两个摄像机之间的坐标转换关系。 双目立体视觉的标定过程:采用MATLAB图像处理和计算机视觉库中的 Stereo Camera Calibrator(SCC)来标定双目立体视觉系统中左、右摄像机并获得左右摄像机的内参矩阵 M 1 M_1 M1​、 M 2 M_2 M2​…

Midjourney|文心一格prompt教程[技巧篇]:生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学

Midjourney|文心一格prompt教程[技巧篇]:生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学 1.技巧一:临摹 我认为学习图片类的 prompt,跟学习画画是类似的,最好的学习方法不是直接用模板。…

【FMC155】2 路14-bit、500MSPS/1GSPS/1.25GSPS 直流耦合ADC 同步采集FMC 子卡模块(AD9680)中文资料

板卡概述 FMC155 是一款基于VITA57.1 标准的,实现2 路14-bit、500MSPS/1GSPS/1.25GSPS 直流耦合ADC 同步采集FMC 子卡模块。该模块遵循VITA57.1 规范,可直接与FPGA 载卡配合使用,板卡ADC 器件采用ADI 的AD9680 芯片,该芯片具有两…

结合Sqoop练习一下columns、where和query参数

1、前期的数据准备 1》创建一个学生表 create table student(id char(30),name char(30),age int,phone char(100),address char(100)); 2》插入数据 insert into student values("1001","zhanghuan","21","1111","guiyang&q…

wpf工程中加入Hardcodet.NotifyIcon.Wpf生成托盘

1、在项目中用nuget引入Hardcodet.NotifyIcon.Wpf。如下图所示。 2、在App.xaml中创建托盘界面&#xff0c;代码是写在 App.xaml 里面 注意在application中一定要加入这一行代码&#xff1a; xmlns:tb"http://www.hardcodet.net/taskbar" 然后在<Application.Re…

科研热点| 慎投!3本期刊被剔除SCIE, 5月SCIE/SSCI目录已更新 (附下载)~

2023年5月18日&#xff0c;科睿唯安更新了Web of Science核心期刊目录&#xff0c;此次更新后SCIE期刊目录共包含9503本期刊&#xff0c;SSCI期刊目录共包含3557本期刊。此次SCIE & SSCI期刊目录更新&#xff0c;与上次更新&#xff08;2023年4月&#xff09;相比&#xff…

NestedFormer:用于脑肿瘤分割的嵌套模态感知Transformer

文章目录 NestedFormer: Nested Modality-AwareTransformer for Brain Tumor Segmentation摘要方法Global Poolformer EncoderNested Modality-Aware Feature AggregationModality-Sensitive Gating 实验结果 NestedFormer: Nested Modality-AwareTransformer for Brain Tumor …

谈一谈CMDB

大家好&#xff0c;我是易安&#xff01;今天我们谈一谈运维相关的话题&#xff0c;配置管理&#xff0c;专业一点就叫作 CMDB&#xff08;Configuration Management DataBase&#xff09;。 概念 CMDB并不是一个新概念&#xff0c;它源于ITIL&#xff08;Information Technol…

大学毕业设计这样做可以吗

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

Evita中规定的安全汽车车载电子网络架构

摘要 文章目的 安全需求 安全架构 硬件和软件分区 EVITA硬件安全模块 ​编辑硬件接口 安全软件 部署 摘要和展望 REFERENCES 摘要 本文介绍了用于安全汽车车载网络的硬件和软件组件&#xff0c;为保护外部车辆通信提供基础。基于欧洲研究项目EVITA&#xff08;http://…

数据结构之初识树与堆

前言&#xff1a;前面学习了顺序表&#xff0c;队列&#xff0c;栈&#xff0c;链表&#xff0c;我们知道他们都是一种线性表&#xff0c;是一种线性结构&#xff0c;而除此之外&#xff0c;仍有许多我们还没认识的结构&#xff0c;比如树形结构&#xff0c;不同于线性结构&…

这个框架真心可以!10分钟就搞定一个网站!

最近有很多小伙伴问我&#xff1a;有没有能快速能搭建网站的框架。 首先我去尝试了低代码&#xff0c;快确实快&#xff0c;但是样式和功能确实差点意思。 偶然间&#xff0c;我发现一款神奇的网站框架:VuePress。 我尝试部署了下&#xff0c;然后一下爱上了它。我发现很多博…

百度飞桨语音PaddleSpeech在win上运行语音识别(ASR)与语音合成(TTS)

百度飞桨语音PaddleSpeech在win上运行语音识别(ASR)与语音合成(TTS) 前言 PaddleSpeech是PaddlePadle百度飞桨深度学习框架下的语音服务工具包。PaddleSpeech包括自监督学习模型、带标点符号的 SOTA/流式 ASR、带文本前端的流式 TTS、说话人验证系统、端到端语音翻译和关键字…

【Scala---01】Scala 基础 『 变量和数据类型 | 控制语句 | 函数式编程』

文章目录 1. 变量和数据类型1.1 变量和常量1.2 字符串1.3 数据类型1.4 伴生对象与伴生类1.5 代码块1.6 Unit、null、Nothing1.7 强制转换1.8 与 equals 2. 控制语句2.1 分支语句2.2 循环语句&#xff08;1&#xff09;for循环&#xff08;2&#xff09;while/do-while循环&…

QT客户端外包开发流程及难点

QT是一种跨平台的C应用程序开发框架&#xff0c;可以用于开发各种类型的客户端软件&#xff0c;包括桌面应用程序、移动应用程序、嵌入式应用程序等。在开发跨平台的客户端语言中&#xff0c;QT应该是应用最广泛的&#xff0c;今天和大家分享开发流程及技术难点&#xff0c;希望…