Print Page | Close Window

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

Printed From: MetaCase
Category:
Forum Name: MetaEdit+
Forum Description: All topics relating to MetaEdit+ or DSM
URL: http://www.metacase.com/forums/forum_posts.asp?TID=649
Printed Date: 28.Mar.2024 at 10:00
Software Version: Web Wiz Forums 12.05 - http://www.webwizforums.com


Topic: MetaEdit+ 5.0 on 64-bit openSUSE 12.2, Ubuntu etc.
Posted By: stevek
Subject: MetaEdit+ 5.0 on 64-bit openSUSE 12.2, Ubuntu etc.
Date Posted: 11.Jan.2013 at 19:19

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

mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow -  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:
 
mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow - ~/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]

mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow - > 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 http://rpmfind.net/linux/rpm2html/search.php?query=&submit=Search+...&system=opensuse&arch=" rel="nofollow - rpmfind.net ). As it happens, glibc-32bit and zlib-32bit are indeed already installed, so we just need X11:

mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow -  sudo zypper install libX11-6-32bit
mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow -

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):

mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow -  sudo zypper install libXft2-32bit
mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow -

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:

mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow -  sudo zypper install libCairo2-32bit
mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow -

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.

mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow -  sudo zypper install java-1_7_0-openjdk-devel
mailto:metacase@linux-ihvq:~/metaedit" rel="nofollow -

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!




Replies:
Posted By: stevek
Date 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" rel="nofollow - http://packages.ubuntu.com instead, and search for the library filename in package contents for your distro version and i386 architecture, e.g. http://packages.ubuntu.com/search?suite=saucy&section=all&arch=i386&lang=en&keywords=libc.so.6&searchon=contents" rel="nofollow - 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 http://stackoverflow.com/a/19524010/1166064" rel="nofollow - 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



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.05 - http://www.webwizforums.com
Copyright ©2001-2022 Web Wiz Ltd. - https://www.webwiz.net