Construindo Custom Builder Heroku Ruby / Rails para Web App usando o Taglib-Ruby
Eu criei um aplicativo usando o Rails 3.2 que faz uso da gem taglib-ruby.
Eu preciso fazer o upload deste aplicativo para Heroku, mas ele não pode construir com sucesso a gem taglib-ruby porque a biblioteca taglib C ++ associada precisa ser instalada na máquina.
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/bin/ruby extconf.rb
checking for main() in -lstdc++... yes
checking for main() in -ltag... no
You must have taglib installed in order to use taglib-ruby.
Debian/Ubuntu: sudo apt-get install libtag1-dev
Fedora/RHEL: sudo yum install taglib-devel
Brew: brew install taglib
MacPorts: sudo port install taglib
*** 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
--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=/usr/local/bin/ruby
--with-tag-dir
--without-tag-dir
--with-tag-include
--without-tag-include=${tag-dir}/include
--with-tag-lib
--without-tag-lib=${tag-dir}/lib
--with-stdc++lib
--without-stdc++lib
--with-taglib
--without-taglib
Gem files will remain installed in /tmp/build_1upomfnxnemtx/vendor/bundle/ruby/1.9.1/gems/taglib-ruby-0.5.2 for inspection.
Results logged to /tmp/build_1upomfnxnemtx/vendor/bundle/ruby/1.9.1/gems/taglib-ruby-0.5.2/ext/taglib_base/gem_make.out
An error occurred while installing taglib-ruby (0.5.2), and Bundler cannot
continue.
Make sure that `gem install taglib-ruby -v '0.5.2'` succeeds before bundling.
Isso me levou a usar o Vulcan para construir um buildpack personalizado para instalar meu aplicativo.
Seguindo o conselho emhttps://github.com/heroku/vulcan/issues/32 Consegui instalar com sucesso o cmake e o taglib usando o Vulcan. Os arquivos resultantes que vulcan baixaram para o meu computador que eu hospedei emhttps://github.com/JllyGrnGiant/vulcan-buildpack
Se eu entrar no diretório do meu aplicativo e executar
heroku create --stack cedar --buildpack [github repo].git
tente empurrar meu aplicativo, o construtor encontra o buildpack com sucesso, mas não sabe como continuar instalando meu aplicativo
Counting objects: 893, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (828/828), done.
Writing objects: 100% (893/893), 38.75 MiB | 1.03 MiB/s, done.
Total 893 (delta 480), reused 57 (delta 2)
-----> Fetching custom git buildpack... done
! Heroku push rejected, no Cedar-supported app detected**
Eu acredito que isso é porque eu preciso forçar o buildpack padrão do ruby.
Agora chegamos ao meu problema. Eu não sou muito conhecedor quando se trata de implantação, então eu não sei onde incluir meus arquivos taglib nem quais outros arquivos serão alterados, então empurrar meu aplicativo encontra essas bibliotecas taglib para construir o gem taglib-ruby. A seção de binários de empacotamento da ajuda no site da Heroku não faz muito sentido para mim, muito menos no contexto do meu problema, onde eu não tenho binários, mas muitos arquivos de cabeçalho e bibliotecas.
Outras pessoas que fizeram essa pergunta sobre taglib-ruby e Heroku não conseguiram instalar o cmake, o que foi muito bem para mim, e eu não consegui encontrar recursos explicando como incluir bibliotecas em um buildpack personalizado para um Ruby / Rails. Aplicativo.
Qualquer ajuda seria muito apreciada. Obrigado pelo seu tempo.