mha*_*har 10 package-management apt dpkg nala
Nala是最近推出的包管理器,也用于dpkg管理 Ubuntu 中的包。我安装了nala并且获得了非常不错的体验。
现在,我想apt从我的系统中删除它,这样nala系统上就只剩下一个包管理器 ( ) 了。
我试过:
nala remove apt --remove-essentials
Run Code Online (Sandbox Code Playgroud)
但在该命令成功运行后,我丢失了apt和nala。
nala update我得到:
bash: /usr/bin/nala: No such file or directory
Run Code Online (Sandbox Code Playgroud)
Art*_*ild 27
你犯了一个相当大的错误,你想当然地认为nala不需要apt——它确实需要。
apt depends nala通过运行, 显示的依赖关系可以完全看出这一点nala。
nala
Depends: python3-anyio
Depends: python3-httpx
Depends: python3-pexpect
Depends: python3-rich
Depends: python3-tomli
Depends: python3-typer
Depends: python3-typing-extensions
Depends: <python3:any>
python3
Depends: apt
Depends: python3-apt
Depends: python3-debian
Recommends: python3-socksio
Run Code Online (Sandbox Code Playgroud)
所以如果nala没有 则无法运行apt。
如果您仔细阅读了该命令的输出nala remove apt --remove-essentials,您很可能会发现它即将删除nala软件包本身。因此,检查命令将要执行的操作非常重要,尤其是当您使用选项--remove-essentials(可能会破坏系统的选项)运行命令时。
--dry-run通常,在删除关键软件包或运行 - 之前执行此操作是一个好主意 -讽刺的是,这是一个仅支持但不支持--remove-essentials的选项。aptnala
另外,你没有说明为什么你突然想删除apt,但我有一些猜测:
您想“清理”您的包裹。
有时这是一个好主意,但当您不确定后果时就不是了。nala 另外,如果您已阅读自述文件的第一部分:
Nala 是
libapt-pkg. 具体来说,我们使用python-aptapi 进行交互。
或者从包装信息中apt show nala:
APT 包管理器的命令行前端
这应该给你一个提示,它依赖于apt.
您对常见任务的性能感到满意nala,因此不需要apt.
你可能认为情况确实如此,但我认为事实并非如此。nala是一个处于开发阶段的软件,apt已经存在了 30 年。此外,虽然nala提供了 的最常见功能apt,但它无法执行任何您突然可能需要的更高级的功能(例如--dry-run) - 而且通常是在您最不期望的时候。因此,对于日常任务来说nala可能没问题 - 但它可能永远无法取代完整的apt软件包。
现在,要apt在删除系统后恢复系统,请参阅此问答。该文件/var/log/apt/history.log实际上应该包含所有已删除的软件包的列表,您必须手动重新安装这些软件包。
您基本上要做的就是为您的系统及其所有依赖包apt找到适当的版本(例如 Jammy),并手动安装这些包(因为您删除了唯一可以实际为您处理依赖项的包管理器)。dpkg