为什么使用“apt-get”命令时总是会出现此错误?

为什么使用“apt-get”命令时总是会出现此错误?

我正在使用 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,所以导致了错误。)

相关内容