gem安装在bundle文件夹(vendor/bundle)上



我正在尝试安装一个ruby项目,它有一个类似于Gemfile 的依赖项

nokogiri (1.6.1)

bundlr失败

An error occurred while installing nokogiri (1.6.1), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.1'` succeeds before bundling.

我按照说明手动安装nokogiri并成功(OSX 10.9.2(

 which nokogiri
/usr/bin/nokogiri
nokogiri
Nokogiri: an HTML, XML, SAX, and Reader parser
Usage: nokogiri <uri|path> [options] ...

但是,我如何通过应用程序将nokogiri安装到预期的路径(供应商/捆绑包,与其他依赖项一样,不在系统文件夹中(。我用gem install尝试了一个选项--path vendor/bundle,但无法识别

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

我以另一个用户的身份运行geminstall,这就是为什么没有权限写入系统文件夹的原因。尽管如此,它并没有尝试在vendor/bundle上安装。

如果我能找到一种使用bundle(而不是gem(安装nokogiri的方法,那也是可以的。但是,我不知道如何指定依赖项,如下面的安装命令。

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 
                        --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib 
                        --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 
                        --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
                        --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

尝试在~/.bundle/config:中为bundler创建配置

BUNDLE_PATH: ./vendor/bundle
BUNDLE_BUILD__NOKOGIRI: --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 
                        --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib 
                        --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 
                        --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
                        --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

并且在CCD_ 5之后。

在Mac上,我尝试了以下操作,并成功了。

bundle config build.nokogiri --use-system-libraries
bundle install --path vendor/bundle

最新更新