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

news/2025/2/12 12:24:54/

开发环境:
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,
最后,执行 systemctl restart cups命令 重启 cups,重启成功。。

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

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


http://www.ppmy.cn/news/74057.html

相关文章

DNS的正反向解析

1.关闭防火墙&Selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 getenforce 2.安装DNS服务器软件 yum install bind-chroot /etc/named.conf /etc/named.rfc1912.zones /var/named 3.修改主配置文件 yum install bind-chroot…

快速入门Springboot整合Datagpa操作数据库

简介SpringDatagpa Spring Data JPA是Spring Data家族的一部分,可以轻松实现基于JPA的存储库。 . JPA是ORM规范,Hibernate是JPA规范的具体实现,这样的好处是开发者可以面向JPA规范进行持久层的开发,而底层的实现则是可以切换的。S…

似然(likelihood)、极大似然、对数似然、最大后验等

1 似然 设总体X服从分布P(x;θ)(当X是连续型随机变量时为概率密度,当X为离散型随机变量时为概率分布),θ为待估参数(或者说系统参数),X1,X2,…Xn是来自于总体X的样本,x1…

eigen3使用cmake配置

1,首先找到Eigen include的路径,/usr/include/eigen3 可以看到文件夹下有3个文件夹,其中Eigen文件夹包含的是一些简单的矩阵操作;unsupported文件夹下包含一些非线性最小二乘梯度下降lm等复杂算法; 2,使用…

2023互联网Java面试真题1000道(附答案)

前言 2023 跳槽不迷茫,大家可以先收藏再看,后续跳槽都能用上的! Java程序员绝大部分工作的时间都是增删改查,很多人觉得这项工作没什么技术含量,任何一件事情都要站在不同的角度去考虑,对于大部分的java程序…

基于android的预约挂号智慧理疗app系统

需求信息: 患者客户端: 1:登录注册:用户可以通过自己的信息进行账号的注册 2:预约挂号:患者可以通过发布的科室信息进行挂号预约医生,以及选择预约时间 2:疾病查询:查看发…

计算机萌新如何系统地学习前端知识

✨求关注~ 😀博客:www.protaos.com 作为计算机萌新,系统地学习前端知识可以通过以下步骤: 前端开发涉及构建用户界面和用户体验,包括HTML、CSS和JavaScript等技术。它是与用户直接交互的部分,负责展示和控制…

三招教你图片文字转语音怎么转

随着数字化时代的到来,人们对于数字信息的获取和处理需求越来越大,而图片文字转语音技术正是为了满足这一需求而诞生的。这项技术不仅可以辅助视力障碍者,让他们能更轻松地获取信息和理解内容,而且也可以帮助正在学习外语的人们练…