Как сделать --no-ri --no-rdoc значением по умолчанию для установки gem?

1042

Я не использую вывод RI или RDoc из гемов, которые я устанавливаю на своей машине или на серверах, с которыми я работаю (я использую другие средства документации).

Каждый гем, который я устанавливаю, устанавливает документацию RI и RDoc по умолчанию, потому что я забыл установить --no-ri --no-rdoc.

Есть ли способ сделать эти два флага по умолчанию?

Рикардо Акрас
источник
8
Это не очень хорошая идея. Недавно мне нужно было написать код на дороге, и когда я запустил, gem serverя вспомнил, что у меня есть это в моем $HOME/.gemrcи действительно убил меня ... Google не всегда там.
atmosx
7
Зависит от контекста. Это хорошая идея, если вы можете привязать или вы делаете это на сервере, который не нуждается в документации Gem.
сэр-шишка
3
с pry можно использовать show-sourceкак альтернативу сгенерированным документам. Он покажет встроенные комментарии, которые, как правило, имеют тот же контент, что и ri / rdoc.
Макс Плинер

Ответы:

1221

Вы просто добавляете следующую строку в ваш локальный ~/.gemrcфайл (он находится в вашей домашней папке):

gem: --no-document

или вы можете добавить эту строку в глобальный gemrcфайл конфигурации.

Вот как это найти (в Linux):

strace gem source 2>&1 | grep gemrc
Jirapong
источник
2
В любом случае, чтобы сделать это системной настройкой по умолчанию без редактирования / etc / skel и домашнего каталога каждого пользователя?
Хакерон
41
вот, пожалуйста, / etc / gemrc
Jirapong
3
/ etc / gemrc не работал для меня, но .gemrc работал. Интересно, это специфично для rvm, что он не читает системный gemrc?
WJL
5
Ответ @ gdelfino является наименее навязчивым
Райан
4
устарел - смотрите мой ответ
Джеймс Лим
492

Из документации RVM :

Просто добавьте эту строку в ваш ~/.gemrcили /etc/gemrc:

gem: --no-document

Примечание: оригинальный ответ был:

install: --no-rdoc --no-ri 
update: --no-rdoc --no-ri 

Это больше не действует; с тех пор документы RVM были обновлены, поэтому текущий ответ на включение только gemдирективы является правильным.

gdelfino
источник
12
Начиная с RubyGems версии 2.0.0preview2 , вы можете использовать --no-documentили --document=rdocпросто для rdoc.
Ионо
3
Я не согласен с правкой @ mpapis от 20 июня 2013 года. Он полностью изменил этот ответ, и многие проголосовали за него, потому что они думали, что это лучше, чем принятый ответ. Тот, кто опубликовал этот ответ, явно написал, что не хочет добавлять эти две опции в каждую команду gem, потому что она нарушает некоторые команды. Прежде чем @mpapis полностью изменил ответ, код ответа был: install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri @mpapis, почему вы изменили документацию по RVM, а также изменили этот ответ?
Дэвид Грейсон
1
потому что это правда, нет никакой причины держать две отдельные строки, отслеживать совместимость нескольких проектов сложно - и документы RVM иногда обновляются, когда мы обнаруживаем, что что-то отключено - как в этом случае, это не правда, что rubygems вести себя неправильно, все нормально использовать gem:вместо двух отдельных записей.
mpapis
3
Используйте ruby -e "require 'etc';puts Etc.sysconfdir"для определения пути к вашему gemrcфайлу конфигурации.
Майкл Мимс
2
Это не рекомендуется, см. Guides.rubygems.org/command-reference/#gem-install
raskhadafi
185

Обратите внимание, что --no-riи --no-rdocустарели в соответствии с новыми руководствами . Рекомендуемый способ - использовать --no-documentв ~/.gemrcили /etc/gemrc.

install: --no-document
update: --no-document

или

gem: --no-document
Джеймс Лим
источник
92

В Linux (и, вероятно, Mac):

echo 'gem: --no-document' >> ~/.gemrc

Этот однострочник был здесь в комментариях, но как-то исчез.

Слава В
источник
11
Вы должны использовать >>в случае, если у пользователя уже есть ~/.gemrc.
Никгрим
Есть ли разница между этим echo 'gem: --no-doc --no-ri' >> ~/.gemrcи тем, что вы написали, или оба имеют одинаковый эффект?
ltdev
2
@Lykos --no-doc --no-riустарела (см. Guides.rubygems.org/command-reference/#gem_install для вариантов)
Слава V
44

# /home/ndomuser automotive/.gemrc

---
:update_sources: true
:sources:
- http://gems.rubyforge.org/
- http://gems.github.com
:benchmark: false
:bulk_threshold: 1000
:backtrace: false
:verbose: true
gem: --no-ri --no-rdoc

http://webonrails.com/2008/12/03/skiping-installation-of-ri-and-rdoc-documentation-while-installing-gems/

Дэвид
источник
Спасибо за этот пример, идеально подходящий, чтобы помочь мне удалить встроенный Ruby, который я скопировал и вставил в какой-то момент, а затем привел к психологическим ошибкам при установке RubyGems 1.8.10 под Ruby 1.9.2.
Стивенхаддокс
17
Пожалуйста, не публикуйте ответы "первый результат в Google". Первый результат в Google теперь показывает ваш ответ, доказывая, почему вы не должны этого делать. Спасибо, конечно, за ваш ответ.
WJL
26
На самом деле «первый результат в Google» показывает: «« первый результат в Google »показывает:« «первый результат в Google» показывает: «» ... ОШИБКА: переполнение стека.
Феликс Сапарелли
Я должен добавить мою благодарность за комментарий Стива (выше). Я выдернул свои волосы из-за того, почему я не смог установить последнюю версию RubyGems. Оказывается, у меня также был неправильно сформированный файл .gemrc. Я продолжал получать эту ошибку: ../.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in `parse ': не удалось проанализировать YAML в строке 2 столбца 10 ( Psych :: SyntaxError)
wchrisjohnson
33

В Windows XP путь к файлу .gemrc

c:\Documents and Settings\All Users\Application Data\gemrc 

и этот файл не создается по умолчанию, вы должны создать его самостоятельно.

Вячеслав Тысянчук
источник
20
Под Windows 7 это C: \ ProgramData \ gemrc
Вячеслав Тысянчук
расположение win7 работает для windows 200. Также убедитесь, что у вас есть «Скрыть расширения для известных типов файлов», он не поднимет gemrc.txt .... facepalm
jtzero
16

Онлайнер для пользователей Windows 7:

(echo install: --no-document && echo update: --no-document) >> c:\ProgramData\gemrc

Гейб
источник
6

Как уже упоминалось выше, поместите gem: --no-documentв свой файл драгоценного камня. Тем не менее, общесистемный gemrc не всегда обязательно входит в /etc/gemrc. Если вы используете RVM или у вас установлен Ruby /usr/local/bin, он должен находиться в другом месте. Вы можете найти это место, irbнабрав ...

require 'rubygems'
Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE

Смотрите оригинальный пост по этому вопросу здесь .

Адам
источник
1
Oneliner:ruby -rrubygems -e'puts Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE'
Эндрю Бернс
5

Шаг за шагом:

Для создания / редактирования файла .gemrc из терминала:

vi  ~/.gemrc

Вы откроете редактор под названием vi. вставить в:

gem: --no-ri --no-rdoc

нажмите кнопку «Esc».

печатать:

:exit

Вы можете проверить, все ли правильно с этой командой:

sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit ~/.gemrc
Andreas
источник
2
Чтобы уточнить, что последняя команда специфична для OS X. Он открывает ~/.gemrcфайл в текстовом редакторе.
Мартейн Химельс
1
~ является представлением для домашнего каталога. (следующие элементы в заглавных буквах являются переменными среды) Порядок проверки каталогов для .gemrc: 1. Используйте HOME, если он определен. 2. Используйте USERPROFILE, если он определен. 3. Используйте HOMEDRIVE и HOMEPATH вместе, если они определены. 4. Используйте путь, который вы получите, если Ruby развернет «~». 5. Используйте «C: /», если вы находитесь на компьютере с Windows. То есть: docs.rubygems.org/read/chapter/12
Гэри С. Уивер
Вам не нужно sudoредактировать вашего собственного пользователя ~/.gemrc.
jbbuckley
5

В Windows7 файл .gemrc отсутствует, вы можете позволить Ruby создать такой файл (это не так просто сделать в проводнике).

gem sources --add http://rubygems.org

Вам придется подтвердить (это небезопасно). Теперь файл создан в вашей папке userprofile (c: \ users \)

Вы можете отредактировать текстовый файл, чтобы удалить добавленный вами источник, или вы можете удалить его с помощью

gem sources --remove http://rubygems.org
Питер
источник
3

Для пользователей Windows Ruby не устанавливает файл .gemrc. Поэтому вам нужно создать файл .gemrc в вашем домашнем каталоге ( echo %USERPROFILE%) и поместить в него следующую строку:

gem: --no-document

Как уже упоминалось в предыдущих ответах, не используйте --no-ri и --no-rdoc, поскольку оно устарело. Смотри сам

gem help install
Раджкаран Мишра
источник