刚刚安装了El Capitan,无法安装gem <?php
<form action="form1.php" method="POST">
username <input type="text" name="username"><br />
password <input type="password" name="password"><br />
<input type="submit" name="submitbutt" value="Login!"><br />
</form>
?>
eventmachine
。 1.0.7
位于openssl
。试图使用1.0.2a-1
,但它似乎被忽略了。
同时向他们的github repo报告。
非常感谢任何建议。感谢。
--with-ssl-dir
答案 0 :(得分:513)
$ gem install eventmachine -- --with-cppflags=-I/usr/local/opt/openssl/include
Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include'
This could take a while...
Successfully installed eventmachine-1.0.8
1 gem installed
您也可以像这样设置捆绑器,但我认为这是肤浅的
bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include
答案 1 :(得分:231)
使用bundler和homebrew时:
$ bundle config build.eventmachine --with-cppflags=-I$(brew --prefix openssl)/include
$ bundle install
答案 2 :(得分:114)
brew link --force openssl
然后:
gem install eventmachine
它还修复了:
P.S。您可能需要删除并再次运行brew install openssl
问题正在发生,因为Apple已经从OSX中移除了openssl(在El Captain构建中)
答案 3 :(得分:13)
gem pristine eventmachine -- --with-cppflags=-I/usr/local/opt/openssl/include
pristine删除旧的gem并重新编译它。
cpp flags选项允许编译器找到openssl头文件。
如果您愿意,也可以添加版本:
gem pristine eventmachine -v '1.0.4' -- --with-cppflags=-I/usr/local/opt/openssl/include
答案 4 :(得分:8)
我试图安装v 1.0.3,这对我有用。
gem install eventmachine -v '1.0.3' -- --with-cppflags=-I/usr/local/opt/openssl/include
这些讨论非常有帮助。 https://github.com/eventmachine/eventmachine/issues/602
答案 5 :(得分:7)
如果您正在安装EventMachine作为另一个gem的依赖项,请务必在手动安装gem时指定正确的版本:
gem install eventmachine -v 1.0.5 -- --with-cppflags=-I$(brew --prefix openssl)/include
然后您可以安装最初尝试安装的gem:
gem install mailcatcher
答案 6 :(得分:4)
另一种方法是为整个用户配置文件添加一个bundler配置条目,如下所示:
cd ~
bundle config build.eventmachine --with-cppflags=-I$(brew --prefix openssl)/include
它会在您的主目录中创建一个.bundle / config文件,然后在您运行bundle install
时在所有项目中使用该文件。
答案 7 :(得分:4)
这解决了我的问题:
PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" gem install eventmachine -v "1.0.8"
答案 8 :(得分:0)
这对我有用 -
gem install eventmachine -v '1.0.7' -- --debug --backtrace --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib
Building native extensions with: '--debug --backtrace --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed eventmachine-1.0.7
Parsing documentation for eventmachine-1.0.7
Installing ri documentation for eventmachine-1.0.7
Done installing documentation for eventmachine after 9 seconds
1 gem installed
注意: - 在我成功安装此gem之前,我必须做一些事情。这些可能适用于您,因此请在此处列出 -
1。)离开了企业VPN 或者您可能必须打开代理设置
2。)PKG_CONFIG_PATH设置为 -
echo $PKG_CONFIG_PATH
/usr/local/opt/openssl/lib/pkgconfig
3.。)必须将以下内容添加到bash_profile中的$ PATH中(在我的情况下为〜/ .zshrc)
export PATH="/usr/local/opt/openssl/bin:$PATH"
4。)另请注意,与我在SO帖子中得到的一些答案相反,以及github-eventmachine上的这个帖子,我无法安装eventmachine
gem install eventmachine -v '1.0.7' -- --debug --backtrace --with-cppflags=-I/usr/local/include --with-ldflags=-L/usr/local/lib
Fetching: eventmachine-1.0.7.gem (100%)
Building native extensions with: '--debug --backtrace --with-cppflags=-I/usr/local/include --with-ldflags=-L/usr/local/lib'
This could take a while...
ERROR: Error installing eventmachine:
ERROR: Failed to build gem native extension.
在指定openssl位置时,似乎/usr/local/opt/openssl/include
是正确的位置,而不是/usr/local/include
。