Firefox 18+ 可以在 RHEL 5.9 上编译吗?

Firefox 18+ 可以在 RHEL 5.9 上编译吗?

我尝试在 RHEL 5.9 上编译 Firefox 24,但遇到了依赖问题。

我没有 root 权限,但我在其中一个目录中编译了几个依赖项(glib、cairo 等等)。我在编译 pango (1.20.5) 时失败,出现此错误,我无法解决:/work/usr/lib/libcairo.so:未定义对“XRenderFindVisualFormat”的引用。

现在我的问题是:是否可以在 RHEL 5.9 上编译 FF24,如果可以,您能否推荐一个系统地进行的程序?

编辑:

我尝试了 gentoo prefix 解决方案:使用 bootstrap-prefix.sh 将前缀安装到 /work/gentoo 后:

  • USE="-*"添加了一行$EPREFIX/etc/portage/make.conf
  • 添加了一行 PYTHON_TARGETS="python2_7"$EPREFIX/etc/portage/make.conf
  • 主机上的 nasm 太旧(NASM 版本 0.98.39,编译于 2006 年 7 月 12 日),因此构建 media-libs/libjpeg-turbo-1.3.1 失败。emerge nasm已修复。
  • emerge --autounmask-write '<media-libs/mesa-10.2'
  • emerge --autounmask-write firefox

要启动 Firefox,我使用一个脚本:

#!/bin/bash
PREFIX=/work/gentoo
COMMAND="${PREFIX}/usr/lib/firefox/firefox $1"
env -i HOME=$HOME TERM=$TERM USER=$USER $PREFIX/bin/bash -l -c "export DISPLAY=:0.0 ; ${COMMAND}"

不幸的是,我无法将文件传递给该脚本,因此 Firefox 会自动打开该文件。另外,这是一个更严重的问题,使用鼠标滚轮滚动存在错误,并且无法通过单击切换选项卡。所以所有的努力都白费了 )o:

答案1

可以使用以下方法在 RHEL 5 上编译 FirefoxGentoo 前缀。这需要一点工作(Prefix 的 IRC 频道很有帮助),但使用合适的包管理器意味着所有依赖项都会为您处理。

Bootstrap Prefix,然后只需使用以下命令安装 Firefox:

$ ~/gentoo/startprefix # wherever your prefix shell script is
$ emerge -a firefox
$ export DISPLAY=:0.0 # Use the existing Xorg installed
$ firefox

请注意,Firefox 30 是可在 RHEL 5 上运行的最后一个版本。Firefox 31+ 依赖于 mesa 10.2+。mesa 10.2+ 在构建时依赖于 libudev 和 udev,而它们无法在 Gentoo 前缀上构建。

答案2

emerge --autounmask-write firefox

应替换为

emerge -p --autounmask-write firefox

在该步骤之后,您应该在 $EPREFIX/etc/portage/make.conf 中替换

USE="-*"

经过

USE="-keyword1 -keyword2 -keyword3 ... -keywordN"

其中 keyword1 keyword2 keyword3, ... keywordN 应该被 所示的各种 USE 标志替换emerge -p --autounmask-write firefox。如果emerge -p --autounmask-write firefox显示

[ebuild   R    ] app-text/recode-3.6_p17-r2  USE="nls (prefix%*) -static-libs" 2,021 kB

然后你可以使用

USE="-nls -static-libs"

这将给你带来与 完全相同的效果的东西USE="-*"

下一步,你应该试着猜测 USE 中的哪些元素是防止“使用鼠标滚轮滚动出现错误以及通过单击切换标签”的元素。例如,如果它是 -nls,那么你应该在 USE 变量中将 -nls 替换为 +nls(或什么都不替换)。

您可以查找http://www.gentoo.org/dyn/use-index.xml跟踪与鼠标相关的USE关键字。

之后,按照以下步骤编译一个兼容鼠标的 Firefox:

emerge --autounmask-write firefox
mv $EPREFIX/etc/portage/.*package.use $EPREFIX/etc/portage/package.use
emerge firefox

注意:我认为将 USE 变量缩短为几个关键字就足以构建 Firefox。如果您成功找到它,请在此处和 IRC 上报告。

答案3

这假设您具有安装各种 RPMS 的 root 权限,所以我不确定您如何解决这个问题,但可以在 EL5 上构建 FF24。

看一下本文

相关内容