5 | | == 配置 == |
| 5 | |
| 6 | == 本体のパッケージング == |
| 7 | |
| 8 | Ruby 本体は、原則としてその時点で選択した Matz CRuby の安定版を1種類のみ rpm パッケージで用意する |
| 9 | ものとします。(2012/10/26現在のVineSeedでは1.9.3.286) |
| 10 | それ以外のバージョンや別実装などはパッケージでは用意しません。必要に応じて、rbenvやrvm |
| 11 | などで個別に導入管理してもらうものとします。(rbenv,ruby-build,rbenv-gemsetはパッケージ |
| 12 | で用意しています) |
| 13 | |
| 14 | == ライブラリのパッケージング == |
| 15 | |
| 16 | gem から生成するライブラリ以外は vendorlib/vendorarch にいれ、ruby-* や *-ruby といった |
| 17 | パッケージ名となります。べつのツールやライブラリ等の言語バインディング系も同様です。 |
| 18 | |
| 19 | gem から生成するパッケージは rubygem-* というパッケージ名とします。これは後述の gem_dir |
| 20 | に入れることになります。ただし、何らかの重要な ruby ベースのソフトウエアをパッケージング |
| 21 | する際に必要である という場合を除いて、rubygem-*.rpm パッケージは作らず、ユーザが gemや |
| 22 | bundler等で管理するほうが望ましいと考えます。(rubygemsをrpmで網羅し管理することは現実的 |
| 23 | ではないため) |
| 24 | |
| 25 | == 各種マクロ (Vine7/ruby-1.9.3) == |
| 26 | |
| 27 | 原則としてRPMパッケージでいれる標準以外のrubyライブラリ(rubygems系以外)は、 |
| 28 | マクロ定義されている %ruby_vendorlibdir または %ruby_vendorarchdir に配置するものとします。 |
| 29 | (ruby_libdir/ruby_archdirは標準ライブラリ用) |
| 30 | |
| 31 | /usr/local/lib/site_ruby はパッケージ外で(gem以外で)インストールされるライブラリのための場所 |
| 32 | となります。RPMでは管理しません。 |
| 33 | |
| 34 | * /etc/rpm/macros.ruby に ruby package に関するマクロ |
| 35 | * /etc/rpm/macros.rubygems に rubygem package に関するマクロ |
| 36 | |
| 37 | === Ruby 標準ライブラリ=== |
| 38 | * {{{%ruby_libdir %{_datadir}/ruby/1.9.1}}} |
| 39 | * {{{%ruby_libarchdir %{_libdir}/ruby/1.9.1}}} |
| 40 | |
| 41 | === Ruby ベンダ提供ライブラリ(rpm管理パッケージ) === |
| 42 | * {{{%ruby_vendordir vendor_ruby}}} |
| 43 | * {{{%ruby_vendorlibdir %{_datadir}/ruby/%{ruby_vendordir}/1.9.1}}} |
| 44 | * {{{%ruby_vendorarchdir %{_libdir}/ruby/%{ruby_vendordir}/1.9.1}}} |
| 45 | |
| 46 | === Ruby サイトローカルライブラリ(rpm管理外) === |
| 47 | * {{{%ruby_sitedir site_ruby}}} |
| 48 | * {{{%ruby_sitelibdir %{_prefix}/local/share/ruby/%{ruby_sitedir}/1.9.1}}} |
| 49 | * {{{%ruby_sitearchdir %{_prefix}/local/%{_lib}/ruby/%{ruby_sitedir}/1.9.1}}} |
| 50 | |
| 51 | === Rubygems パッケージ用マクロ=== |
| 52 | * {{{%gem_dir /usr/share/gems/1.9.1}}} |
| 53 | * {{{%gem_instdir %{gem_dir}/gems/%{gem_name}-%{version}}}} |
| 54 | * {{{%gem_extdir %{_libdir}/gems/1.9.1/exts/%{gem_name}-%{version}}}} |
| 55 | * {{{%gem_libdir %{gem_instdir}/lib}}} |
| 56 | * {{{%gem_cache %{gem_dir}/cache/%{gem_name}-%{version}.gem}}} |
| 57 | * {{{%gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}.gemspec}}} |
| 58 | * {{{%gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}}}} |
| 59 | |
| 60 | |
| 61 | ~~~~ |
| 62 | |
| 63 | == 各種マクロ (Vine6/ruby-1.8.7) == |
| 64 | |
| 65 | 以下は、Vine 6 以前のポリシーです。 |