MetaCase Homepage
Forum Home Forum Home > > MetaEdit+
  New Posts New Posts RSS Feed - MetaEdit+ 5.0 on 64-bit openSUSE 12.2, Ubuntu etc.
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

MetaEdit+ 5.0 on 64-bit openSUSE 12.2, Ubuntu etc.

 Post Reply Post Reply
Author
Message
stevek View Drop Down
MetaCase
MetaCase
Avatar

Joined: 11.Mar.2008
Points: 509
Post Options Post Options   Thanks (0) Thanks(0)   Quote stevek Quote  Post ReplyReply Direct Link To This Post Topic: MetaEdit+ 5.0 on 64-bit openSUSE 12.2, Ubuntu etc.
    Posted: 11.Jan.2013 at 19:19

To run MetaEdit+ on 64-bit openSUSE, you'll need to install some extra 32-bit libraries:

sudo zypper install libX11-6-32bit libXft2-32bit libCairo2-32bit java-1_7_0-openjdk-devel
Cairo is optional and gives better graphics; Java is optional and lets you try out the Digital Watch example.
 
So how did I find these out? That's hopefully useful information also for other distributions, so I'll try and show you.
 
After following the MetaEdit+ installation instructions, starting metaedit did nothing, silently. Looking at the metaedit shell script, I ran the startup command by hand, removing the >/dev/null to get more info, and saw the initial problem:
 
~/metaedit> /usr/local/mep50eval/visual /usr/local/mep50eval/mep50eval.im &
[1] 12421
/usr/local/mep50eval/visual: error while loading shared libraries: libX11.so.6:
cannot open shared object file: No such file or directory
 
A missing X11 library. OpenSUSE 64-bit claims to install 32-bit libraries, but this one obviously isn't included. Where one 32-bit library is missing, there may be others, so let's use ldd to see what's needed by the visual executable of MetaEdit+: [Edit: previously we used `whereis visual` to find it from the path, but that seems unreliable: type the explicit path to visual in the MetaEdit+ binary directory]

~/metaedit> ldd /usr/local/mep50eval/visual
        linux-gate.so.1 (0xf777e000)                           kernel
        libX11.so.6 => not found                               libX11-6-32bit
        libpthread.so.0 => /lib/libpthread.so.0 (0xf7746000)   glibc-32bit
        librt.so.1 => /lib/librt.so.1 (0xf773d000)             glibc-32bit
        libdl.so.2 => /lib/libdl.so.2 (0xf7738000)             glibc-32bit
        libm.so.6 => /lib/libm.so.6 (0xf770b000)               glibc-32bit
        libz.so.1 => /lib/libz.so.1 (0xf76f4000)               zlib-32bit
        libc.so.6 => /lib/libc.so.6 (0xf754e000)               glibc-32bit
        /lib/ld-linux.so.2 (0xf777f000)                        glibc-32bit

I've added and coloured the package names containing those libraries for openSUSE (found from rpmfind.net). As it happens, glibc-32bit and zlib-32bit are indeed already installed, so we just need X11:

sudo zypper install libX11-6-32bit

Now metaedit starts but hangs, writing to meplus0.err repeatedly. I did "ps" to find the process id then "kill -KILL pid". Looking at meplus0.err shows an error loading a library while looking for fonts (LibXft, i.e. libXft.so.2). That Xft library didn't show up before because it isn't referenced by visual, but is loaded dynamically. The intention was that MetaEdit+ would be able to cope without Xft by adding "noxft" on its command line. However, things have apparently changed, so that fonts are now required before we get as far as processing the command line... In any case, we want the nicer anti-aliased Xft fonts, so we can install the 32-bit library (the 64-bit Xft is already installed):

sudo zypper install libXft2-32bit

Now metaedit runs OK! The graphics aren't anti-aliased, and again openSUSE has just the 64-bit Cairo so we want to grab the 32-bit version of libcairo.so.2 too:

sudo zypper install libCairo2-32bit

Now the graphics are even more beautiful :). Finally, we'd like to try out the Digital Watch example, so we want a Java JDK (only a JRE is installed by default). Since the JDK is called by a command line rather than as a library, we don't care about 32/64-bit.

sudo zypper install java-1_7_0-openjdk-devel

And now when we open the Digital Watch project, open the Properties of the top-level graph and choose Generation target platform: "Java: Linux", Generate: Autobuild builds and opens the watches OK!



Edited by stevek - 21.Feb.2014 at 14:26
Back to Top
stevek View Drop Down
MetaCase
MetaCase
Avatar

Joined: 11.Mar.2008
Points: 509
Post Options Post Options   Thanks (0) Thanks(0)   Quote stevek Quote  Post ReplyReply Direct Link To This Post Posted: 20.Feb.2014 at 15:59
On Ubuntu 13.10 or 14.04 64-bit, the above procedure doesn't work as-is, because ia32-libs has been removed, and ldd can't even produce the list of dependencies for the 32-bit visual executable (oddly it claims 'file not found' for visual?!). That's not such a big problem, since they are unchanged from the above list; installing libc6:i386 is enough to get ldd to work. Also, rpmfind obviously won't find packages on Ubuntu, since it doesn't use rpms; use http://packages.ubuntu.com instead, and search for the library filename in package contents for your distro version and i386 architecture, e.g. libc.so.6 for saucy. How to refer to 32-bit packages has also been changed from *-32bit to *:i386, although some of the older-style ones are still available. The variations I tested seemed to work regardless of the choice, but to keep things simple here's a list with all :i386 and choosing GNU versions where there was more than one option. The first line may not be necessary in Ubuntu 13.10, but apparently is in Debian and will be in future in Ubuntu.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 zlib1g:i386 libX11-6:i386 libxft2:i386 libcairo2:i386
 
Because packages can also pull in other packages as dependencies, it's actually enough in the last line to install just Xft and Cairo. This also gets rid of the problem of having to choose between several libc's and libz's: they pick the same packages as I chose manually above:
sudo apt-get install libxft2:i386 libcairo2:i386
 
And to install OpenJDK to be able to build and run the Digital Watch example for Generation target platform: "Java: Linux":
sudo apt-get install default-jdk


Edited by stevek - 30.Sep.2014 at 17:09
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.16
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0.078 seconds.