「Ruby Gem パッケージガイドライン」の版間の差分
(→バージョン付きパッケージ: 翻訳) |
(→パッケージの命名規則: 同期) |
||
7行目: | 7行目: | ||
== パッケージの命名規則 == |
== パッケージの命名規則 == |
||
− | ライブラリの場合、{{Ic|ruby-$gemname}} を使って下さい。アプリケーションの場合、プログラムの名前を使って下さい。どちらの場合でも名前は小文字である必要があります。 |
||
+ | ライブラリの場合は、{{ic|ruby-$_name}} を使用します ({{ic|$_name}} は上流のプロジェクト名です)。アプリケーションの場合は、プロジェクト名 ({{ic|ruby-}} 接頭辞なし) を使用し、オプションで {{ic|ruby-$_name}} を {{ic|provides}} に追加します。 |
||
− | たとえ {{Ic|$gemname}} に {{Ic|ruby}} が含まれている場合でも {{Ic|ruby-}} を最初に付けるようにしてください。後で gem の名前が短くなったときに困らないようにするためです。また、ツールによって簡単に名前を解析できるようにするためでもあります (PKGBUILD ジェネレータやバージョン・依存関係チェッカーなど)。 |
||
====バージョン付きパッケージ==== |
====バージョン付きパッケージ==== |
||
+ | |||
バージョン管理されたパッケージを追加する必要がある場合は、{{ic|ruby-$gemname-$version}} 例えば {{ic|ruby-builder-3.2.1}} を使用してください。したがって、rubygem の依存性は {{ic|builder=3.2.1}} は {{ic|ruby-builder-3.2.1}} Arch パッケージになります。 |
バージョン管理されたパッケージを追加する必要がある場合は、{{ic|ruby-$gemname-$version}} 例えば {{ic|ruby-builder-3.2.1}} を使用してください。したがって、rubygem の依存性は {{ic|builder=3.2.1}} は {{ic|ruby-builder-3.2.1}} Arch パッケージになります。 |
||
2023年6月28日 (水) 22:33時点における版
32ビット – CLR – クロス – Eclipse – Electron – Free Pascal – GNOME – Go – Haskell – Java – KDE – カーネル – Lisp – MinGW – Node.js – ノンフリー – OCaml – Perl – PHP – Python – R – Ruby – Rust – VCS – ウェブ – Wine
Ruby で書かれたソフトウェアの PKGBUILD の書き方。
目次
パッケージの命名規則
ライブラリの場合は、ruby-$_name
を使用します ($_name
は上流のプロジェクト名です)。アプリケーションの場合は、プロジェクト名 (ruby-
接頭辞なし) を使用し、オプションで ruby-$_name
を provides
に追加します。
バージョン付きパッケージ
バージョン管理されたパッケージを追加する必要がある場合は、ruby-$gemname-$version
例えば ruby-builder-3.2.1
を使用してください。したがって、rubygem の依存性は builder=3.2.1
は ruby-builder-3.2.1
Arch パッケージになります。
依存関係を解決する必要がある場合、パッケージは最後の部分を含まないバージョンを使用しなければなりません。もしくは「大きい」例えば、rubygem dependency builder~>3.2.1 は ruby-builder-3.2.2 になります。このルールの例外は、依存関係が gem の最新バージョンと一致するか「大きい」場合です-この場合、新しいバージョンのパッケージを導入するのを避け、代わりに ruby-$gemname (HEADバージョン) を使用してください。
バージョン付きパッケージのもう1つの問題は、他のバージョンと競合する可能性があることです。 パッケージは同じファイルを /usr/bin
にインストールするためです。 この問題の1つの解決策は、バージョン管理されたパッケージがそのようなファイルをインストールしないようにすることです。これを実行できるのは HEAD バージョンのパッケージのみです。
サンプル
ruby-json_pureAUR や ruby-hpricot などを見てください。
ノート
問題が発生した場合に追加情報を受け取るには、--verbose
を gem の引数に追加します。
Quarry
手動で gemfile を管理するかわりに、ビルド済みの Arch バイナリパッケージの非公式リポジトリである quarry を使うことができます。詳しくは Quarry を参照。
配慮事項
Package contains reference to $pkgdir
たまにパッケージのビルド時に WARNING: Package contains reference to $pkgdir
という警告が表示されることがあります。パッケージ化したファイルの中にパッケージをビルドしたディレクトリの絶対パスが含まれています。問題のファイルを探すために cd pkg && grep -R "$(pwd)" .
を実行してください。ほとんどの場合、.../ext/Makefile
内にハードコードされたパスが原因です。
gem install
が完了したら Makefile
は不要です。package()
関数に rm -rf "$pkgdir/$_gemdir/gems/$_gemname-$pkgver/ext"
を追加することで ext
のファイルを完全に削除できます。
自動化
pacgemAUR ツールを使うことで gem のインストールは完全に自動化できます。一時的な PKGBUILD が作成され、makepkg と namcap が実行されます。作成されたパッケージは pacman でインストールされます。
Ruby gem の PKGBUILD を自動的に作成するツールとして gem2archAUR も存在します。生成後は PKGBUILD を手動で確認してください。