2

我正在尝试让 libarchive 在我的 Rails 应用程序中工作。具体来说,我需要解压缩文件并将其内容重新压缩为 .CPGZ 文件。我相信 Libarchive 是我最好的选择。

但是,当我运行 bundle install 时,我收到以下错误:(它抱怨 archive.h 丢失)。

Using heroku (2.24.1) 
Using multi_xml (0.4.4) 
Using httparty (0.8.3) 
Using itunes-search-api (0.1.0) 
Using kgio (2.7.4) 
Using less (2.2.1) 
Using less-rails (2.2.2) 
Installing libarchive (0.1.2) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/Chris/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for a BSD-compatible install... /usr/bin/install -c
configure: creating ./config.status
config.status: creating config.h
checking for config.h... yes
checking for archive.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/Chris/.rvm/rubies/ruby-1.9.2-p290/bin/ruby


Gem files will remain installed in /Users/Chris/.rvm/gems/ruby-1.9.2-p290/gems/libarchive-0.1.2 for inspection.
Results logged to /Users/Chris/.rvm/gems/ruby-1.9.2-p290/gems/libarchive-0.1.2/ext/gem_make.out
An error occured while installing libarchive (0.1.2), and Bundler cannot continue.
Make sure that `gem install libarchive -v '0.1.2'` succeeds before bundling.

我的 Gemfile 是相当标准的,包括该行gem 'libarchive'

我将在 Heroku 上运行它。

有任何想法吗?

4

1 回答 1

1

我相信这意味着 Heroku 的堆栈中没有 libarchive 库。对雪松也不起作用,我发现了。唉,因此您不能使用 libarchive gem,因为它只是 C 库的一个包装器,直到它们包含它。

于 2012-08-09T19:05:06.583 回答