Так рубиновые 1.9 действительно хорошо в этом, это автоматически потребует rubygems, и следовательно когда Вы будете звонить require 'somegem'
без первого требования rubygems это будет работать, и это является обычно потрясающим.
Но у меня есть тонна сценариев оболочки с помощью рубина, и они обычно не полагаются на rubygems. Инструменты Shell должны работать немедленно, и загружающийся rubygems ни для чего основное перетаскивание, главным образом потому что оно включает набор дисковых операций с рассеянными маленькими файлами.
Я хочу смочь сказать рубин, при выполнении этих сценариев оболочки, пропустить загружающиеся драгоценные камни. Идеально, что-то как #!ruby --no-rubygems
в строке хижины.
Есть что-то такое? Или возможно опция компиляции, которую это скажет рубину rubygems, должна требоваться вручную?
Да, вы можете использовать параметр - disable-gems
.
Обратите внимание: работает ли передача параметров в строке shebang или нет, зависит от вашей операционной системы. Некоторые операционные системы не поддерживают передачу параметров вообще , некоторые поддерживают передачу только одного параметра или аргумента.
Итак, если у вас есть, например,
#!/usr/bin/env ruby
, то маловероятно, что вы сможете привязать эту опцию к концу. Если OTOH вы измените это значение на
#!/usr/local/bin/ruby --disable-gems
, значит, вы жестко запрограммировали расположение двоичного файла Ruby в свой скрипт.
И, конечно же, есть операционные системы, которые вообще не интерпретируют строки shebang . (В конце концов, они никогда не были указаны в каком-либо стандарте и даже не документированы должным образом.)
Альтернативой было бы установить переменную среды RUBYOPT
в среде оболочки и просто переключиться на другую окружение с RUBYOPT
не установленным (или установлено на -w
, мой личный фаворит) для разработки Ruby.