Ответ 1
Попробуйте это, затем попробуйте снова установить компас
apt-get install ruby-dev
Когда я пытаюсь установить последнюю версию компаса (https://rubygems.org/gems/compass/versions/1.0.0.alpha.17), я получаю следующую ошибку.
ERROR: Error installing compass:
ERROR: Failed to build gem native extension.
ERROR: Error installing compass:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include,/usr/include/ffi... yes
checking for ffi_call() in -lffi... yes
checking for ffi_prep_closure()... yes
checking for ffi_raw_call()... no
checking for rb_thread_blocking_region()... yes
checking for rb_thread_call_with_gvl()... yes
checking for rb_thread_call_without_gvl()... yes
checking for ffi_prep_cif_var()... no
creating extconf.h
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling AbstractMemory.c
compiling ArrayType.c
compiling Buffer.c
compiling Call.c
Call.c:303:5: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]
rbffi_thread_blocking_region(call_blocking_function, data, (void *) -1, NULL);
^
./Thread.h:78:39: note: expanded from macro 'rbffi_thread_blocking_region'
# define rbffi_thread_blocking_region rb_thread_call_without_gvl
^
1 warning generated.
compiling ClosurePool.c
compiling DataConverter.c
DataConverter.c:43:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
1 warning generated.
compiling DynamicLibrary.c
compiling ffi.c
compiling Function.c
Function.c:479:33: warning: incompatible pointer types passing 'VALUE (void *)' to parameter of type 'void *(*)(void *)' [-Wincompatible-pointer-types]
rb_thread_call_with_gvl(callback_with_gvl, &cb);
^~~~~~~~~~~~~~~~~
Function.c:102:46: note: passing argument to parameter 'func' here
extern void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);
^
Function.c:563:9: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]
rb_thread_call_without_gvl(async_cb_wait, &w, async_cb_stop, &w);
^
Function.c:738:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
3 warnings generated.
compiling FunctionInfo.c
compiling LastError.c
compiling LongDouble.c
compiling MappedType.c
compiling MemoryPointer.c
compiling MethodHandle.c
compiling Platform.c
compiling Pointer.c
compiling Struct.c
compiling StructByReference.c
compiling StructByValue.c
compiling StructLayout.c
compiling Thread.c
compiling Type.c
compiling Types.c
compiling Variadic.c
linking shared-object ffi_c.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [ffi_c.bundle] Error 1
make failed, exit code 2
Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/ffi-1.9.3 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-13/2.0.0/ffi-1.9.3/gem_make.out
Что здесь происходит? Как установить последний компас без ошибок?
Попробуйте это, затем попробуйте снова установить компас
apt-get install ruby-dev
Для установки компаса В Mac OS X 10.10 (Yosemite) необходимо было выполнить следующее:
1. Настройте среду Ruby
ruby -v
sudo gem update --system
2. Настройте среду MAC
Установите инструменты командной строки XCode, это ключ для установки Compass.
xcode-select --install
Установка инструментов командной строки Xcode - ключ к работе Compass на OS X
3. Установите Компас
sudo gem install compass
Лучше всего установить sudo apt-get install ruby-compass
для установки компаса.
Вы можете попробовать в Debian с помощью
sudo apt-get install gcc ruby-dev rubygems compass
для Fedora, Centos
yum -y install gcc ruby-devel rubygems compass
Это сработало для меня.
Я боролся с тобой в течение 3 часов. Начиная с Compass 1.0.alpha19
, для версии rvm 1.9.3 требуется.
Есть несколько неувязанных сообщений, однако то, что сработало для меня, было следующим:
sudo gem uninstall sass
sudo gem uninstall compass
rvm install ruby-1.9.3-p448
sudo gem install sass --pre
sudo gem install compass --pre
и сделал это. Надеюсь, это сработает и для вас!
Чтобы решить эту проблему, мне пришлось убедиться, что у меня самая последняя версия Ruby и драгоценных камней gem update --system
; то я должен был убедиться, что Xcode и средства командной строки были установлены: xcode-select --install
.
В Mac OS вам необходимо установить эту функцию!
xcode-select --install
Привет, было сложно заставить его работать на Mac, так что в любом случае это решение
rvm requirements
, затем запустите rvm install 2.1
gem install compass --pre
Я не уверен, но рубиновая версия на Mavericks не поддерживает родные расширения и т.д.... поэтому, если вы укажете на другую рубиновую версию, как я сделал "2.1", она отлично работает.
Не знаю, почему ни один из них не помечен как правильный ответ, но я приземлился здесь через поиск Google, поэтому я передам то, что знаю...
Метод @paul_g был для меня близок, мои шаги на Mac osx10.9 Retina:
--insecure
для связанных с SSL вопросов) $\curl -sSL --insecure https://get.rvm.io | bash -s stable --ruby
rvm requirements --with-gcc=clang
Вам не нужно обновлять Ruby, потому что вы загрузили последнюю стабильную версиюgem install compass --pre
Вам может потребоваться установить Apple Command Line Tools, которые по умолчанию не установлены в вашей системе. Я получал ту же ошибку, но перед выполнением каких-либо инструкций здесь я установил средства командной строки (из-за несвязанной проблемы), и теперь компас установлен без проблем, когда я попытался снова. YMMV.
Чтобы установить Compass on Yosemite, вам нужно настроить среду Ruby и установить инструменты командной строки Xcode. Но самое главное, после обновления Xcode обязательно запустите приложение Xcode и примите условия лицензии Apple. Он завершит установку компонентов. После этого вы можете установить Compass: sudo gem install compass
у вас должно быть gcc, json_pure
я собираю некоторую информацию из нескольких сообщений
sudo gem uninstall sass
sudo gem uninstall compass
sudo gem update --system
gem install json_pure (if you have already have continued to next step)
sudo yum install gcc gcc-c++ (if you have already have continued to next step)
sudo gem install sass
sudo gem install compass
В yosemite все, что вам нужно сделать, это установить инструменты командной строки. то он работает.
Даже если другие драгоценные камни установлены нормально. Вы должны запустить xcode-select --install для установки gem install compass.
Удачи.
В Mac OS X 10.9, если вы попробуете xcode-select --install
, вы получите следующую ошибку:
Не удается установить программное обеспечение, поскольку в настоящее время оно недоступно сервера обновления программного обеспечения.
Решение заключается в загрузке инструментов командной строки (OS X 10.9) непосредственно с веб-сайта Apple: https://developer.apple.com/downloads/index.action?name=for%20Xcode%20-
Затем вы сможете установить последнюю версию средств командной строки.
В ubuntu 14.04, когда выполняются apt-get install rubygems, появляется ошибка
E: Пакет 'rubygems' не имеет кандидата на установку
выполните команду, чтобы решить проблемы.
sudo apt-get install gcc ruby-devel rubygems-integration ruby-compass
Попробуйте brew install coreutils
.
Я столкнулся с этой проблемой при восстановлении старого проекта sass/compass, который недавно был обновлен до ruby 2.2.5 коллегой. В проекте используются rvm и bundler. Это были мои команды
$ rvm install ruby-2.2.5
$ rvm use ruby-2.2.5
$ gem install bundler
$ bundle install
Это заставило меня поразить известные ошибки установки ffi
, которые сообщаются в среде StackOverflow:
An error occurred while installing ffi (1.9.14), and Bundler cannot continue.
Большинство предложений по решению этой проблемы - установить инструменты командной строки Xcode. Однако это уже было установлено в моей среде:
$ xcode-select -p
/Library/Developer/CommandLineTools
Другие предложения сказали установить gcc... поэтому я попробовал:
$ brew install gcc46
Но это также не удалось из-за ошибки сегментации... ¯\_(ツ)_/¯
.
Итак, я тогда попытался установить компас вручную, просто чтобы убедиться, что он даст ту же ошибку ffi
:
$ gem install compass
Но, к моему удивлению, у меня была совершенно другая ошибка:
make: /usr/local/bin/gmkdir: No such file or directory
Итак, я искал эту проблему и нашел этот старинный пост в блоге, в котором говорится, чтобы установить coreutils:
$ brew install coreutils
После установки coreutils
с помощью Homebrew, пакету удалось успешно завершить работу с компасом и зависимостями.
Конец.
когда
gem install overcommit
также эта ошибка была помещена в терминал.
Failed to build gem native extension
сделайте то же самое
xcode-select --install
и он также исправит эту проблему.
Для Mac OS:
Моя ошибка заключалась в том, что я забыл выбрать опцию в XCode - Preferences - Locations - Инструменты командной строки после установки нового XCode (у меня было 2 версии, а затем я удалил один). Может быть, это поможет кому-то.
Если вы используете Ubuntu, попробуйте установить build-essential
apt install build-essential
У меня были проблемы с установкой драгоценных камней при новой установке ubuntu, и это решение сработало для меня.
Попробуйте это, затем попробуйте установить компас снова
sudo apt install ruby-full
Для macOS 10.14 Mojave, убедитесь, что вы уже установили инструменты командной строки через xcode-select --install
и выполните следующую команду для установки заголовков std.
sudo open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Теперь попробуйте снова.
Мне нужно было установить самые последние инструменты командной строки (в течение последних 30 дней) из магазина Apple App.
У меня была такая же проблема с Linux Mint, но я смог ее исправить, удалив ruby и снова установив его.
Удалить рубин:
sudo apt-get remove ruby
Сообщалось о некоторых пакетах ruby, таких как:
Package 'ruby' is not installed, so not removed
The following packages were automatically installed and are no longer required:
libruby2.2 ruby-chunky-png ruby-sass rubygems-integration
Use 'apt-get autoremove' to remove them.
Удалить оставшиеся пакеты *
apt-get autoremove
Установить снова ruby
sudo apt-get install ruby2.2
Установить компас
sudo gem install compass
Последняя команда выполнена с успехом.