Wednesday, November 28, 2007

Opera 9 on Ubuntu Linux with AMD64

For those Opera fans running Ubuntu on 64-bit AMD cpus:

Opera only provides Ubuntu Linux packages for i386, but there is a way for forcing the installation of the provided i386 package by borrowing a shared library it depends on (Qt) from an i386 Ubuntu package:

1) Download the Ubuntu version of Opera 9 for i386 Linux from the official site.

2) Download the libqt3-mt deb package file for i386. (Try using the search interface if link is broken)

3) Create a temp dir for libqt3-mt contents:

$ mkdir qttempdir

4) Unpack the libqt3-mt deb package with
$ dpkg-deb -x libqt3-mt_3.3.8really3.3.7-0ubuntu5.2_i386.deb qttempdir

5) Copy the i386 shared Qt lib to your /lib32 dir (removing minor version numbers from the filename, or creating symlinks):
$ sudo cp qttempdir/usr/lib/libqt-mt.so.3.3.7 /lib32/libqt-mt.so.3

6) Force the Opera debian package installation with
$ sudo dpkg -i --force-all opera*.deb

6 comments:

Paulo said...

This solved my problems. Thanks a lot.
Installing Opera 9.25 for Linux resulted in "Error: Wrong architecture 'i386'" and later in "error while loading shared libraries: libqt-mt.so.3: wrong ELF class: ELFCLASS64".
I am using Ubuntu 7.04 on AMD64 Athlon X2.

Paulo.

Anonymous said...

Using the x86_64-linux build of the Opera 9.5 beta is working for me so far. Here is how.

nareshov said...

Flash doesn't seem to work.
With the weekly snapshots they work.

I get the following messages when I run the 32-bit stable build on hardy (I've followed your steps in this post)


ERROR: ld.so: object 'libjvm.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libawt.so' from LD_PRELOAD cannot be preloaded: ignored.
opera: X Shared memory extension is not available. ZPixmap not supported
opera: Could not initialize Opera Mail: Not possible to run old Opera versionwith new Opera mail files.AccountManager Init failed
opera: Could not initialize Opera Mail: Engine Init() failed
Conflict in /usr/lib/kde3/plugins/styles/highcolor.so:
Plugin uses incompatible Qt library!
expected build key "i686 Linux g++-4.* full-config", got "x86_64 Linux g++-4.* full-config".
Conflict in /usr/lib/kde3/plugins/styles/highcontrast.so:
Plugin uses incompatible Qt library!
expected build key "i686 Linux g++-4.* full-config", got "x86_64 Linux g++-4.* full-config".
Conflict in /usr/lib/kde3/plugins/styles/light.so:
Plugin uses incompatible Qt library!
expected build key "i686 Linux g++-4.* full-config", got "x86_64 Linux g++-4.* full-config".
Conflict in /usr/lib/kde3/plugins/styles/plastik.so:
Plugin uses incompatible Qt library!
expected build key "i686 Linux g++-4.* full-config", got "x86_64 Linux g++-4.* full-config".
The program '< unknown >' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 172 error_code 3 request_code 2 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Locking assertion failure. Backtrace:
#0 /usr/lib32/libxcb-xlib.so.0 [0xf7bac767]
#1 /usr/lib32/libxcb-xlib.so.0(xcb_xlib_lock+0x2e) [0xf7bac81e]
#2 /usr/lib32/libX11.so.6 [0xf7d975f8]
#3 /usr/lib32/libX11.so.6(XSelectInput+0x25) [0xf7d89a55]
#4 /usr/lib32/libXt.so.6 [0xf7e6ab1b]
#5 /usr/lib32/libXt.so.6(XtRemoveEventHandler+0xd7) [0xf7e6aeb7]
#6 /usr/lib/opera/plugins/operapluginwrapper(_Z18destroyDrawingAreaP10_WidgetRecS0_+0x36) [0x8051dc6]
#7 /usr/lib/opera/plugins/operapluginwrapper(_ZN12pluginWindowD1Ev+0x2a) [0x805968a]
#8 /usr/lib/opera/plugins/operapluginwrapper(_ZN14pluginInstanceD1Ev+0x52) [0x8058f72]
#9 /usr/lib/opera/plugins/operapluginwrapper(_ZN16pluginController14deleteInstanceEP14pluginInstance+0x4b) [0x805304b]
#10 /usr/lib/opera/plugins/operapluginwrapper(_ZN16pluginController15destroyInstanceEiP13pluginMessage+0x77) [0x8053107]
#11 /usr/lib/opera/plugins/operapluginwrapper(_ZN16pluginController5closeEv+0x55) [0x8053235]
#12 /usr/lib/opera/plugins/operapluginwrapper(_ZN16pluginControllerD1Ev+0x3d)[0x80532fd]
#13 /usr/lib/opera/plugins/operapluginwrapper [0x80516f8]
#14 /usr/lib/opera/plugins/operapluginwrapper [0x804d5ab]
#15 /usr/lib/opera/plugins/operapluginwrapper [0x80597bc]
#16 /lib/ld-linux.so.2 [0xf7fc5c11]
#17 /lib32/libc.so.6(exit+0xd4) [0xf7c0b334]
#18 /usr/lib32/libgdk-x11-2.0.so.0 [0xf77c6637]
#19 /usr/lib32/libX11.so.6(_XError+0xfe) [0xf7d9081e]
operapluginwrapper: xcb_xlib.c:73: xcb_xlib_lock: Assertion `!c->xlib.lock' failed.
opera: Plug-in 9296 is not responding. It will be closed.
opera: Define environment variable OPERA_KEEP_BLOCKED_PLUGIN to keep blocked plug-ins.

Maximus_detritus said...

Me too thanks you a lot.. Opera work to me correctly (Del Inspiron 1501, Turion TL-50, 2.6.24-17-generic).
The process only found 2 directories which don't exist... `/etc/opera6rc' and /etc/opera6rc.fixed , anything else.
Version
9.27
Build
709
Platform
Linux
System
x86_64, 2.6.24-17-generic
Qt library
3.3.7
Java
Java Runtime Environment installed

Mucho love.

Anonymous said...

Works like a charm, thanks a lot!

Anonymous said...

Hi,

You can download and install what looks like pseudo 64bit package by clicking "Show Other Versions" on the Opera download page, it takes you to this page: http://www.opera.com/browser/download/?custom=yes

From the filename alone it looks like it's using qt3 still and maybe some other libraries but it's a lot easier for n00bs to install.