如何在 arch linux 中重新安装上次删除命令中删除的软件包?

如何在 arch linux 中重新安装上次删除命令中删除的软件包?

所以最近我用 i3wm 安装了 Manjato linux。它预装了 urxvt 和 urxvt-perls,因此我切换到 st 终端仿真器并决定删除 urxvt-perls 和 urxvt-perls。所以我运行了 pacman -Rcns urxvt-perls

甚至在看到要删除的内容之前,我就确认了删除。它删除了关键的软件包,如 Dunst、Natural 和 i3 所需的许多其他软件包。于是i3就崩溃了。所以我正在寻找一种方法让一切恢复正常。解决这种情况的干净方法是什么?

答案1

首先要做的是找出哪些包被实际删除:

这应该记录到/var/log/pacman.log
取决于系统是否还能使用;您是否能够登录 shell:

如果是:

  • 使用:nano /var/log/pacman.log 检查日志文件,您会发现类似以下内容的行

    [Date...] [PACMAN] 'Runing pacman -Rcns urxvt-perls'

    接下来的几行很有趣,尤其 [Date...] [ALPM] removed ....urxvt-perls....
    是HitCtrl-x退出nano(用您选择的编辑器替换nano,vi,vim...)

  • 使用:grep -i urxvt-perls /var/log/pacman.log 您可以“搜索”包含 urxvt-perls 的行,或者如果删除它是您所做的最后一个操作,您可以改为: tail /var/log/pacman.log。 tail -n X 打印最后 X 行。

  • 注意其他被删除的内容。现在重新安装:
    pacman -S pkg1 pkg2 pkgn 这里的问题是您可能还安装依赖项 显式与依赖。因此,请避免安装依赖项,因为无论如何它们都会安装。

如果不:

  • 重新启动系统,当您看到 grub 启动菜单时,点击e并用箭头键向下移动到以操作系统....

  • 转到该行的末尾并附加初始化=/bin/sh并击中 Ctrl-x启动你的更改内核参数。您将看到一个 root shell。按照前面的步骤操作;找到软件包并重新安装。

  • 如果这也没有帮助,请从安装介质启动,然后 chroot到已安装的系统。

但不确定这是否是最干净的方式。首先尝试安装重要的软件包;i3-wm看看你是否恢复桌面。

答案2

重新安装软件包的方法有很多。我的猜测是系统启动在加载 gui 之前停止 - 所以解决它的方法非常简单和快速:

  1. 启动系统直至其停止,也许等待 2 分钟以确保其已完全启动。

  2. 按 ctrl + alt + F1 .... F6 进入另一个 tty。 F1 代表 tty1,F2 代表 tty2,依此类推,测试每一个,直到出现登录窗口。

  3. 使用您的用户名和密码登录 tty - 应该是具有 root 权限的管理员帐户。繁荣 - 你就在里面。

  4. 接下来沿着拱门走指导。这意味着如果你的 i3 很混乱的话sudo pacman -Syu i3-wm

  5. 不是使用 和 重新启动系统,sudo pacman reboot如果确实只是缺少一些软件包,它应该会再次启动,或者使用 和 启动它,startx /usr/bin/i3您的桌面应该会再次启动并运行:)

  6. 如果它没有自动启动,您必须启用其启动顺序,但这不是必需的,因为系统已经在运行。在~/.config/i3/config文件中添加 exec 命令。例如:

    执行终止符

或者,您可以使用XDG自动启动

如果这不起作用,您可以使用 U 盘启动,将您的系统“chroot”到主驱动器,然后从第 4 点开始进行操作。如果您需要更多帮助,请给我留言,我会为您编辑这篇文章并添加如何操作chroot它。

实际上解决此类问题是 arch linux 的亮点,因为它很容易完成,而无需删除所有依赖项,因为 pacman 正在为您做这件事。我希望你能享受你的拱门并学习新东西。

第三种方法是重新安装整个系统,但这不是必需的。

如果这解决了您的答案并让您的系统再次启动并运行,请单击赞成票下方的箭头,使其不会显示在 stackexchange.com 的“未解决”部分中:)

相关内容