我正在使用 Ubuntu 14.04(带 Unity)。就在今天(截至本文发布之日),我进行了一次升级,sudo apt-get update && sudo apt-get upgrade
在“升级”过程结束时,我收到以下错误:-
Setting up crossplatformui (1.0.38) ...
* Stopping ACPI services... [ OK ]
* Starting ACPI services... [ OK ]
package libqtgui4 exist
QT_VERSION = 4
make -C /lib/modules/3.13.0-27-generic/build M=/usr/local/bin/ztemtApp/zteusbserial/below2.6.27 modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-27-generic'
CC [M] /usr/local/bin/ztemtApp/zteusbserial/below2.6.27/usb-serial.o
/usr/local/bin/ztemtApp/zteusbserial/below2.6.27/usb-serial.c:34:28: fatal error: linux/smp_lock.h: No such file or directory
#include <linux/smp_lock.h>
^
compilation terminated.
make[2]: *** [/usr/local/bin/ztemtApp/zteusbserial/below2.6.27/usb-serial.o] Error 1
make[1]: *** [_module_/usr/local/bin/ztemtApp/zteusbserial/below2.6.27] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-27-generic'
make: *** [modules] Error 2
dpkg: error processing package crossplatformui (--configure):
subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
crossplatformui
E: Sub-process /usr/bin/dpkg returned an error code (1)
从那时起,无论apt-get
我使用什么命令(据我所知,除了apt-get update
),我都会在过程结束时不断收到上述错误。但无论apt-get
我使用哪个命令,它都会毫无失败地完成它应该做的事情。(例如,我尝试使用安装 blender,sudo apt-get install blender
它安装得很好,尽管它显示了上述错误。)此后,我甚至获得了内核更新(通过软件更新程序从 3.13.0-27 到 3.13.0-29),但即使现在问题仍然存在。我该如何解决这个问题?
答案1
就像这样问题/答案推测linux/smp_lock.h
是旧 2.6 内核中使用的文件。Ubuntu 中不再存在该文件,也不应该存在。
您的系统正在尝试为较旧的内核版本编译驱动程序。只需看在错误输出处:
.../usr/local/bin/ztemtApp/zteusbserial/below2.6.27 modules
转储ztemtApp
(无论它是什么)并将其替换为现代内核的版本,或者忽略它。它没有编译,所以如果你没有遗漏任何东西,我建议你删除它并保持原样。
答案2
如果你看看这通过谷歌搜索结果,您可能会对问题的原因有所了解。
我认为这个问题是由于一些破损的包装造成的,为了清理破损的包装,我认为这些可以在安全启动引导菜单
- “启用网络”
- “干净的”
- “自动删除”
也许可以按照该顺序或类似的顺序尝试一下。(这是我自己的记忆,所以请检查一下实际有什么,然后按照您认为合适的顺序使用它们。)
另外,如果您输入 ONLY (后跟ENTER)
$ apt-get
在提示符下,您将看到有关每个选项的简短信息。这些应该与启动菜单中的相同。
$ info apt-get
将会讲述更多。
“使用力量,卢克”(阅读选项 - 以理智的方式使用它们!)
答案3
我在 Hannu 提供的链接的帮助下解决了这个问题(好的,第一个搜索结果是,这crossplatformui
)。从该链接中我了解到,删除最近在我的 PC 上使用 Reliance 数据卡时(在我不知情的情况下)安装的名为 的软件包可以解决该问题。我Synaptic package manager
按照下图所示操作:
从图片中可以看出,我搜索了该包并选择了它以完全删除。之后我单击了“应用”,包就被删除了。之后我尝试使用apt-get
命令,上面的错误(在我的问题中)没有出现。
附言:-
对于那些想知道实际问题的人来说,Oli 的回答清楚地解释了这一点。引用他的回答:
...“您的系统正在尝试为古老的内核版本编译驱动程序”...
这行错误(在我上面的问题中)说明了一切!:-
/usr/local/bin/ztemtApp/zteusbserial/**below2.6.27**/usb-serial.c:34:28: fatal error: linux/smp_lock.h: No such file or directory
(看说着以下2.6.27这意味着crossplatformui
仅支持内核版本 2.6.27 以下,而我现在的内核是 3.13.0,所以导致了错误。)