Techioz Blog

フラグを設定するための RVM 環境変数はありますか?

概要

の代わりに:

rvm install 2.6.6 -C --with-jemalloc

何らかの方法で環境変数を設定して、configure フラグを渡さずに Ruby をインストールできるようにすることはできますか?あれは:

rvm install 2.6.6

RVM コードベース全体にこの var があるようですので、私の環境でそれを設定してみました。

$ echo $rvm_configure_flags
--with-jemalloc

ただし、それは使用されていないか、何らかの形で破壊されているようです。 RVM コードベース全体をエコーしましたが、どこで破壊されているかを見つけることができないようです。

かなり古い (?) .rvmrc ファイルの例は、これが可能であることを示唆しているようです。

https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://github.com/rvm/rvm/blob/master/examples/rvmrc#L90-L92

解決策

コマンド RVM help install を実行すると、次のことが表示されます。

#### .rvmrc equivalents

- `--with-arch`                       `rvm_architectures`
- `-C`                                `rvm_configure_flags`
        ... or per-ruby:              `{jruby|ree|rbx|mruby|macruby|truffleruby}_configure_flags`
- `-E`                                `rvm_configure_env`
- `-M`                                `rvm_make_flags`
- [none]                              `rvm_curl_flags`; default: --max-redirs 10 --max-time 1800

これは、-C が rvm_configure_flags と同等であることを意味します。ドキュメントには次の追加の例があります。

A variable with multiple flags should be set using parentheses and space 
separators. E.g. .rvmrc for `brew`-based `readline`, `llvm`, and 
`openssl` libraries:

# warning: don’t use  linebreaks or it will break. rvm_configure_env=( LDFLAGS=“-L(brew−−prefixreadline)/lib − L(brew –prefix llvm)/lib -L$(brew --prefix openssl)/lib" CPPFLAGS="-I$(brew –prefix readline)/include -I(brew−−prefixllvm)/include − I(brew –prefix openssl)/include” CXX=(brew−−prefixllvm)/bin/clang +  + CC=(brew –prefix llvm)/bin/clang ) rvm_archflags=“-arch x86_64”

また、~/.rvmrc で rvm_configure_flags を設定すると、それらのオプションを ./configure ステップに渡すという意図した効果があることも確認しました。