gpt4 book ai didi

linux - 如何从 cygwin 中使用自定义 glibc 为 suse enterprise linux 编译 php-cgi 二进制文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:40 29 4
gpt4 key购买 nike

我认为非常直截了当。这是可行的吗?

背景:我这样做是因为我需要在 suse enterprise 9 上运行 php-cgi 并且无法获取 LD_PRELOAD 或 LD_LIBRARY_PATH 以使用非系统版本的 glibc。

php-cgi: /lib/tls/libc.so.6: version `GLIBC_2.7' not found

我从这里下载了 2.7

http://rpmfind.net/linux/rpm2html/search.php?query=libc.so.6(GLIBC_2.7 )

更准确地说

ftp://rpmfind.net/linux/sourceforge/r/ro/roblinux/64-32_pkg/core/i686/glibc-2.7-2rt.i686.rpm

并使用 rpm2cpio 解压。

我需要 php-cgi,因为我无法安装 php 并且想尝试使用 JavaBridge 从 tomcat 中运行 php。

最佳答案

How can I compile php-cgi binary using a custom glibc for suse enterprise linux out of cygwin?

Pretty straight to the point I think.

不,一个非常困惑和迂回的问题。

首先,cygwin 绝对没有与您的问题有关:它用于在 Windows 上运行 UNIX 程序,这根本不是您要问的问题。 p>

其次,您的问题似乎是:“我如何在 glibc 比构建 php-cgi 的系统更旧的系统上运行预构建的 php-cgi 二进制文件?”,而不是关于编译 任何东西。

对于那个问题,答案是:您不能(很容易)-- UNIX 系统不支持前向二进制兼容性(在新系统上构建,在旧系统上运行)。仅支持向后兼容性(旧的动态链接二进制文件继续在较新的系统上运行)。

你最好的方法是尝试在你的系统上构建 php-cgi(这将消除它对 GLIBC_2.7 的依赖。如果你不能,你应该仍然能够运行这样一个针对解压的 glibc-2.7 构建二进制文件,如果该二进制文件不会重新执行自身。执行此操作的方法,假设您将 glibc-2.7 解压到例如 /tmp/glibc-2.7 类似于:

/tmp/glibc-2.7/lib/ld-linux.so.2 --library-path \
/tmp/glibc-2.7/lib:/lib:/usr/lib \
/path/to/php-cgi <args>

(上面的库路径可能需要一些调整才能让加载器找到所有需要的库。)

更新:

is it practical to compile stuff for my linux box in cygwin

可能的,但是显着比简单地在 linux 机器本身上编译更痛苦(因此不是很实用)。除了误认为 cygwin 可以解决所有问题之外,您似乎没有任何理由想要这样做。

关于linux - 如何从 cygwin 中使用自定义 glibc 为 suse enterprise linux 编译 php-cgi 二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11351606/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com