需要帮助在我的 11.10 64 位上安装 32 位应用程序。多架构不起作用

需要帮助在我的 11.10 64 位上安装 32 位应用程序。多架构不起作用

我以为 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 并安装它:

  1. 切换到包含 debfile 的目录。
  2. 创建一个临时目录来修复东西并移入其中(这里目录名是随机选择的):

    mkdir kasapa-deb && cd kasapa-deb
    
  3. 提取控制文件和安装文件:

    dpkg --control CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb
    dpkg --extract CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb .
    
  4. 通过编辑 应用修复。如果不存在DEBIAN/postinst带有 的行,则插入(例如,在第一个注释行之后,以 开头的行):CFLAGS +=#

    CFLAGS += -I/usr/include/$(shell dpkg-architecture -qDEB_BUILD_MULTIARCH)
    

    如果它已经存在,只需将该-I ...部分附加到现有CFLAGS行(用空格分隔)

  5. 你可以让软件包显示为 64 位的,提供软件包中的文件确实是 64 位的。编辑DEBIAN/control并更改Architecture: i386Architecture: amd64
  6. 重建包,在父目录中创建一个新文件:

    dpkg-deb -b . ..
    
  7. 安装新包:

    sudo dpkg -i ../[name of the package that was just created].deb
    
  8. 您现在可以删除临时目录。

理论上这应该可行。如果软件包包含为 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),也许这能帮到你。但总的来说,它就像我写的一样。

相关内容