CLR パッケージガイドライン
ナビゲーションに移動
検索に移動
パッケージ作成ガイドライン
32ビット – CLR – クロス – Eclipse – Electron – Free Pascal – GNOME – Go – Haskell – Java – KDE – カーネル – Lisp – MinGW – Node.js – ノンフリー – OCaml – Perl – PHP – Python – R – Ruby – Rust – VCS – ウェブ – Wine
このドキュメントでは Arch Linux における共通言語ランタイム (.NET) プロジェクトのパッケージスタンダードを定義しています。複数の環境で利用できる実用的な CLR ランダムは Mono しか存在しないため、このスタンダードでは Mono を使用します。CLR プログラムの多くは Microsoft .NET で開発されているため、P/Invoke コールや Microsoft のデジタル著作権管理 (DRM) API など .NET でしか使えない機能が利用されている場合 Mono では動作しません。しかしながら、Wine と組み合わせることで動作させることができる可能性があります。詳しくは Wine パッケージガイドラインを見てください。
パッケージング
dependsには mono を追加してください。archはanyに設定してください。Mono は64ビットアセンブリのコンパイルをサポートしていません。!stripをoptionsに追加してください。- パッケージがライブラリ (DLL) の場合、Mono のグローバルアセンブリキャッシュ (GAC) にインストールすることを考慮してください。
- アセンブリがコンパイル済みでプログラムデバッグデータベースファイル (Foo.dll.pdb) が付属する場合、次のコマンドで変換してください:
pdb2mdb Foo.dll。 - パッケージに実行可能ファイル (EXE) が含まれる場合、
/usr/binに以下のようなシェルスクリプトをインストールしてください:
#!/bin/sh mono foo.exe $@
署名済みアセンブリ
パッケージを GAC にインストールする場合、署名済みのキーファイルが必要です。存在しない場合、次のコマンドで生成できます: sn -k 1024 Foo.snk。そして、次のコマンドでアセンブリを分解してください: monodis Foo.dll --output=Foo.il。その後、次のコマンドで再構築します: ilasm /dll /key:Foo.snk Foo.il。
サンプル PKGBUILD
xbuild
# Maintainer: yourname <yourmail>
pkgname=foo
pkgver=1.0
pkgrel=1
pkgdesc="Fantabulous library for .Net"
arch=('any')
url="http://www.foo.bar"
license=('GPL')
depends=('mono')
options=('!strip')
source=("http://www.foo.bar/foobar.tar.gz")
md5sums=('4736ac4f34fd9a41fa0197eac23bbc24')
build() {
cd "${srcdir}/foobar"
xbuild Foo.sln
# if the package is unsigned, do the following:
cd "/bin/x86/Debug"
monodis Foo.dll --output=Foo.il
sn -k 1024 Foo.snk
ilasm /dll /key:Foo.snk Foo.il
}
package() {
cd "${srcdir}/foobar/bin/x86/Debug"
install -Dm644 Foo.dll "$pkgdir/usr/lib/foobar/Foo.dll"
install -Dm644 Foo.dll.mdb "$pkgdir/usr/lib/foobar/Foo.dll.mdb"
# Register assembly into Mono's GAC
gacutil -i Foo.dll -root "$pkgdir/usr/lib"
}