Создание собственного пакета Heroku Ruby / Rails Buildpack для веб-приложения с использованием Taglib-Ruby
Я создал приложение с использованием Rails 3.2, которое использует гем taglib-ruby.
Мне нужно загрузить это приложение в Heroku, но оно не может успешно собрать гем taglib-ruby, поскольку на компьютере должна быть установлена соответствующая библиотека C ++ taglib.
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.
Это привело меня к использованию Vulcan для создания собственного пакета сборки для установки моего приложения.
Следуя совету наhttps://github.com/heroku/vulcan/issues/32 Мне удалось успешно установить cmake и taglib с помощью Vulcan. Полученные файлы, которые вулкан скачал на мой компьютер, я размещал наhttps://github.com/JllyGrnGiant/vulcan-buildpack
Если я захожу в каталог моего приложения и запускаю
heroku create --stack cedar --buildpack [github repo].git
затем попытайтесь запустить приложение, сборщик успешно найдет пакет сборки, но не знает, как продолжить установку приложения.
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**
Я полагаю, что это потому, что мне нужно раскошелиться на стандартный пакет ruby.
Теперь мы добрались до моей проблемы. Я не очень хорошо осведомлен, когда дело доходит до развертывания, поэтому я не знаю, куда включить мои файлы taglib или какие другие файлы нужно изменить, поэтому, нажимая мое приложение, они находят эти библиотеки taglib для создания гема taglib-ruby. Раздел «Упаковка двоичных файлов» справки на веб-сайте Heroku не имеет особого смысла для меня, не говоря уже о контексте моей проблемы, когда у меня нет двоичных файлов, но есть много заголовочных файлов и библиотек.
Другие люди, которые задавали этот вопрос о taglib-ruby и Heroku, так и не смогли пройти установку cmake, которая мне подошла, и я не смог найти ресурсов, объясняющих, как включить библиотеки в пользовательский пакет сборки для Ruby / Rails Приложение.
Любая помощь будет принята с благодарностью. Спасибо за уделенное время.