我在 14.04 上遇到了问题。在开源和闭源视频驱动程序之间来回切换后,当我尝试切换回 AMD/ATI 专有驱动程序时,出现以下错误:
The package system is broken use apt-get install -f (The following packages have unmet dependencies:
fglrx-amdcccle-updates: Depends: fglrx-updates but it is not installed).
apt-get install -f
导致进一步的错误:
(Reading database ... 295376 files and directories currently installed.)
Preparing to unpack .../fglrx-updates_2%3a15.200-0ubuntu0.5_amd64.deb ...
Moving ati dir to /etc for the fglrx-core transition
dpkg: error processing archive /var/cache/apt/archives/fglrx-updates_2%3a15.200-0ubuntu0.5_amd64.deb (--unpack):
subprocess new pre-installation script returned error exit status 1
E: Sub-process /usr/bin/dpkg returned an error code (1)
我是 ubuntu 的新手,我很喜欢它,但这真的很令人沮丧,任何帮助都将不胜感激(需要终端命令的指导)。
提前致谢。
答案1
有时,除非您在安装新驱动程序之前停止所有显示管理器服务和/或终止 Xorg,否则图形/视频驱动程序可能会遇到问题。如果您还在驱动程序版本之间切换,有时配置文件不会被完全删除,并且可能会与您稍后尝试安装的不同版本发生冲突。(“完全删除”=“已清除”)
停止显示管理器
此步骤可能并非总是必要的,但有时在安装显卡驱动程序之前停止所有显示管理器会更干净或更安全。
首先,关闭窗口程序中打开的所有工作,因为停止显示管理器将终止所有工作,而不会保存任何打开的工作。然后,按Ctrl+ Alt+ F1(或F1至 中 的任何一个F6)切换到 TTY。显示服务器F7默认使用 TTY 作为其 GUI 界面。登录 TTY,然后键入以下内容以查看正在运行哪些显示管理器:
pgrep dm -l
您应该会看到以下一项或多项内容:lightdm
,gdm
,kdm
,xdm
。如果pgrep
不行,请尝试:
ps -eo pid,comm | grep dm
htop
或者使用或命令搜索这些名称top
。要停止活动的显示管理器,请输入:
sudo service <name_of_display_manager> stop
例如:sudo service lightdm stop
旧版本的 Ubuntu 可能没有该service
命令,而是使用 init.d 脚本:
sudo /etc/init.d/<name_of_display_manager> stop
或者要求您通过键入以下命令来终止每个进程:
sudo kill <PID_of_display_manager>
PID 是“进程标识”号。它在 的输出中返回,或者在或 的pgrep
列中列出。如果失败,请尝试使用标志强制执行:htop
top
kill
-9
sudo kill -9 <PID>
Stop
或kill
每个显示管理器,直到没有正在运行。旧版本的 Ubuntu 可能还要求您终止所有 Xorg 进程:
xkill -a
彻底删除你的图形驱动程序包
基本上,purge
驱动程序包而不是简单的驱动remove
程序包。我遇到过类似您的错误,通过清除旧的驱动程序包解决了该问题。在 TTY 中,键入以下内容:
sudo apt-get purge <name_of_package> [name_of_package]...
例如:
sudo apt-get purge fglrx fglrx-core fglrx-amdcccle fglrx-updates fglrx-amdcccle-updates
我个人只安装了前三个,我怀疑大多数人也会这样做,因为它们在官方上列出AMD 的驱动程序和支持网站。
/home
清除操作将删除软件包本身以及软件包之外的所有配置文件。(输入remove
而不是purge
将仅删除软件包,而不会删除其配置文件。另请参阅:`apt-get purge` 和 `apt-get remove` 之间有什么区别?
旧版本apt-get
没有该purge
命令,而是使用--purge
带有标志,remove
如下所示:
sudo apt-get remove --purge <name_of_package> [name_of_package]...
清除后,安装刚刚清除的软件包的替换版本:
sudo apt-get install <name_of_package> [name_of_package]...
或者如果你有 DEB 文件,请安装它们:
sudo dpkg -i <deb_filename> [deb_filename]...
重新启动显示管理器
如果没有错误,请重新启动显示管理器或重新启动:
sudo service <name_of_display_manager> start
在旧版本的 Ubuntu 上:
sudo /etc/init.d/<name_of_display_manager> start
或者启动 Xorg:
sudo xinit start
或者重启:
sudo shutdown -r 0
其中任何一种方式都应该会让您再次进入在刚刚安装的驱动程序上运行的 GUI 界面。