Construyendo Heroku Ruby / Rails Buildpack personalizado para aplicación web usando Taglib-Ruby

He creado una aplicación con Rails 3.2 que hace uso de la gema taglib-ruby.

Necesito cargar esta aplicación en Heroku, pero no puede construir con éxito la gema taglib-ruby porque la biblioteca de taglib C ++ asociada debe instalarse en la 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.

Esto me llevó a usar Vulcan para construir un buildpack personalizado para instalar mi aplicación.

Siguiendo los consejos dehttps://github.com/heroku/vulcan/issues/32 Pude instalar cmake y taglib correctamente usando Vulcan. Los archivos resultantes que vulcan descargó a mi computadora que he alojado enhttps://github.com/JllyGrnGiant/vulcan-buildpack

Si entro en el directorio de mi aplicación y ejecuto

heroku create --stack cedar --buildpack [github repo].git

luego intente empujar mi aplicación, el constructor encuentra con éxito el buildpack pero no sabe cómo proceder con la instalación de mi aplicación

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**

Creo que esto se debe a que necesito bifurcar el buildpack de ruby ​​predeterminado.

Ahora llegamos a mi problema. No tengo mucho conocimiento de la implementación, por lo que no sé dónde incluir mis archivos taglib ni qué otros archivos cambiar, por lo que al empujar mi aplicación se encuentran esas bibliotecas taglib para crear la gema taglib-ruby. La sección de binarios de empaquetado de la ayuda en el sitio web de Heroku no tiene mucho sentido para mí y mucho menos en el contexto de mi problema donde no tengo binarios, sino muchos archivos de cabecera y bibliotecas.

Otras personas que han hecho esta pregunta sobre taglib-ruby y Heroku no han dejado de instalar cmake, que se completó bien para mí, y no he podido encontrar recursos que expliquen cómo incluir bibliotecas en un buildpack personalizado para un Ruby / Rails App.

Cualquier ayuda sería muy apreciada. Gracias por tu tiempo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta