Существует ли способ назвать ruby1.9, не загружаясь rubygems?

Так рубиновые 1.9 действительно хорошо в этом, это автоматически потребует rubygems, и следовательно когда Вы будете звонить require 'somegem' без первого требования rubygems это будет работать, и это является обычно потрясающим.

Но у меня есть тонна сценариев оболочки с помощью рубина, и они обычно не полагаются на rubygems. Инструменты Shell должны работать немедленно, и загружающийся rubygems ни для чего основное перетаскивание, главным образом потому что оно включает набор дисковых операций с рассеянными маленькими файлами.

Я хочу смочь сказать рубин, при выполнении этих сценариев оболочки, пропустить загружающиеся драгоценные камни. Идеально, что-то как #!ruby --no-rubygems в строке хижины.

Есть что-то такое? Или возможно опция компиляции, которую это скажет рубину rubygems, должна требоваться вручную?

8
задан kch 15 July 2010 в 06:13
поделиться

1 ответ

Да, вы можете использовать параметр - disable-gems .

Обратите внимание: работает ли передача параметров в строке shebang или нет, зависит от вашей операционной системы. Некоторые операционные системы не поддерживают передачу параметров вообще , некоторые поддерживают передачу только одного параметра или аргумента.

Итак, если у вас есть, например,

#!/usr/bin/env ruby

, то маловероятно, что вы сможете привязать эту опцию к концу. Если OTOH вы измените это значение на

#!/usr/local/bin/ruby --disable-gems

, значит, вы жестко запрограммировали расположение двоичного файла Ruby в свой скрипт.

И, конечно же, есть операционные системы, которые вообще не интерпретируют строки shebang . (В конце концов, они никогда не были указаны в каком-либо стандарте и даже не документированы должным образом.)

Альтернативой было бы установить переменную среды RUBYOPT в среде оболочки и просто переключиться на другую окружение с RUBYOPT не установленным (или установлено на -w , мой личный фаворит) для разработки Ruby.

5
ответ дан 5 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: