如何修复 dpkg 错误 (1)

如何修复 dpkg 错误 (1)

老实说,我没有使用 Ubuntu 而是使用 Debian (7.8),但由于命令几乎相同并且这对我来说似乎不是一个与操作系统相关的问题,所以我想我会在这个光荣的论坛上询问它。

我在尝试升级系统时遇到了问题。我尝试运行apt-get upgrade -f(顺便说一下,这一切都是在 root 中)但它返回以下结果:

root@*******:/# apt-get upgrade -f    
Reading package lists... Done  
Building dependency tree  
Reading state information... Done  
The following packages will be upgraded:  
  mysql-server-5.5  
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.  
8 not fully installed or removed.  
Need to get 0 B/2,093 kB of archives.  
After this operation, 6,144 B of additional disk space will be used.  
Do you want to continue [Y/n]? y  
Reading changelogs... Done  
Preconfiguring packages ...  
(Reading database ... 77057 files and directories currently installed.)  
Preparing to replace mysql-server-5.5 5.5.38-0+wheezy1 (using .../mysql-server-5.5_5.5.40-0+wheezy1_amd64.deb) ...  
[FAIL] Stopping MySQL database server: mysqld failed!  
invoke-rc.d: initscript mysql, action "stop" failed.  
dpkg: warning: subprocess old pre-removal script returned error exit status 1  
dpkg: trying script from the new package instead ...  
[FAIL] Stopping MySQL database server: mysqld failed!  
invoke-rc.d: initscript mysql, action "stop" failed.  
dpkg: error processing /var/cache/apt/archives/mysql-server-5.5_5.5.40-0+wheezy1_amd64.deb (--unpack):  
 subprocess new pre-removal script returned error exit status 1  
[FAIL] Stopping MySQL database server: mysqld failed!  
invoke-rc.d: initscript mysql, action "stop" failed.  
[ ok ] Starting MySQL database server: mysqld already running.  
Errors were encountered while processing:  
 /var/cache/apt/archives/mysql-server-5.5_5.5.40-0+wheezy1_amd64.deb  
E: Sub-process /usr/bin/dpkg returned an error code (1)  

现在我尝试搜索 dpkg 返回错误代码 (1),但我似乎无法解决它的这个特定情况。

我希望有人能够给我提供我需要的帮助,我将不胜感激。

谨致问候,
雷米

编辑>>

@vembutech 我尝试查看 /var/lib/dpkg/status,发现有关 mysql-server-5.5 的以下信息 [http://pastebin.com/8DzKnY2x][1]

@王小宇 我执行该命令时只得到以下几行:

正在读取软件包列表...完成 正在
构建依赖关系树
正在读取状态信息...完成

@octavian 当我尝试停止 mysqld 时出现以下错误:

root@149-210-180-7:~# service mysqld stop
mysqld:无法识别的服务

但是当我尝试停止 mysql 时出现以下错误:

[失败] 停止 MySQL 数据库服务器:mysqld 失败!

答案1

看起来您需要先停止/终止 MySQL 数据库,然后更新:

[FAIL] Stopping MySQL database server: mysqld failed!  
invoke-rc.d: initscript mysql, action "stop" failed.

我不确定这个可执行文件叫什么,但是如果它的名字中含有“sql”,那么运行它应该可以找到它的pid(可能还有其他的):

ps aux | grep -i sql

然后尝试杀死它(kill <pid>kill -9 <pid>sudo kill <pid>,等等......)并尝试杀死另一个,ps以防它重新生成。

然后安装并且它应该可以工作......?

答案2

在我看来,您mysql-server-5.5至少已经安装了守护进程 mysqld,并且该守护进程正在运行。dpkg无法停止此守护进程。请尝试在apt-get upgrade -f通过运行之前手动停止它sudo service mysqld stop

答案3

好的,安装似乎有些问题。所以,你可以尝试

dpkg -C 或者 sudo apt-get check

查找有关的信息error code 1.

相关内容