Установка taglib-ruby gem в Windows
Я пытался установить taglib-ruby для Ruby в Windows, но я не могу понять, как указать установщику gem, где искать мою копию taglib. Установщик выглядит в /usr/local/ и в других подобных местах, но это машина Windows, таких мест не существует, и поэтому я не могу просто переместить туда taglib. Я видел этот пост на странице github для драгоценного камня, который говорит вам указать местоположение, используя этот формат: CONFIGURE_ARGS="--with-opt-dir=Path/to/taglib" gem install taglib-ruby
, но это не работает в Windows PowerShell. Я также попробовал эту формулировку: gem install taglib-ruby -- 'CONFIGURE_ARGS="--with-opt-dir=Path/to/taglib/"'
, Но это также не работает.
Я вижу сообщение об ошибке:
Temporarily enhancing PATH to include DevKit... Building native
extensions with: '--with-opt-dir=/hi/' This could take a while...
ERROR: Error installing taglib-ruby:
ERROR: Failed to build gem native extension.
current directory: C:/XXXXXXX/taglib_base C:/XXXXX/ruby.exe -r ./siteconf20161010-10032-1260rq7.rb extconf.rb --with-opt-dir=/hi/
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=C:/Ruby23-x64/bin/$(RUBY_BASE_NAME)
--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
To see why this extension failed to compile, please check the mkmf.log
which can be found here:...
Вы можете видеть, что --with-opt-dir - опция, но она не установлена, хотя вызов показывает, что это так. Любые идеи относительно того, как заставить это работать?
Примечание. Я также пытался установить переменные окружения для "with-opt-dir" и "CONFIGURE_ARGS", но они также не дали результатов.
1 ответ
Я столкнулся с подобной проблемой и спросил сопровождающего через GitHub. Вы правы, что проблема заключается в том, что встроенная сборка расширения не может найти вашу установку TagLib. Я смог исправить это, переместив TagLib в место, где в пути не было пробелов (по умолчанию C:\Program Files (x86)\taglib
поэтому я переместил его в C:\lib\taglib
) и опускайте любые кавычки при установке with-tag-dir через переменную окружения. Я не уверен, имеет ли смысл использовать предпочитаемый Ruby разделитель папок, но я это сделал.
В командной строке:
> set CONFIGURE_ARGS="--with-tag-dir=C:/lib/taglib-1.9.1"
> echo %CONFIGURE_ARGS%
"--with-tag-dir=C:/lib/taglib-1.9.1"
> gem install taglib-ruby