云网牛站
所在位置:首页 > Linux教程 > 解决deepin 15.9.2以后版本软件太旧的问题,混合lion与panda源使用

解决deepin 15.9.2以后版本软件太旧的问题,混合lion与panda源使用

2019-06-22 10:03:23作者:duanyao稿源:深度站

采用本文介绍的方法可以解决在 deepin 15.9.2 及以上系统中软件版本太旧的问题,可以使用混合 lion 与 panda 源。

解决deepin 15.9.2以后版本软件太旧的问题,混合lion与panda源使用

 

一、前言

深度操作系统从15.9.2开始迁移至Debian stable仓库,参考深度操作系统Deepin 15.9.2测试版发布下载,迁移到Debian stable仓库

不过,由于Debian stable仓库的软件版本很多都比较老旧,对于一些专业用户(比如程序员)就不太友好了。有没有解决的办法呢?有的。先讲一些背景知识:

过去,deepin 的主要软件仓库代号 panda,基于 debian unstable 仓库,版本比较新;现在,deepin 的主要软件仓库代号 lion,基于 debian stable 仓库,版本比较老。现在,panda 仓库仍在运作。也就是:

15.9.2 以前:deepin panda <- debian unstable (版本新)

15.9.2 以后:deepin lion <- debian stable (版本老)

但要注意,以上仅限于全新安装的 15.9.2 以后的版本。如果你是从 15.9.2 以前的版本一路升级上来的,那么你暂时还是用的 panda 源,系统不会给你自动切换的。也就是说,15.9.2 以后的版本,虽然看起来都差不多,但升级上来的与全新安装的系统,实际上差别不小。

如果你是一路升级上来的,那么不用做什么修改,看到本文这里就可以结束了;如果你是新装的 15.9.2 以后的版本,可以继续。

 

二、修改软件源

下面讲我的解决方案:混合 lion 和 panda 源,但是前者的优先级要更高。

第一步,修改apt源,添加 panda 源。命令行执行 sudo dedit /etc/apt/sources.list ,可看到里面有这样一行:

deb [by-hash=force] http://packages.deepin.com/deepin lion main contrib non-free

在其下面增加一行,保存退出:

deb [by-hash=force] http://packages.deepin.com/deepin panda main contrib non-free

这样就能同时使用  lion 和 panda 源了。

第二步,设定优先级。命令行执行 sudo dedit /etc/apt/preferences ,这个文件应该还是空白,在里面添加以下内容,保存退出:

Package: *

Pin: release panda

Pin-Priority: 100

Package: *

Pin: release lion

Pin-Priority: 500

这样 lion 的优先级为 500 而 panda 为 100,会优先使用前者。

第三步,运行 sudo apt update。

到这里就完成了修改。

 

三、使用软件源

做了以上修改后,因为 lion 源优先级较高,所以正常的 apt 命令、自动升级、软件商店等都与原来无异。这里主要讲高级的用法:升级和降级。

升级就是从 panda 源安装软件。只需要加上 -t panda 参数即可(不带此参数则从优先级更高的 lion 源安装,与过去一样),例如升级 gnome-keyring 包:

sudo apt install -t panda --dry-run gnome-keyring

注意这里加上了 --dry-run 参数,意思是模拟操作,不真正改变系统。建议总是先 --dry-run 一下,看着没有什么不正常的操作(例如意外地卸载一些不该卸载的东西),然后去掉 --dry-run 重跑一遍:

sudo apt install -t panda gnome-keyring

降级则是回归 lion 源。这需要先知道具体的版本,用 apt policy 命令:

$ apt policy gnome-keyring

gnome-keyring:

已安装:3.28.2-1

候选: 3.28.2-1

版本列表:

*** 3.28.2-1 100

100 http://packages.deepin.com/deepin panda/main amd64 Packages

100 /var/lib/dpkg/status

3.20.0-3 500

500 http://packages.deepin.com/deepin lion/main amd64 Packages

这说明我们已安装的版本是 panda 源里的 3.28.2-1,可以降级到的版本是 lion 源里的 3.20.0-3,那么指明具体版本即可:

sudo apt install -t lion --dry-run gnome-keyring=3.20.0-3

检查无误后去掉 --dry-run 再执行即可。

注意,如果降级的包有多个依赖的包,则可能报错,这时需要把依赖的包也一一指定要降级的版本。

 

四、如果运行 apt --dry-run 遇到了异常情况

比如不能满足的依赖关系、企图删除你没有指示删除的包等,建议换 aptitude 试试,似乎它更加智能。我用 apt 升级 nautilus 文件管理器时报告依赖错误,而 aptitude 就可以正常完成。语法差不多:

aptitude install  -t panda -s nautilus

这里 -s 与 apt 的 --dry-run 同义,都是模拟运行,正式操作时要去掉 -s。

 

相关主题

在deepin系统中从stable切换到unstable源的方法

精选文章
热门文章