故事略长,但是先讲重点
如果你是systemd作为init程序,那么不要升级sysv-rc-conf,甚至可以直接卸载
正文:AtomPi 正点原子RK3568 Debian升级小记
新拿到手的RK3568,自带的是Debian11 说实话,能用,如果不像我一样对新系统偏执完全不用升级
升级系统步骤如下:
设置timeshift系统备份,很重要,不要莽,去搜,简单易用有效!!
删除所有dbgsym
dpkg -l | grep dbgsym | awk '{print $2}' | xargs sudo dpkg --purge
这个命令说实话有点危险,它本意是删除所有带dbgsym的软件包,后续升级时,这些软件包会造成依赖问题
修改/etc/apt/sources.list 我这里是Debian11升12,所以把bullseye改为bookworm
sudo apt update $$ sudo apt upgrade
升级后你会发现一些软件包没有被升级,我的处理方式挺麻烦的,当然你选择不升级也不会有任何影响。
我这边大概有80多个未升级的软件包,很多软件包能看出来是一类的,当你使用
'''
sudo apt upgrade
sudo apt dist-upgrade
'''
都不能升级,但sudo apt upgrade [特定软件包名]又可以升级时,可以试试这样(例如gstreamer):
dpkg -l | grep gstreamer | awk '{print $2}' | xargs sudo apt dist-upgrade -y --allow-change-held-packages
好,其实以上这些都不是我想讲的
我想说的是其中一个软件包sysv-rc-conf
在尝试单独升级这个包时,会出现systemd相关的依赖冲突问题。但是奇怪的是其他软件包的依赖问题都是这样子的:
升级A时
A依赖B B版本不对
B依赖A A的新版本不能被B接受
但是sysv-rc-conf却没有出现在依赖问题中。
然后我试着删掉包重装。然后发现重装时要求删掉我的systemd
这下我知道为什么我第一次升级把systemd升没了。上一次我的处理方法是,记录所有包,删掉所有包,重装所有包。
sysv init和systemd init是冲突的。用systemd就好了。