解决Ubuntu 20.04升级后gnome-control-center设置程序无法打开问题

Ubuntu 20.04 系统升级后,发现gnome设置程序无法正常打开了。

在终端运行命令查看错误信息,运行以下命令:

sudo gnome-control-center

从显示的错误信息可以看出,其调用的一些so文件,需要高版本的libc6,而Ubuntu 20.04所支持的libc6版本最高为GLIBC_2.31,高于此版本编译出的库,无法正常运行。

gnome-control-center: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/samba/libsamba-debug.so.0)
gnome-control-center: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/samba/libsamba-debug.so.0)
gnome-control-center: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/samba/libdbwrap.so.0)
gnome-control-center: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/samba/libmessages-dgm.so.0)
gnome-control-center: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /usr/lib/x86_64-linux-gnu/samba/libmessages-dgm.so.0)
gnome-control-center: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /lib/x86_64-linux-gnu/libldb.so.2)
gnome-control-center: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /lib/x86_64-linux-gnu/libldb.so.2)
gnome-control-center: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/x86_64-linux-gnu/samba/libsamba-modules.so.0)
gnome-control-center: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/x86_64-linux-gnu/samba/libwinbind-client.so.0)

对于此问题有两种解决办法:

  1. 编译新版本的glibc,将其安装到单独的目录,程序运行时指定路径调用新的so文件。
  2. 对于需要调用高版本libc6的.so文件,重新安装旧版本的deb包。

    这里采用相对简单的第2种办法。

步骤一、首先用dpkg -S [文件路径],查找出.so文件分别属于哪个包,结果如下:

libwbclient0:
/usr/lib/x86_64-linux-gnu/samba/libsamba-debug.so.0 samba-libs:
/usr/lib/x86_64-linux-gnu/samba/libdbwrap.so.0
/usr/lib/x86_64-linux-gnu/samba/libmessages-dgm.so.0
/usr/lib/x86_64-linux-gnu/samba/libsamba-modules.so.0
/usr/lib/x86_64-linux-gnu/samba/libwinbind-client.so.0 libldb2:
/lib/x86_64-linux-gnu/libldb.so.2

步骤二、编辑/etc/apt/souces.list文件,将focal-updates和focal-security两行暂时注释掉,只保留focal仓库:

deb http://mirrors.ustc.edu.cn/ubuntu/ focal main
#deb http://mirrors.ustc.edu.cn/ubuntu/ focal-updates main
#deb http://mirrors.ustc.edu.cn/ubuntu/ focal-security main

步骤三、更新apt索引,然后使用apt search [包名] 查看需要安装的包的版本:

sudo apt update
sudo apt search libwbclient0
sudo apt search samba-libs
sudo apt search libldb2
// 查找后发现旧版本包为
// libldb2=2:2.0.8-2
// libwbclient0=2:4.11.6+dfsg-0ubuntu1
// samba-libs=2:4.11.6+dfsg-0ubuntu1

步骤四、使用apt install [包名]=[版本号]安装老版本包:

sudo apt install --no-install-recommends libldb2=2:2.0.8-2 libwbclient0=2:4.11.6+dfsg-0ubuntu1 samba-libs=2:4.11.6+dfsg-0ubuntu1
// 运行时会提示一些依赖包会被删除,记录这些包名,后续步骤需要装回来:
// gnome-control-center gvfs-backends libsmbclient python3-ldb ubuntu-desktop ubuntu-desktop-minimal

步骤五、将这些包标记为hold,即后续运行apt upgrade时不会被升级:

sudo apt-mark hold libldb2 libwbclient0 samba-libs

步骤六、安装回被删除的依赖包:

// 此步骤会提示gvfs等包版本不匹配,因此需要先安装指定旧版本的gvfs等包:
sudo apt install gvfs=1.44.1-1ubuntu1 gvfs-common=1.44.1-1ubuntu1 gvfs-daemons=1.44.1-1ubuntu1 gvfs-fuse=1.44.1-1ubuntu1 gvfs-libs=1.44.1-1ubuntu1
sudo apt install --no-install-recommends gnome-control-center gvfs-backends libsmbclient python3-ldb ubuntu-desktop ubuntu-desktop-minimal

步骤七、从开始菜单尝试运行gnome设置程序,确认其能正常运行。

步骤八、编辑/etc/apt/souces.list文件,恢复原来的focal-updates和focal-security源:

deb http://mirrors.ustc.edu.cn/ubuntu/ focal main
deb http://mirrors.ustc.edu.cn/ubuntu/ focal-updates main
deb http://mirrors.ustc.edu.cn/ubuntu/ focal-security main

步骤九、运行apt update和apt upgrade,更新系统:

sudo apt update
sudo apt upgrade
// 此步骤会发现被mark为hold状态的包,是不会被升级的。

步骤十、再次从开始菜单尝试运行gnome设置程序,确认其能正常运行。

至此,问题已被解决。

解决Ubuntu 20.04升级后gnome-control-center设置程序无法打开问题的更多相关文章

  1. 如何解决ubuntu 12.04重启后出现waiting for network configuration和网络标志消失问题

    如何解决ubuntu 12.04重启后出现waiting for network configuration和网络标志消失问题 作为菜鸟的我在学着设置网络后,重启电脑后显示 waiting forne ...

  2. Ubuntu 20.04 手动安装 sublime_text 并建立搜索栏图标(解决 Ubuntu 20.04 桌面图标无法双击打开问题)

    下载sublime_text_3离线程序包 wget https://download.sublimetext.com/sublime_text_3_build_3211_x64.tar.bz2 #x ...

  3. Ubuntu 14.04 升级后 VPN 无法连接的问题

    如果不知道怎么配置 VPN Server(IPSEC + L2TP),可以看这篇文章(英文). 问题表现: 将 Ubuntu 12.04 通过自动更新 —— do-release-upgrade —— ...

  4. 解决ubuntu 20.04、22.04 即新版本 fcitx 无法使用的问题

    前提 已在系统设置中将fcitx设置为默认 fcitx开机自启 配置的过程不在本文讨论范围之内 开机自启可通过安装gnome-tweaks配置实现 问题分析流程 手动启动fcitx时提示设置XMODI ...

  5. 彻底解决Ubuntu 14.04 重启后DNS配置丢失的问题

    最近得到一个比较好用的DNS,每次重启后都修改DNS配置文件 /etc/resolv.conf 重启就会失效 从网上得知 /etc/resolv.conf中的DNS配置是从/etc/resolvcon ...

  6. OpenCV4.4.0 安装测试 Installation & Examination (Ubuntu18.04, Ubuntu 20.04)

    OpenCV4.4.0 安装测试 Installation & Examination (Ubuntu18.04, Ubuntu 20.04) 单纯简单的 OpenCV 安装配置方法,在这个地 ...

  7. 内网 Ubuntu 20.04 搭建 docusaurus 项目(或前端项目)的环境(mobaxterm、tigervnc、nfs、node)

    内网 Ubuntu 20.04 搭建 docusaurus 项目(或前端项目)的环境 背景 内网开发机是 win7,只能安装 node 14 以下,而 spug 的文档项目采用的是 Facebook ...

  8. ubuntu 20.04 基于kubeadm部署kubernetes 1.22.4集群及部署集群管理工具

    一.环境准备: 集群版本:kubernetes 1.22.4 服务器系统 节点IP 节点类型 服务器-内存/CUP hostname Ubuntu 20.04 192.168.1.101 主节点 2G ...

  9. Windows10 + Ubuntu 20.04 LTS 双系统安装 (UEFI + GPT)(图文,多图预警)

    版权声明:本文为CSDN博主「ZChen1996」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/ZChen1 ...

  10. Ubuntu 20.04上通过Wine 安装微信

    没有想过会在一个手机软件上花这么多心思,好在今天总算安装成功,觉得可以记录下这个过程,方便他人方便自己. 首先介绍下我使用过的其他方法,希望可以节省大家一些时间: Rambox Pro:因为原理是网页 ...

随机推荐

  1. CF1326G 题解

    题意: 蛛网树是一颗平面树,满足点是该树的凸包的顶点上等价于其是叶子. 给定一个平面树,求有多少种对点集的划分,使得每个划分出来的集合都是蛛网树. Solution 考虑树形 dp.设 \(f_u\) ...

  2. 耳分解、双极定向和 P9394 Solution

    耳分解 设无向图 \(G'(V',E')\subset G(V,E)\),简单路径或简单环 \(P:x_1\to \dots \to x_k\) 被称为 \(G\) 关于 \(G'\) 的耳,当且仅当 ...

  3. 使用crewai创建属于你自己的AI团队

    crewai介绍 CrewAI 是一个用于协调自主 AI 代理的前沿框架. CrewAI 允许你创建 AI 团队,其中每个代理都有特定的角色.工具和目标,协同工作以完成复杂任务. 把它想象成组建你的梦 ...

  4. DW001 - 数据仓库理论知识

    数据仓库概念 数据仓库基本架构 数据集市概念 数据湖概念 数据仓库概念 数据仓库(Data Warehouse,DW)是一个面向主题的.集成的.非易失的.反映历史变化的.用来支持企业管理决策的数据集合 ...

  5. 探究高空视频全景AR技术的实现原理

    1. 引言 笔者认为现阶段AR技术的应用是还是比较坑爹的,大都是噱头多但是实用的成分少,拿出来做做DEMO是可以,但是难以在实际的项目中落地产生实际的经济价值.一方面是很难在业务上难以找到合适的应用场 ...

  6. 一段VUE代码:通过组件封装全局方法、自定义指令和注册组件

    index.js // 插件定义第一种方式,对象:拥有 install() 方法的对象 const myPlugin = { install(app, options) { // 配置全局方法 app ...

  7. Qt使用QAudioInput、QAudioOutput实现局域网的音频通话

    Qt使用QAudioInput.QAudioOutput实现局域网的音频通话 本文旨在介绍一下用Qt来实现局域网音频通话功能 文章目录 Qt使用QAudioInput.QAudioOutput实现局域 ...

  8. 文件上传fuzz工具-Upload_Auto_Fuzz

    一.工具介绍 ​ 在日常遇到文件上传时,如果一个个去测,会消耗很多时间,如果利用工具去跑的话就会节省很多时间,本Burp Suite插件专为文件上传漏洞检测设计,提供自动化Fuzz测试,共300+条p ...

  9. 前端解析excel表格实现

    1. 背景:在做react项目时,遇到一个解析excel的需求变更,把从原来后端解析变更为前端解析. 1.1 由于后端解析excel文件有安全隐患,因为项目中后端不允许上传文件,当然后端解析对前端来说 ...

  10. 关闭windows计划重启

    前言 windows 总是自动计划更新 解决方案 需要禁用服务 "Windows Update" 和 "更新 Orchestrator 服务" 首先去这里下载P ...