【问题标题】:Getting the new Squeak 5 to run on 64 bit Linux让新的 Squeak 5 在 64 位 Linux 上运行
【发布时间】:2016-05-02 06:11:25
【问题描述】:

简而言之:如何让 Squeak 5 在 x64 Linux 上运行? 我不在乎可执行文件是 32 位还是 64 位,只要它运行并打开 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

  • Squeak-5.0-All-in-One/
  • Squeak-5.0-All-in-One/Squeak-5.0-All-in-One.app/Contents/LinuxAndWindows/

两者都返回此错误:

/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)的误导性文件:

  • 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

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

还有一个squeak 文件在:

  • Squeak-5.0-All-in-One/Squeak-5.0-All-in-One.app/Contents/LinuxAndWindows/Linux-i686/lib/squeak/5.0-3397

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

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


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

【问题讨论】:

    标签: linux 64-bit squeak


    【解决方案1】:

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

    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

    【讨论】:

    • 谢谢。我使用apt安装了它们,但我仍然收到错误Running 32-bit Squeak on a 64-bit System.然后我还运行install-libs32,它安装了更多并重新启动,仍然是同样的错误。
    • 你能用bash -x squeak.sh 运行squeak.sh 并将输出放在 上吗?
    • 谢谢你。它告诉我真正的错误信息是它没有找到显示器。然后我尝试给它-nodisplay -headless -nomixer,但 .sh 似乎没有将它转发给真正的可执行文件(已经在另一个问题中抱怨过)。然后我直接调用 exe,给它那些 args 和一个 squeak 5 图像,它现在似乎可以工作,至少程序正在运行。无法获得与其的网络连接,但这可能是一个被阻止的端口。明天我将上传一张写出文件的图像,以便确保它运行。感谢您的帮助!
    • 欢迎。随时加入 squeak-dev,网址为 lists.squeakfoundation.org,以获得更深入的帮助和更长时间的讨论
    • @future-people: 已经确认这是可行的(不要跳过我们在这些 cmets 中写的部分)
    【解决方案2】:

    这适用于 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 $2}'|
    sort -u|
    xargs dpkg -S|
    awk '{print $1}'|
    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
    

    安装它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 2015-06-20
      • 2014-01-10
      • 2010-10-08
      • 1970-01-01
      • 2020-03-22
      • 1970-01-01
      相关资源
      最近更新 更多