Як зробити --no-ri --no-rdoc за замовчуванням для встановлення дорогоцінного каміння?


1041

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

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

Чи є спосіб зробити ці два прапори за замовчуванням?


8
Це не дуже гарна ідея. Нещодавно мені потрібно було написати код у дорозі, і коли я запустив, gem serverя згадав, що це було у мене, $HOME/.gemrcі мене справді вбили ... Google не завжди є.
atmosx

7
Залежить від контексту. Чудова ідея, якщо ви можете прив’язати або зробите це на сервері, який не потребує документації про дорогоцінні камені.
сер-піноконе

3
з pry можна використовувати show-sourceяк альтернативу створеним документам. Він покаже вбудовані коментарі, які, як правило, мають той самий зміст, що і ri / rdoc.
макс-чиститель

Відповіді:


1221

Ви просто додаєте наступний рядок у свій локальний ~/.gemrcфайл (він знаходиться у вашій домашній папці):

gem: --no-document

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

Ось як його знайти (в Linux):

strace gem source 2>&1 | grep gemrc

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директиви є правильною.


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 інколи оновлюються, коли ми виявляємо, що щось вимкнено - як у цьому випадку, неправда, що рубігеми б поводитися неправильно, все прекрасно використовувати 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

91

На Linux (і, можливо, на Mac):

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

Цей однокласник раніше був у коментарях, але якось зник.


11
Ви повинні використовувати, >>якщо у користувача вже є ~/.gemrc.
nickgrim

Чи є різниця між цим echo 'gem: --no-doc --no-ri' >> ~/.gemrcі тим, що ви написали, або обом має однаковий ефект?
ltdev

2
@Lykos застаряв --no-doc --no-ri(див. Guides.rubygems.org/command-reference/#gem_install для варіантів)
Slava V

44

# /home/{user}/.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.
stevenhaddox

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
Viachaslau Tysianchuk,

розташування 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

2
Для уточнення, ця остання команда є специфічною для ОС X. Він відкриває ~/.gemrcфайл у текстовому редакторі.
Martijn Heemels

1
~ - представлення домашнього каталогу. (наступні матеріали у кришках - це змінні середовища) Порядок перевірки каталогів для .gemrc: 1. Використовуйте HOME, якщо він визначений. 2. Використовуйте USERPROFILE, якщо він визначений. 3. Використовуйте HOMEDRIVE та HOMEPATH разом, якщо вони визначені. 4. Скористайтеся контуром, який ви отримали, розширивши Ruby “~”. 5. Використовуйте "C: /", якщо ви працюєте на машині Windows. Це на: docs.rubygems.org/read/chapter/12
Gary S. Weaver

Вам не потрібно sudoредагувати власного користувача ~/.gemrc.
jbbuckley

5

У Windows7 файл .gemrc відсутній, ви можете дозволити Ruby створити подібний (це не так просто зробити в Explorer).

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.