2

Это ошибка новичка, я уверен, что я новичок в терминале и т.д. Я пытаюсь заставить компас работать на моем Mac, я уже установил sass и получил его, но когда я пытаюсь установить компас, хотя он работает, я не могу запустить его...

computer-name:~ me$ sudo gem install compass
Password:
Successfully installed compass-0.12.2
Parsing documentation for compass-0.12.2
1 gem installed
computer-name:~ me$ compass -v
-bash: compass: command not found
computer-name:~ me$ sass -v
Sass 3.2.12 (Media Mark)

Ввод:

gem list

Также возвращает:

compass (0.12.2)

Некоторые вещи, о которых я думал, были, может быть, у меня возник конфликт, я изначально пытался установить без sudo и это сработало, я попытался снова с sudo но все равно не сработало.

Мой $ PATH имеет:

computer-name:~ me$ echo $PATH
/usr/local/bin:/usr/local/sbin:~/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/me/.rvm/bin

Последний файл .rvm/bin выглядит как ruby, но не содержит компаса (хотя sass там тоже нет ...)

Я нашел компас в usr/local/Cellar/ruby/2.0.0-p247/bin/ но, глядя на учебники, кажется, что он должен просто запуститься, я предполагаю, что сделал что-то, что нарушает нормальную функциональность, и я хотел бы знать, как проверить это или исправить.

Примечание: sass находится в той же папке, а sass -v показывает версию, поэтому я предполагаю, что она находится в пути как-то (может быть, ruby найдет ее ...)

4 ответа4

3

У меня была похожая проблема, и я обнаружил, что gem list compass -d позволил мне найти компас компаса.

3

Вот очень важная вещь при запуске двух или более версий Ruby на OS X: если вы используете sudo gem , вы будете использовать ваш OS X по умолчанию gem из /usr/bin/gem . Это не то, что вы хотите.

Если вы используете только gem (без sudo), вам обычно следует использовать только что установленный gem (например, из установщика Ruby OS X или из RVM, rbenv, независимо от того, какой метод вы использовали для запуска другой версии Ruby). Подтвердите это с помощью команды which -a gem . Он должен вернуть что-то вроде:

/Users/your-username/.rvm/bin/gem
/usr/bin/gem

Если ваш новый gem из RVM не является стандартным (т. Е. Первым в этом списке), ваша установка RVM не работает. В противном случае любой вызов gem , даже без sudo , все равно будет использовать /usr/bin/gem и впоследствии завершится неудачей из-за недостаточных разрешений.

Поэтому убедитесь, что все вызовы ruby и gem являются версиями RVM, а не системными. И никогда не используйте sudo снова для установки чего-либо, потому что это попадет в вашу стандартную OS X Ruby.

В частности, для RVM убедитесь, что он получен после всех ваших манипуляций с PATH в файле конфигурации оболочки (обычно .profile или .bash_profile в OS X, но не уверен, какой из них RVM изменяет).

2

Я испытал то же самое. Вот что я сделал, чтобы заставить работать команду компаса: я добавил символическую ссылку (у меня есть .12.6, изменил ее на вашу .12.2):

ln -s /usr/local/lib/ruby/gems/2.0.0/gems/compass-0.12.2/bin/compass /usr/local/bin/compass
1

Я не чувствую, что это действительно ответ на мой вопрос, но на данный момент это работает ... Я нашел компас в моей системе по адресу /usr/local/Cellar/ruby/2.0.0-p247/lib/ruby/gems/2.0.0/gems/compass-0.12.2/bin/ поэтому я добавил его в ~/.bash_profile в начале export PATH="<here>:/usr/local/bin:other paths" так что теперь я могу запустить функцию, но я все еще не знаю, как диагностировать систему и найти причину проблемы или исправить это так, как будто взломать.

Я получил некоторую полезную информацию здесь (stackoverflow), здесь (apple.stackoverflow) и справочный сайт ruby rvm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .