使用OS X 10.10 Yosemite Beta重新安装带有Homebrew的MongoDB

时间:2014-06-05 05:18:35

标签: macos mongodb homebrew scons osx-yosemite

重申一下,我正在运行第一个OS X 10.10测试版,并试图用Homebrew重新安装MongoDB。

运行$ brew install mongodb后,这是输出:

==> Downloading http://downloads.mongodb.org/src/mongodb-src-r2.6.1.tar.gz
==> /usr/local/opt/scons/bin/scons install --prefix=/usr/local/Cellar/mongodb/2.6.1 -j8 --cc=/usr/bin/clang --cxx=/usr/bin/clang++ --osx-version-min=10.10 --full --64
scons: Reading SConscript files ...
Mkdir(".scons/Darwin/nohost")
usage: scons [OPTION] [TARGET] ...

SCons Error: option --osx-version-min: invalid choice: '10.10' (choose from '10.6', '10.7', '10.8', '10.9')

显然,没有为10.10配置安装包,因为它尚未向公众发布。

有没有办法在构建过程中手动绕过它?

4 个答案:

答案 0 :(得分:89)

这可能会在较新版本的MongoDB(https://jira.mongodb.org/browse/SERVER-14204)中修复,现在只需修补公式。

brew edit mongodb

找到如下所示的块:

args = %W[
  --prefix=#{prefix}
  -j#{ENV.make_jobs}
  --cc=#{ENV.cc}
  --cxx=#{ENV.cxx}
  --osx-version-min=#{MacOS.version}
]

并将OS X版本min更改为10.9,如下所示:

args = %W[
  --prefix=#{prefix}
  -j#{ENV.make_jobs}
  --cc=#{ENV.cc}
  --cxx=#{ENV.cxx}
  --osx-version-min=10.9
]

编辑:DP3,DP4,PB1的额外步骤

仍然在文件中,在def install上方添加以下3行。

  def patches
    { :p1 => 'https://gist.githubusercontent.com/LinusU/a1771562fec0201c54cd/raw/98825f9fbe93b8cc524e05a9c0e99864e8301731/mongodb.diff' }
  end

然后执行升级:

brew upgrade mongodb

答案 1 :(得分:4)

提一下 - 这个问题已得到解决 今天(2014年10月13日)通过$ brew install mongodb

构建和安装
==> Summary
  /usr/local/Cellar/mongodb/2.6.5: 17 files, 331M, built in 21.6 minutes

答案 2 :(得分:3)

如果Linus描述的步骤不充分,请执行其他步骤(10.10 beta 3和beta 4):

  1. cd / Library / Caches / Homebrew /
  2. tar xvfz mongodb-2.6.3.tar.gz
  3. cd mongodb-src-r2.6.3
  4. vi src / third_party / s2 / util / endian / endian.h
  5. 取消注释第181-189行

    // This one is safe to take as it's an extension
    //#define htonll(x) ghtonll(x)
    //
    // ntoh* and hton* are the same thing for any size and bytesex,
    // since the function is an involution, i.e., its own inverse.
    //#define gntohl(x) ghtonl(x)
    //#define gntohs(x) ghtons(x)
    //#define gntohll(x) ghtonll(x)
    //#define ntohll(x) htonll(x)
    
  6. cd ..
  7. rm mongodb-2.6.3.tar.gz
  8. tar cvfz mongodb-2.6.3.tar.gz mongodb-src-r2.6.3
  9. brew install mongodb

    ==> Downloading http://downloads.mongodb.org/src/mongodb-src-r2.6.3.tar.gz
    Already downloaded: /Library/Caches/Homebrew/mongodb-2.6.3.tar.gz
    Error: SHA1 mismatch
    Expected: 226ab45e3a2e4d4a749271f1bce393ea8358d3dd
    Actual: 593bbe9cb7e0b1d2368b3b6487893e8ba459acfb
    Archive: /Library/Caches/Homebrew/mongodb-2.6.3.tar.gz
    
  10. 复制实际的SHA1
  11. brew edit mongodb
  12. 将预期的SHA1值替换为实际值。
  13. brew install mongodb
  14. rm -rf mongodb-src-r2.6.3

答案 3 :(得分:1)

看起来已经建议了补丁。但我真的没有任何信息 - https://groups.google.com/forum/#!topic/mongodb-user/KToczUct6BE

我希望看到它也能正常运作。