Сделать --no-document по умолчанию для установки gem
Узнайте, как настроить RubyGems для пропуска генерации документации по умолчанию. Ускорьте установку gem с помощью --no-document в ~/.gemrc. Полное руководство с советами по устранению неполадок.
Как сделать --no-ri --no-rdoc по умолчанию для команды gem install?
Я не использую документацию RI или RDoc из гемов, которые устанавливаю на своих компьютерах или серверах, так как полагаюсь на другие источники документации. Каждый раз при установке гема он генерирует документацию RI и RDoc по умолчанию, потому что я забываю включить флаги --no-ri --no-rdoc. Есть ли способ настроить RubyGems так, чтобы эти флаги были поведением по умолчанию для всех установок гемов?
Чтобы сделать --no-ri --no-rdoc по умолчанию для gem install, вы можете настроить RubyGems, добавив флаг --no-document (который заменяет более старые флаги --no-ri --no-rdoc) в ваш файл конфигурации ~/.gemrc. Это будет автоматически пропускать генерацию документации для всех установок gem, не требуя от вас каждый раз вручную указывать эти флаги.
Содержание
- Проблема генерации документации
- Настройка RubyGems с помощью ~/.gemrc
- Использование современного флага --no-document
- Альтернативные подходы к настройке
- Проверка вашей конфигурации
- Совместимость с Bundler
- Устранение распространенных проблем
Проблема генерации документации
При установке Ruby gems с помощью gem install, RubyGems автоматически генерирует документацию RI и RDoc по умолчанию. Этот процесс генерации документации может значительно замедлять установку gem, особенно для больших gem или при одновременной установке нескольких gem. Для разработчиков, которые в основном используют онлайн-документацию, исходный код или другие справочные материалы, эта автоматическая генерация создает ненужные накладные расходы.
Старые флаги --no-ri и --no-rdoc использовались для отключения генерации документации RI (Ruby Interactive) и RDoc соответственно. Начиная с версии RubyGems 2.0.0, они были заменены более унифицированным флагом --no-document, который отключает всю генерацию документации.
Настройка RubyGems с помощью ~/.gemrc
Наиболее надежный способ установить флаги по умолчанию для установок gem — это создание или редактирование файла ~/.gemrc, который является файлом конфигурации RubyGems. Этот файл использует формат YAML и позволяет указывать параметры по умолчанию для всех команд gem.
Создание или редактирование ~/.gemrc
Сначала проверьте, существует ли у вас уже файл ~/.gemrc:
ls -la ~/.gemrc
Если файл не существует, создайте его с помощью вашего предпочитаемого текстового редактора:
nano ~/.gemrc
Пример базовой конфигурации
Вот минимальная конфигурация, которая отключает генерацию документации:
---
gem: --no-document
Пример комплексной конфигурации
Для более полной настройки вы можете включить другие полезные параметры:
---
:update_sources: true
:sources:
- https://rubygems.org
:backtrace: false
:bulk_threshold: 1000
:verbose: false
gem: --no-document
Эта конфигурация:
- Автоматически обновляет источники gem
- Использует официальный репозиторий RubyGems
- Отключает backtrace для более чистого вывода
- Устанавливает порог для пакетной обработки для лучшей производительности
- Делает
--no-documentпо умолчанию для всех операций gem
Примечание: Строка
gem: --no-document— это ключ, который указывает RubyGems пропускать генерацию документации для всех установок и обновлений.
Использование современного флага --no-document
Начиная с RubyGems 2.0.0, флаг --no-document заменил более старую комбинацию --no-ri --no-rdoc. Этот унифицированный подход более удобен в поддержке и легче запоминается.
Эквиваленты флагов
--no-ri --no-rdoc(устаревший) =--no-document(современный)--document=rdoc(только RDoc) =--document(вся документация)
Конфигурация для отдельных команд
Если вы хотите применять эти флаги только к определенным командам (таким как install и update), вы можете настроить их отдельно:
---
install: --no-document
update: --no-document
Этот подход дает вам более детальный контроль над тем, когда генерация документации отключена.
Альтернативные подходы к настройке
Системная настройка с помощью /etc/gemrc
Для системной настройки, влияющей на всех пользователей, вы можете создать или отредактировать /etc/gemrc. Синтаксис такой же, как для пользовательского файла ~/.gemrc:
---
gem: --no-document
Однако учтите, что некоторые системы (особенно те, которые используют RVM) могут переопределять системные настройки.
Использование переменных окружения
Хотя для этого конкретного случая это менее распространено, вы также можете использовать переменные окружения:
export GEMOPTS="--no-document"
Но этот подход обычно не рекомендуется для настройки, так как он менее постоянный и может быть легко упущен из виду.
Переопределение из командной строки
Если вам нужно временно переопределить вашу конфигурацию по умолчанию, вы можете использовать флаг --norc:
gem install some_gem --document
Это проигнорирует ваши настройки ~/.gemrc и сгенерирует документацию для этой конкретной установки.
Проверка вашей конфигурации
После настройки вашего файла ~/.gemrc вы должны проверить, что он работает правильно:
Тестовая установка
Установите тестовый gem и наблюдайте за выводом:
gem install bundler
Если ваша конфигурация работает правильно, вы не должны видеть в выводе никаких сообщений о генерации документации.
Проверка файла конфигурации
Вы также можете проверить, что считывает RubyGems из вашей конфигурации:
gem env
Ищите путь config_file, чтобы подтвердить, что он считывается из вашего файла ~/.gemrc.
Совместимость с Bundler
Если вы используете Bundler для управления зависимостями, вы можете задаться вопросом, как эта настройка влияет на операции bundle install. По умолчанию Bundler учитывает вашу конфигурацию RubyGems, поэтому флаг --no-document также должен применяться к gem, установленным через Bundler.
Однако, если вам нужно явно контролировать генерацию документации для операций Bundler, вы можете использовать:
bundle config set --local no_document true
Это устанавливает специфическую для Bundler конфигурацию, которая переопределяет глобальные настройки RubyGems для операций bundle.
Устранение распространенных проблем
Конфигурация не работает
Если ваша конфигурация, кажется, не действует:
- Проверьте расположение файла: Убедитесь, что вы редактируете
~/.gemrc(пользовательский), а не/etc/gemrc(системный) - Проверьте синтаксис: YAML чувствителен к отступам. Убедитесь, что ваш
gem: --no-documentправильно отформатирован - Проверьте наличие переопределения: Некоторые инструменты, такие как RVM или rbenv, могут иметь собственную конфигурацию, которая переопределяет вашу
Совместимость с версиями RubyGems
Флаг --no-document доступен в RubyGems 2.0.0 и более поздних версиях. Если вы используете более старую версию, вам нужно будет использовать устаревшие флаги:
gem: --no-ri --no-rdoc
Проблемы с правами доступа
Если вы не можете создать или отредактировать ~/.gemrc, проверьте права доступа к файлу:
chmod 644 ~/.gemrc
Конфликты конфигурации
Если у вас несколько файлов конфигурации (системный и пользовательский), RubyGems загрузит их в порядке приоритета. Пользовательский (~/.gemrc) обычно переопределяет системные (/etc/gemrc) настройки.
Источники
- Как сделать --no-ri --no-rdoc по умолчанию для gem install? - Stack Overflow
- Как установить флаги --no-ri и --no-rdoc по умолчанию для установки Gem – devgem.io
- Как глобально отключить rdoc и ri во время установки gem - Honeybadger Developer Blog
- Настройка RubyGems для неустановки документации по умолчанию - makandracards
- –no-ri --no-rdoc по умолчанию при установке Ruby Gem (пример) - coderwall
- Как глобально отключить ri и rdoc во время установки gem - Anne Richardson
Заключение
Сделать --no-ri --no-rdoc по умолчанию для gem install просто с помощью конфигурации RubyGems. Добавив gem: --no-document в ваш файл ~/.gemrc, вы можете устранить ненужную генерацию документации и ускорить установку ваших gem. Современный флаг --no-document обеспечивает чистую замену устаревшим флагам, сохраняя ту же функциональность.
Для оптимальной производительности:
- Используйте
~/.gemrcдля пользовательской конфигурации - Предпочитайте
--no-documentустаревшим флагам - Комбинируйте с другими настройками, ориентированными на производительность, такими как
:backtrace: false - Протестируйте вашу конфигурацию на простой установке gem
Это изменение конфигурации сэкономит вам время во время разработки и уменьшит использование диска за счет ненужных файлов документации, при этом все еще позволяя генерировать документацию при необходимости с помощью флага --document.