我正在运行 Debian bullseye 并想安装 KeepassXC。我尝试运行sudo apt install keepassxc
,但事实证明 keepassxc 并不属于 bullseye 版本的一部分。我在 /etc/apt/sources.list 中添加了一行 sid 镜像,然后运行sudo apt update
。在意识到这可能是一个坏主意后,我在更新运行时执行了键盘中断(Ctrl-C)。当时它已经运行了一段时间,甚至请求了两次程序重启。然后我注释掉了sources.list 文件中的行并sudo apt update
再次运行,其输出表明没有更新。然后我运行了sudo apt autoremove
,删除了 3 个包。
我的依赖树是否已经被彻底搞乱了?如果我运行 a sudo apt upgrade
,这会引入 sid 版本中的更改吗?我不完全理解更新和升级之间的区别,所以这可能不是问题。
任何帮助将不胜感激。谢谢!
编辑:
输出apt policy
:
Package files: 100 /var/lib/dpkg/status release a=now 500 http://httpredir.debian.org/debian stretch/non-free amd64 Packages release v=9.13,o=Debian,a=oldstable,n=stretch,l=Debian,c=non-free,b=amd64 origin httpredir.debian.org 500 http://httpredir.debian.org/debian stretch/contrib amd64 Packages release v=9.13,o=Debian,a=oldstable,n=stretch,l=Debian,c=contrib,b=amd64 origin httpredir.debian.org 500 http://httpredir.debian.org/debian stretch/main amd64 Packages release v=9.13,o=Debian,a=oldstable,n=stretch,l=Debian,c=main,b=amd64 origin httpredir.debian.org 500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages release v=9,o=Debian,a=oldstable,n=stretch,l=Debian-Security,c=main,b=amd64 origin security.debian.org 500 http://mirrors.ocf.berkeley.edu/debian stretch/main amd64 Packages release v=9.13,o=Debian,a=oldstable,n=stretch,l=Debian,c=main,b=amd64 origin mirrors.ocf.berkeley.edu Pinned packages:
答案1
我有点惊讶,apt update
会要求“程序重新启动两次”。
apt update
检索 中配置的所有存储库/etc/apt/sources.list
和 中的文件的存储库信息/etc/apt/sources.list.d
。它不会导致任何软件包升级,也不会导致任何内容重新启动或要求重新启动。
apt upgrade
升级系统已安装的软件包,以便它们匹配最新的可用版本,如有必要,根据“pin 优先级”进行调整(以及默认版本,如果配置,这是一种 pin 优先级)。
因此apt update
,在添加 Sid 条目后,它本身只会检索存储库信息,不会将任何内容升级到 Sid。删除 Sid 条目并apt update
再次运行将导致 Sid 信息被遗忘(或者更确切地说,不再被考虑)。后续人员apt upgrade
将不知道 Sid 中的软件包(和版本)。
你最初的问题是令人惊讶的,因为keepassxc
可在 Bullseye 中使用自从 Bullseye 存在以来,一直如此。
总之:如果您已将/etc/apt/sources.list
配置恢复到以前的值并apt update
从那时起运行,则不会发生任何更改,并且您应该能够keepassxc
在不需要 Sid 存储库的情况下进行安装。
就撤消apt update
命令而言,您永远无法完全除非您有 的备份,否则请撤消它/var/lib/apt/lists
,因为仍配置的存储库中的信息已更新。然而,仅有的仍然配置的存储库会被考虑在内。