那拉是最近推出的软件包管理器,也可用于dpkg
管理 Ubuntu 中的软件包。我安装了它nala
,并且获得了非常不错的体验。
现在,我想apt
从我的系统中删除它,以便只nala
保留一个包管理器()。
我试过:
nala remove apt --remove-essentials
但是这个命令成功运行后,我丢失了apt
和nala
。
我nala update
得到了:
bash: /usr/bin/nala: No such file or directory
答案1
你犯了一个相当大的错误,认为理所当然的事情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
因此,nala
没有 就无法发挥作用apt
。
如果您仔细阅读了命令的输出nala remove apt --remove-essentials
,您很可能会看到它即将删除nala
软件包本身。因此,检查命令将要执行的操作非常重要,尤其是当您使用选项--remove-essentials
(可能破坏系统的选项)运行命令时。
--dry-run
在删除关键软件包或运行之前执行此操作通常是一个好主意- 具有讽刺意味的是,这是一个仅支持但尚不支持的--remove-essentials
选项。apt
nala
另外,您没有说明为什么突然想要删除apt
,但我有一些猜测:
您想“清理”您的包裹。
这有时是个好主意,但当你不确定后果时就不行了。另外,如果你读过第一部分
nala
自述:Nala 是 的前端
libapt-pkg
。具体来说,我们使用python-apt
api 进行交互。或者从包裹信息中
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
(因为您删除了唯一可以为您实际处理依赖项的包管理器)。