2

I thought the 11.10 was supposed to have a multi architecture support but installing a 32bit .deb gives me a 'wrong architecture' error. What do I need to do to install this deb?

CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb

Here is the output when I try to force the installation through the force architecture command

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

Can someone help?

Lekensteyn
  • 174,277
Mysterio
  • 12,018

2 Answers2

1

Try installing it via the terminal.

You open up the terminal and should be in you home folder

user@computer:~$

type cd Downloads (or the folder your package is in) and you should be in the download folder

user@computer:~/Downloads$

Then type

sudo dpkg --force-architecture -i CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb

and the package should be installed without checking for architecture.

You can also have a look here (scroll down to Espresso Modem), maybe that helps you out. But in general it's done like I wrote.

joschi
  • 1,754
1

It looks like a header was not found due to multi-arch changes on that. Extract the deb-file, apply fixes, rebuild the deb and install it:

  1. Change to the directory containing the debfile.
  2. Create a temporary directory for fixing stuff and move into it (the directory name was randomly chosen here):

    mkdir kasapa-deb && cd kasapa-deb
    
  3. Extract the control and installation files:

    dpkg --control CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb
    dpkg --extract CrossPlatformUI-V2.1.1-Kasapa-i386-ubuntu.deb .
    
  4. Apply the fixes by editing DEBIAN/postinst. If a line with CFLAGS += does not already exists, insert (e.g. after the first commented lines, lines with leading #):

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

    If it does already exist, simply append the -I ... part to the existing CFLAGS line (separated with a space)

  5. While you're at it, you can make the package appear as a 64-bit one, providing that the files in the package are really 64-bit. Edit DEBIAN/control and change Architecture: i386 to Architecture: amd64.
  6. Rebuild the package, creating a new file in the parent directory:

    dpkg-deb -b . ..
    
  7. Install the new package:

    sudo dpkg -i ../[name of the package that was just created].deb
    
  8. You can remove the temporary directory now.

This is theoretically supposed to work. If the package contains binaries which are made for 32-bit, you need to install the 32-bit dependencies as well, like libc6:

sudo apt-get install libc6:i386
Lekensteyn
  • 174,277
  • I have successfully built the amd64 deb with your help now when i try installing the package terminal reports that i have an existing version on the system( the one i used the force architecture command to install). How do i remove the previously installed files and install my deb? – Mysterio Oct 24 '11 at 09:23
  • Try sudo apt-get purge crossplatformui:i386. – Lekensteyn Oct 24 '11 at 09:39
  • I have given up installing this package but your answer has been really helpful – Mysterio Oct 24 '11 at 13:19