Rob*_*Rob 9 aptitude ubuntu ubuntu-10.04
当我尝试执行以下操作时:
sudo apt-get update
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
在我的 Ubuntu Server 10.04 安装中,它挂在以下行:
Preparing to replace mysql-server-5.1 5.1.41-3ubuntu12.1 (using .../mysql-server-5.1_5.1.41-3ubuntu12.3_i386.deb)
Run Code Online (Sandbox Code Playgroud)
我什至不能 CTRL-C 退出它!我最终不得不终止我的会话并从不同的终端登录,并且升级过程仍在运行。我已经重新启动了几次,当我回去再试时,它告诉我:
E: dpkg was interrupted, you must manually run 'sudo --configure -a' to correct the problem.
Run Code Online (Sandbox Code Playgroud)
一旦我这样做了,我就回到了第一阶段,当我尝试升级 mySQL 时它会冻结。
小智 6
显然更新正在等待服务器启动,但由于某种原因它没有启动。要解决这个问题,有几种可能性。
最简单的:
打开一个新终端,然后运行:
sudo services mysql start
Run Code Online (Sandbox Code Playgroud)更复杂但有时是必要的:(当您无法访问另一个终端时,这很方便):
按“^z”(Ctrl+ Z)这将“停止”您的工作。然后运行:
sudo services mysql start
Run Code Online (Sandbox Code Playgroud)服务器启动后,键入以下内容并按 Enter:
fg
Run Code Online (Sandbox Code Playgroud)
这会将您的“已停止”工作放回前台并从停止的地方继续。
备份数据库后,尝试使用低于 apt 的级别:
sudo dpkg -r mysql-server
sudo apt-get check # verify that apt's metadata is okay
sudo apt-get install mysql-server
Run Code Online (Sandbox Code Playgroud)
添加:
因为dpkg -r令人窒息的尝试dpkg --purge和失败,用 zap 获取包内容dpkg -L mysql-server-5.1,然后在/var/lib/dpkg.
我从来没有见过事情变得如此毛茸茸的,抱歉。
如果一开始你没有成功
我在这里大声思考,请原谅我。mysql-server 元包包含或需要这些包:
libdbd-mysql-perl
libdbi-perl
libhtml-template-perl
libnet-daemon-perl
libplrpc-perl
mysql-client-5.1
mysql-client-core-5.1
mysql-server
mysql-server-5.1
mysql-server-core-5.1
包管理的元数据是令人愉快地解耦的,有中央存储库,但包是独立的。/var/cache/apt/archives是*.deb已安装的文件所在的位置。
首先,强制 dpkg 忘记这些软件包(冒着无法删除我们无论如何都要替换的某些文件的风险)。
for i in mysql-server-core-5.1 mysql-server-5.1 ... ; do
sudo dpkg -r --force-remove-reinstreq $i
done
Run Code Online (Sandbox Code Playgroud)
然后获取完整安装所需的 .deb 文件:
sudo apt-get install --download-only mysql-server
Run Code Online (Sandbox Code Playgroud)
然后尝试一一安装:
cd /var/cache/apt/archives
sudo dpkg -i mysql-server-core-5.1_5.1.41-3ubuntu12.3_i386.deb
Run Code Online (Sandbox Code Playgroud)
如果您在那里遇到问题,请尝试:
sudo dpkg -D77777 -i mysql-server-core-5.1... > 2>&1 /tmp/dpkg.log.$$
Run Code Online (Sandbox Code Playgroud)
并尝试从日志文件中的无数行中找到相关行并将其发布到此处。祝你好运,万事如意。