Erstellen eines benutzerdefinierten Heroku Ruby / Rails-Buildpacks für Webanwendungen mit Taglib-Ruby

Ich habe eine Anwendung mit Rails 3.2 erstellt, die den Taglib-Ruby-Edelstein verwendet.

Ich muss diese App auf Heroku hochladen, kann den Taglib-Ruby-Edelstein jedoch nicht erfolgreich erstellen, da die zugehörige C ++ - Taglib-Bibliothek auf dem Computer installiert werden muss.

   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.

Dies führte dazu, dass ich Vulcan verwendete, um ein benutzerdefiniertes Buildpack für die Installation meiner App zu erstellen.

Befolgen Sie die Hinweise aufhttps://github.com/heroku/vulcan/issues/32 Ich konnte cmake und taglib mit Vulcan erfolgreich installieren. Die resultierenden Dateien, die vulcan auf meinen Computer heruntergeladen hat, habe ich bei gehostethttps://github.com/JllyGrnGiant/vulcan-buildpack

Wenn ich in das Verzeichnis meiner App gehe und starte

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

Versuchen Sie dann, meine App zu pushen. Der Builder findet das Buildpack erfolgreich, weiß jedoch nicht, wie er meine App installieren soll

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

Ich glaube, das liegt daran, dass ich das standardmäßige Ruby-Buildpack entfernen muss.

Jetzt kommen wir zu meinem Problem. Ich bin nicht sehr gut informiert, wenn es um die Bereitstellung geht. Daher weiß ich nicht, wo ich meine Taglib-Dateien einfügen oder welche anderen Dateien ich ändern soll. Wenn ich meine App drücke, werden diese Taglib-Bibliotheken gefunden, um den Taglib-Ruby-Edelstein zu erstellen. Der Abschnitt über die Paket-Binärdateien auf der Heroku-Website macht für mich im Zusammenhang mit meinem Problem, dass ich keine Binärdateien, sondern viele Header-Dateien und Bibliotheken habe, keinen großen Sinn.

Andere Leute, die diese Frage zu taglib-ruby und Heroku gestellt haben, haben die Installation von cmake noch nicht hinter sich gebracht und ich konnte keine Ressourcen finden, die erklären, wie Bibliotheken in ein benutzerdefiniertes Buildpack für Ruby / Rails aufgenommen werden App.

Jede Hilfe wäre sehr dankbar. Vielen Dank für Ihre Zeit.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage