问题
In short: how do I get Squeak 5 to run on x64 Linux? I dont care whether the executable is 32 or 64 bit as long as it runs and opens the Squeak 5 image.
Here is what I tried:
When I try to run the executables from the Squeak 5 package i get: Running 32-bit Squeak on a 64-bit System. install-libs32 may install them
- tried that. Wasn't found.
Then I went looking for a 64 bit executable. There are some from Squeak 4 but they can't open Squeak 5 images.
Looking through the Squeak 5 package:
The shell scripts squeak.sh
in both these directories:
- Squeak-5.0-All-in-One/
- Squeak-5.0-All-in-One/Squeak-5.0-All-in-One.app/Contents/LinuxAndWindows/
Both return this error:
/usr/bin/ldd didn't produce any output and the system is 64 bit. You may need to (re)install the 32-bit libraries.
There are also misleading files named squeak
(no .sh) in these directories:
- Squeak-5.0-All-in-One/Squeak-5.0-All-in-One.app/Contents/LinuxAndWindows/Linux-i686
- Squeak-5.0-All-in-One/Squeak-5.0-All-in-One.app/Contents/LinuxAndWindows/Linux-i686/bin
They are not the executable, just more shell scripts.
There is another squeak
file in:
- Squeak-5.0-All-in-One/Squeak-5.0-All-in-One.app/Contents/LinuxAndWindows/Linux-i686/lib/squeak/5.0-3397
Running ./squeak
misleadingly says No such file or directory
. It is misleading because the file does exist, it is just a 32-bit exe.
file squeak
tells me: ELF 32-bit LSB executable, Intel 80386
.
So how do I get it to run on 64-bit Linux? I could compile it myself but haven't tried assuming there are a lot of dependencies. Or has anyone tried it?
回答1:
You already got all information you need:
You may need to (re)install the 32-bit libraries.
Squeak 5 is currently 32bit only. Hence, you need 32bit libraries. It cannot use your 64bit libraries.
You may need thes:e packages (I use Debian/Ubuntu names, CentOS/RH/SuSE should be similar):
- libc6:i386
- libuuid1:i386
- libkrb5-3:i386
- libk5crypto3:i386
- zlib1g:i386
- libcomerr2:i386
- libkrb5support0:i386
- libkeyutils1:i386
- libx11-6:i386
- libgl1-mesa-glx:i386
- libsm6:i386
- libssl1.0.0:i386
(note the :i386
in the names)
回答2:
This works in 64 bit Ubuntu 16.04:
In the directory where you unzipped the Squeak-5.0-All-in-One.zip archive, and that contains the squeak.sh file, put the following into a file named libs32.sh :
#!/bin/bash
objdump -p ./Squeak-5.0-All-in-One.app/Contents/LinuxAndWindows/Linux-i686/lib/squeak/5.0-3397/*|
grep NEEDED|
awk '{print $2}'|
sort -u|
xargs dpkg -S|
awk '{print $1}'|
sort -u|
sed 's/:amd64:/:i386:/'|
sort -u|
sed 's/:$//'
Make that file executable:
chmod +x ./libs32.sh
Run it:
./libs32.sh
You will get a list of libraries that need to be installed.
Run
./lib32.sh | xargs sudo apt install
to see what would be installed.
Run
./lib32.sh | xargs sudo apt install -y
to install it.
来源:https://stackoverflow.com/questions/34660201/getting-the-new-squeak-5-to-run-on-64-bit-linux