我以为 11.10 应该具有多架构支持,但安装 32 位 .deb 时出现“错误架构”错误。我需要做什么才能安装此 deb?
CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb
这是我尝试通过强制架构命令强制安装时的输出
Selecting previously deselected package crossplatformui:i386.
(Reading database ... 186238 files and directories currently installed.)
Unpacking crossplatformui:i386 (from CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb) ...
Setting up crossplatformui:i386 (2.1.1) ...
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service acpid restart
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop acpid ; start acpid. The restart(8) utility is also available.
acpid stop/waiting
acpid start/running, process 2569
package libqtgui4 exist
QT_VERSION = 4
make -C /lib/modules/3.0.0-12-generic/build M=/usr/local/bin/ztemtApp/zteusbserial/below2.6.27 modules
make[1]: Entering directory `/usr/src/linux-headers-3.0.0-12-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
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.0.0-12-generic'
make: *** [modules] Error 2
dpkg: error processing crossplatformui:i386 (--install):
subprocess installed post-installation script returned error exit status 2
Processing triggers for gnome-menus ...
Processing triggers for desktop-file-utils ...
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Errors were encountered while processing:
crossplatformui:i386
有人可以帮忙吗?
答案1
看起来是因为多架构更改导致找不到标头。提取 deb 文件,应用修复,重建 deb 并安装它:
- 切换到包含 debfile 的目录。
创建一个临时目录来修复东西并移入其中(这里目录名是随机选择的):
mkdir kasapa-deb && cd kasapa-deb
提取控制文件和安装文件:
dpkg --control CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb dpkg --extract CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb .
通过编辑 应用修复。如果不存在
DEBIAN/postinst
带有 的行,则插入(例如,在第一个注释行之后,以 开头的行):CFLAGS +=
#
CFLAGS += -I/usr/include/$(shell dpkg-architecture -qDEB_BUILD_MULTIARCH)
如果它已经存在,只需将该
-I ...
部分附加到现有CFLAGS
行(用空格分隔)- 你可以让软件包显示为 64 位的,提供软件包中的文件确实是 64 位的。编辑
DEBIAN/control
并更改Architecture: i386
为Architecture: amd64
。 重建包,在父目录中创建一个新文件:
dpkg-deb -b . ..
安装新包:
sudo dpkg -i ../[name of the package that was just created].deb
- 您现在可以删除临时目录。
理论上这应该可行。如果软件包包含为 32 位制作的二进制文件,则还需要安装 32 位依赖项,例如libc6
:
sudo apt-get install libc6:i386
答案2
尝试通过终端安装它。
打开终端,应该位于主文件夹中
user@computer:~$
输入cd Downloads
(或你的包所在的文件夹),你应该在下载文件夹中
user@computer:~/Downloads$
然后输入
sudo dpkg --force-architecture -i CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb
并且应该在不检查体系结构的情况下安装该包。
你也可以看看这里(向下滚动到 Espresso Modem),也许这能帮到你。但总的来说,它就像我写的一样。