在 64 位 Linux 上获得新的 Squeak 5 运行

Getting the new Squeak 5 to run on 64 bit Linux

简而言之:如何在 x64 Linux 上将 Squeak 5 安装到 运行? 我不关心可执行文件是 32 位还是 64 位,只要它 运行s 并打开 Squeak 5 图像即可。


这是我尝试过的:

当我尝试 运行 来自 Squeak 5 软件包的可执行文件时,我得到: Running 32-bit Squeak on a 64-bit System. install-libs32 may install them - 试过了。未找到。

然后我开始寻找 64 位可执行文件。有一些来自 Squeak 4 但他们无法打开 Squeak 5 图片。

查看 Squeak 5 包装:

shell 脚本 squeak.sh 在这两个目录中:

两者都return这个错误:

/usr/bin/ldd didn't produce any output and the system is 64 bit. You may need to (re)install the 32-bit libraries.

这些目录中还有名为 squeak(没有 .sh)的误导性文件:

它们不是可执行文件,只是更多 shell 脚本。

还有另一个 squeak 文件位于:

运行 ./squeak 误导性地说 No such file or directory。它具有误导性,因为该文件确实存在,它只是一个 32 位 exe。

file squeak 告诉我:ELF 32-bit LSB executable, Intel 80386.


那么如何在 64 位 Linux 上将其设置为 运行?我可以自己编译它,但还没有尝试假设有很多依赖项。或者有人试过吗?

您已经获得了所有需要的信息:

You may need to (re)install the 32-bit libraries.

Squeak 5 目前只有 32 位。因此,您需要 32 位库。 它不能使用您的 64 位库。

您可能需要 thes:e 个包(我使用 Debian/Ubuntu 个名称,CentOS/RH/SuSE 应该类似):

  • 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

(注意名称中的:i386

这适用于 64 位 Ubuntu 16.04:

在你解压的目录下 Squeak-5.0-All-in-One.zip 存档,其中包含 squeak.sh 文件, 将以下内容放入名为 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 }'|
sort -u|
xargs dpkg -S|
awk '{print }'|
sort -u|
sed 's/:amd64:/:i386:/'|
sort -u|
sed 's/:$//'

使该文件可执行:

chmod +x ./libs32.sh

运行它:

./libs32.sh

您将获得需要安装的库列表。

运行

./lib32.sh | xargs sudo apt install

看看会安装什么。

运行

./lib32.sh | xargs sudo apt install -y

安装它。