删除了 apt 作为包管理器

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)

但在该命令成功运行后,我丢失了aptnala

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

  • 感谢您的关注,并为我提供了一堆关于那拉的知识。 (3认同)