【问题标题】:Error while install gcc49 in Ubuntu by using linuxbrew使用 linuxbrew 在 Ubuntu 中安装 gcc49 时出错
【发布时间】:2014-03-22 04:40:32
【问题描述】:

我想在 Ubuntu Linux 上安装最新的gcc49,而我对 Mac 上的Homebrew 比较熟悉,所以我想使用它的 Linux 版本,即Linuxbrew。所以我安装了Linuxbrew 并输入了

$ brew install gcc49

首先安装依赖gmp4mpfr2等。我在gmp4 中添加了if OS.mac? 条件,因此可以成功安装,但是在安装mpfr2(也添加了条件)时,make check 失败并出现错误:

...
/tmp/mpfr2-i5YD/mpfr-2.4.2/tests/.libs/lt-tpow_all: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory
FAIL: tpow_all
=======================
148 of 148 tests failed
=======================

如您所见,测试找不到刚刚安装的libgmp.so.3。但gmp4 只是桶,因为它会与主存储库中的 gmp 冲突。

但配置选项设置为gmp4的正确位置:

./configure --disable-dependency-tracking --prefix=/home/dongli/.linuxbrew/Cellar/mpfr2/2.4.2 --with-gmp=/home/dongli/.linuxbrew/opt/gmp4

如何解决这个问题?谢谢!

【问题讨论】:

    标签: linux gcc homebrew mpfr linuxbrew


    【解决方案1】:

    您认为坚持使用非操作系统原生的第三方脚本解决方案是错误的。

    this PPA on Launchpad 中有 预构建版本 gcc 等人由相同的维护者提供。这些是下一个 Ubuntu 版本中的预览/测试版本。

    【讨论】:

    • 我更喜欢在 Linux(不仅仅是 Ubuntu)中安装一些缺少的软件包(不仅是 gcc49)的统一解决方案,而且linuxbrew 似乎很有希望。感谢您的信息!
    • 无论你喜欢什么——但是在发行版之间做好依赖是……几乎是不可能的。我更喜欢生活在一个管理良好的世界中,而 Debian(和 Ubuntu)在近二十年来一直为我服务得很好。
    • 嗯,在我的世界里,人们总是使用不同的 Linux 发行版,因此会出现很多烦人的依赖问题。在linuxbrew,我可以贡献公式,这样事情就只需要完成一次。
    【解决方案2】:

    我发现了问题,那就是在Ruby公式中每次system调用后环境都被重置了。所以我们需要设置正确的LD_LIBRARY_PATH

    if OS.linux?
      ENV["LD_LIBRARY_PATH"] = "#{Formula["..."].opt_prefix}/lib:...:$LD_LIBRARY_PATH"
    end
    

    以便LD_LIBRARY_PATH 在构建过程中持续存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-14
      • 2014-05-23
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多