我正在使用 apt-get 命令运行升级,它花费了非常长的时间,因为我的 ISP 在中途用他们的公平使用政策打了我的脸。
坐在外面看雨了一会儿,我的电子设备恢复了知觉,所以我回去完成升级,我的终端骂我
"E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem."
Run Code Online (Sandbox Code Playgroud)
最后一点清晰的信息是这样的:
Installing (ri/RDoc) documention for (stuff and such)
ERROR: Could not find a valid gem 'watobo-0.9.8.724.gem' (>= 0) in any repository
rm: cannot remove `watobo-0.9.8.724.gem': No such file or directory
Setting up metasploit (4.3.0-bt1) ...
Upgrading Pre-Existing Installation...
/opt/metasploit/postgresql/scripts/ctl.sh : postgresql (pid 1191) already running
prosvc is running
metasploit is running
[*]
[*] Attempting to update the Metasploit Framework...
[*]
Run Code Online (Sandbox Code Playgroud)
因此,它持续了数英里,谈论了宝石储藏室、红宝石和我希望拥有的东西。一直到:
A lib/gemcache/ruby/1.9.1/gems/state_machine-1.1.2/gemfiles/active_record-2.1.2.gemfile.lock
Run Code Online (Sandbox Code Playgroud)
……它在那里坐了一夜。如果我停止它,我是否仍然会收到 dpkg 错误(如果我不会),或者如果是这样,我需要什么来恢复使用 apt-get 命令及其 Super Cow Powers?
Tra*_*der 84
Run Code Online (Sandbox Code Playgroud)E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
这个错误实际上告诉你到底出了什么问题:dpkg由于包没有正确配置而被中断。
运行它告诉您的命令sudo dpkg --configure -a,它应该能够自行纠正。
如果它没有尝试运行sudo apt-get install -f(修复损坏的包),然后sudo dpkg --configure -a再次尝试运行。
只需确保您可以访问互联网,以便您可以下载任何依赖项。
如果升级是指apt-get dist-upgrade您尝试进行发行版升级(例如 11.10 ? 12.04),则这些说明可能不起作用,那么您需要编辑您的问题以反映这一点。
小智 10
我尝试了@TrailRider 的解决方案,但对我不起作用。我通过以下方式解决它:
删除更新:
cd /var/lib/dpkg/updates
sudo rm *
Run Code Online (Sandbox Code Playgroud)
尝试更新和升级:
sudo apt update
sudo apt upgrade
Run Code Online (Sandbox Code Playgroud)
我不能,它说:
E: Could not get lock /var/lib/dpkg/lock
Run Code Online (Sandbox Code Playgroud)
这意味着某些程序正在更新系统或安装新软件。
重要提示:检查其他进程是否正在锁定dpkg文件而不是立即删除它们。因为如果是这种情况,您应该等待它们完成。
检查某些程序是否正在锁定dpkg文件:
ps aux | grep -i apt
Run Code Online (Sandbox Code Playgroud)
如果您只有一个输出,则完成的内容如下:
S+ 19:16 0:00 grep --color=auto -i apt
Run Code Online (Sandbox Code Playgroud)
你很幸运。您可以删除dpkg锁定文件,您可以使用以下方法手动一一仔细检查:
sudo lsof /var/lib/dpkg/lock
sudo lsof /var/lib/apt/lists/lock
sudo lsof /var/cache/apt/archives/lock
Run Code Online (Sandbox Code Playgroud)
要删除它们,请使用:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
Run Code Online (Sandbox Code Playgroud)
再试一次:
sudo dpkg --configure -a
Run Code Online (Sandbox Code Playgroud)
它应该工作。
您应该尝试使用以下命令恢复当时正在安装的任何内容:
sudo apt update
sudo apt upgrade
Run Code Online (Sandbox Code Playgroud)
这应该恢复该过程并保持一切稳定。
这就是我修复它的方法。
注意:我建议您尝试跟踪/记录正在应用的命令的任何内容,如果出现问题,此预防措施将帮助其他人帮助您。
| 归档时间: |
|
| 查看次数: |
364906 次 |
| 最近记录: |