关于Ubuntu软件/依赖库的降级问题

您所在的位置:网站首页 ubuntu降级22降级到20 关于Ubuntu软件/依赖库的降级问题

关于Ubuntu软件/依赖库的降级问题

2023-12-28 23:25| 来源: 网络整理| 查看: 265

前言:

在Ubuntu中安装新的软件/依赖库时,经常会遇到环境中已经安装了该软件/依赖库的依赖文件的新版,而需要安装的软件/依赖库所需的为旧版依赖文件。 本文为笔者参考了网上的方法,自己编写的博客。

1. 关于Ubuntu软件/依赖库的降级问题: 1.1 安装软件/依赖库时出现的问题: sudo apt-get install libglib2.0-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到(Incoming)目录移出。 下列信息可能会对解决问题有所帮助: 下列软件包有未满足的依赖关系: libglib2.0-dev : 依赖: libglib2.0-0 (= 2.48.0-1ubuntu4) 但是 2.48.2-0ubuntu4.4 正要被安装 依赖: libglib2.0-bin (= 2.48.0-1ubuntu4) 但是 2.48.2-0ubuntu4.4 正要被安装 依赖: zlib1g-dev 但是它将不会被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。 1.2 分析问题:

安装 libglib2.0-dev 需要 2.48.0-1ubuntu4 版本的 libglib2.0-0 和 2.48.0-1ubuntu4 版本的 libglib2.0-bin,但是环境中已经有 2.48.2-0ubuntu4.4 版本的 libglib2.0-0 和 2.48.2-0ubuntu4.4 版本的 libglib2.0-bin,因此导致 libglib2.0-dev 安装失败

1.3 解决方法一(使用aptitude降级):

使用 aptitude 来处理软件/依赖库版本。

# 1.3.1 安装aptitude sudo apt-get install aptitude # 1.3.2 通过安装的形式查看无法安装的软件/依赖库的依赖 sudo aptitude install libglib2.0-dev 下列“新”软件包将被安装。 libglib2.0-dev{b} libpcre3-dev{a} libpcre32-3{a} libpcrecpp0v5{a} zlib1g-dev{ab} 0 个软件包被升级,新安装 5 个, 0 个将被删除, 同时 0 个将不升级。 需要获取 2,270 kB 的存档。 解包后将要使用 12.3 MB。 下列软件包存在未满足的依赖关系: zlib1g-dev : 依赖: zlib1g (= 1:1.2.8.dfsg-2ubuntu4) 但是 1:1.2.8.dfsg-2ubuntu4.1 已安装。 libglib2.0-dev : 依赖: libglib2.0-0 (= 2.48.0-1ubuntu4) 但是 2.48.2-0ubuntu4.4 已安装。 依赖: libglib2.0-bin (= 2.48.0-1ubuntu4) 但是 2.48.2-0ubuntu4.4 已安装。 下列动作将解决这些依赖关系: 保持 下列软件包于其当前版本: 1) libglib2.0-dev [未安装的] 2) zlib1g-dev [未安装的] # 1.3.3 通过安装旧版本的依赖库的形式来实现降级软件/依赖库,降级需要一层一层的去降级 # 降级的命令为: # sudo aptitude install DependName=Versions # 注:DependName 为依赖名,Versions 为版本号 # # 例如 libglib2.0-dev 的降级循序为: # 1.3.3-1. 降级 libglib2.0-dev 的 libglib2.0-0 为 2.48.0-1ubuntu4 版本,使用命令: sudo aptitude install libglib2.0-0=2.48.0-1ubuntu4 # # 1.3.3-2. 降级 libglib2.0-dev 的 libglib2.0-bin 版本,使用命令: sudo aptitude install libglib2.0-bin=2.48.0-1ubuntu4 # # 1.3.3-3. 降级 zlib1g 的 1:1.2.8.dfsg-2ubuntu4 版本,使用命令: sudo aptitude install zlib1g=1:1.2.8.dfsg-2ubuntu4 # # 举例“libglib2.0-dev”的降级响应: 下列软件包将被“降级”: libglib2.0-0 0 个软件包被升级,新安装 0 个, 1 个被降级, 0 个将被删除, 同时 0 个将不升级。 需要获取 1,183 kB 的存档。 解包后将要使用 1,409 kB。 下列软件包存在未满足的依赖关系: libglib2.0-bin : 依赖: libglib2.0-0 (= 2.48.2-0ubuntu4.4) 但是 2.48.0-1ubuntu4 将被安装。 下列动作将解决这些依赖关系: 删除 下列软件包: 1) libglib2.0-bin 2) lightdm 3) ubuntu-desktop 4) ubuntu-settings 5) unity 保留下列未解决的依赖关系: 6) indicator-appmenu 推荐 indicator-applet | indicator-renderer 7) indicator-datetime 推荐 indicator-applet | indicator-renderer 8) indicator-messages 推荐 indicator-applet | indicator-renderer 9) indicator-power 推荐 indicator-applet (>= 0.2) | indicator-renderer 10) indicator-printers 推荐 indicator-applet (>= 0.2) | indicator-renderer 11) indicator-session 推荐 indicator-applet (>= 0.2) | indicator-renderer 12) unity-greeter 推荐 lightdm 是否接受该解决方案?[Y/n/q/?] # 选择是,输入“Y” # 1.3.4 安装 libglib2.0-dev sudo aptitude install libglib2.0-dev 下列“新”软件包将被安装。 libglib2.0-dev libpcre3-dev{a} libpcre32-3{a} libpcrecpp0v5{a} zlib1g-dev{a} 0 个软件包被升级,新安装 5 个, 0 个将被删除, 同时 0 个将不升级。 需要获取 2,270 kB 的存档。 解包后将要使用 12.3 MB。 您要继续吗?[Y/n/?] Y 读取: 1 http://cn.archive.ubuntu.com/ubuntu xenial/main i386 libpcrecpp0v5 i386 2:8.38-3.1 [16.0 kB] 读取: 2 http://cn.archive.ubuntu.com/ubuntu xenial/main i386 libpcre32-3 i386 2:8.38-3.1 [136 kB] 读取: 3 http://cn.archive.ubuntu.com/ubuntu xenial/main i386 libpcre3-dev i386 2:8.38-3.1 [530 kB] 读取: 4 http://cn.archive.ubuntu.com/ubuntu xenial/main i386 zlib1g-dev i386 1:1.2.8.dfsg-2ubuntu4 [167 kB] 读取: 5 http://cn.archive.ubuntu.com/ubuntu xenial/main i386 libglib2.0-dev i386 2.48.0-1ubuntu4 [1,422 kB] 已下载 2,270 kB,耗时 5秒 (416 kB/s) 正在选中未选择的软件包 libpcrecpp0v5:i386。 (正在读取数据库 ... 系统当前共安装有 183738 个文件和目录。) 正准备解包 .../libpcrecpp0v5_2%3a8.38-3.1_i386.deb ... 正在解包 libpcrecpp0v5:i386 (2:8.38-3.1) ... 正在选中未选择的软件包 libpcre32-3:i386。 正准备解包 .../libpcre32-3_2%3a8.38-3.1_i386.deb ... 正在解包 libpcre32-3:i386 (2:8.38-3.1) ... 正在选中未选择的软件包 libpcre3-dev:i386。 正准备解包 .../libpcre3-dev_2%3a8.38-3.1_i386.deb ... 正在解包 libpcre3-dev:i386 (2:8.38-3.1) ... 正在选中未选择的软件包 zlib1g-dev:i386。 正准备解包 .../zlib1g-dev_1%3a1.2.8.dfsg-2ubuntu4_i386.deb ... 正在解包 zlib1g-dev:i386 (1:1.2.8.dfsg-2ubuntu4) ... 正在选中未选择的软件包 libglib2.0-dev。 正准备解包 .../libglib2.0-dev_2.48.0-1ubuntu4_i386.deb ... 正在解包 libglib2.0-dev (2.48.0-1ubuntu4) ... 正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ... 正在处理用于 man-db (2.7.5-1) 的触发器 ... 正在处理用于 libglib2.0-0:i386 (2.48.0-1ubuntu4) 的触发器 ... 覆盖文件 /usr/share/glib-2.0/schemas/50_sogoupinyin.gschema.override 中指定的方案 org.gnome.settings-daemon.plugins.xsettings 中没有键 Gtk/IMModule;忽略对此键的覆盖。 正在设置 libpcrecpp0v5:i386 (2:8.38-3.1) ... 正在设置 libpcre32-3:i386 (2:8.38-3.1) ... 正在设置 libpcre3-dev:i386 (2:8.38-3.1) ... 正在设置 zlib1g-dev:i386 (1:1.2.8.dfsg-2ubuntu4) ... 正在设置 libglib2.0-dev (2.48.0-1ubuntu4) ... 正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ... 1.4 解决方法二(使用apt-get降级):

使用 apt-get 来处理软件/依赖库版本,该方法笔者并未验证,目前使用的为第1中方法。

# 1.4.1 通过安装的形式查看无法安装的软件/依赖库的依赖 sudo apt-get install libglib2.0-dev libglib2.0-dev : Depends: libglib2.0-0 (= 2.33.12+really2.32.4-5) but 2.42.1-1 is to be installed Depends: libglib2.0-bin (= 2.33.12+really2.32.4-5) but 2.42.1-1 is to be installed Depends: libpcre3-dev (>= 8.11) but it is not going to be installed E: Unable to correct problems, you have held broken packages. # 1.4.2 通过安装的形式查看无法安装的软件/依赖库的依赖 sudo apt-get install libglib2.0-0=2.33.12+really2.32.4-5 sudo apt-get install libglib2.0-bin=2.33.12+really2.32.4-5 sudo apt-get install libpcre3-dev=8.11


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3