jianguo922
2019-06-13 02:46 deepin
谢谢分享
Reply Like 0 View the author
https://bbs.deepin.org/post/179163
修改源以后在应用市场理安装了几个软件,但是想卸载的时候提示卸载失败。。。 ...
https://bbs.deepin.org/post/179163
从命令行卸载, 看下报什么错误?
https://bbs.deepin.org/post/179163
安装不了python3.6 python3.7, 即使源码安装后也不能使用pip3,好多依赖问题
https://bbs.deepin.org/post/179163
优先级那里最好不要这么做,还是要设置稳定版的源为最高优先级,再通过:aptitude install -t panda 包名 ...
https://bbs.deepin.org/post/179163
我的确是设置稳定版的源为最高优先级的啊,你再看看?
免责声明:本文与 deepin 官方无关,也未经全面测试,请酌情食用。尽量先 --dry-run;遇到问题可在这里回帖,大家一起讨论。
一、背景知识
深度操作系统从15.9.2开始迁移至Debian stable仓库:https://www.deepin.org/2019/03/1 ... %e4%bb%93%e5%ba%93/
不过,由于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 再执行即可。
注意,如果降级的包有多个依赖的包,则可能报错,这时需要把依赖的包也一一指定要降级的版本,详见: https://www.linuxuprising.com/20 ... es-to-specific.html
四、如果运行 apt --dry-run 遇到了异常情况
比如不能满足的依赖关系、企图删除你没有指示删除的包等,建议换 aptitude 试试,似乎它更加智能。我用 apt 升级 nautilus 文件管理器时报告依赖错误,而 aptitude 就可以正常完成。语法差不多:
aptitude install -t panda -s nautilus
这里 -s 与 apt 的 --dry-run 同义,都是模拟运行。正式操作时要去掉 -s 。