我有一个apt-get install过程似乎无可救药地陷入了困境processing triggers for python-support。
我的倾向是kill它,但在过去,简单的kill一个apt-get install过程让我很伤心。(IIRC 各种锁文件被留下等)
有没有更安全的方法来停止这个过程?
ger*_*ijk 55
一般来说,对于终止进程,没有比常规终止 (SIGTERM) 更安全的终止进程的方法。如果它是一个交互式过程,它通常允许您通过发送 SIGINT 信号(通常通过按Ctrl+发送)来更安全地停止它C。这个信号被进程本身捕获,可以监听它——并且通常会优雅地停止。(感谢以利亚)
关于包管理是一种特殊情况。APT 命令在水下使用的 DPKG 数据库可以随时检测操作是否尚未完成。每个包都有一个实际状态,它被标记为当前状态,例如解包、配置等。通过杀死 APT 前端,数据库将处于损坏状态,但处于已知状态。锁定文件只有在全部恢复到干净状态后才会被释放 - 在允许新操作之前,您应该修复此问题。
修复的方法是启动一个进程来使所有包处于配置状态。实际上,如果你中断了一个apt-get操作,你可以稍后使用
sudo dpkg --configure -a
Run Code Online (Sandbox Code Playgroud)
它知道如何从损坏的状态恢复到完全配置的状态,从这个意义上说,只需从中断的地方继续。锁定文件一直留在那里,直到您完成为止,这是有原因的 - 防止 DPKG 数据库处于不干净状态的新操作。
发送 SIGKILL(十进制表示 9)是非常不安全的。这个信号不会被进程捕捉到,但是不管进程喜欢与否,整个进程都会被操作系统(内核)清理掉。文件系统上的文件状态可能会处于损坏状态。永远不要发送这些信号,除非它不再收听其他更优雅的信号。
car*_*dil 18
当我遇到 apt-get 失败时,我执行以下操作(以 root 身份,即sudo在所有命令之前):
杀死名为 apt-get 的进程:
killall -9 apt-get
重新配置 dpkg:
dpkg --configure -a
更新 apt-get:
apt-get 更新
更新包,包括那些安装不正确的包:
apt-get 升级
这是我从某个地方学到的,但不幸的是我不记得确切的位置。
| 归档时间: |
|
| 查看次数: |
141368 次 |
| 最近记录: |