アットウィキロゴ
Linux Memo
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

Linux Memo

パッケージング規則

最終更新:

Bot(ページ名リンク)

- view
だれでも歓迎! 編集
パッケージの名称は $name-$version-$arch-$packagereleaseXY.$extension という構造で、 以下のように分解される。
  • $name: ソフトウェアの名称で英数字とハイフン"-"から構成されていなければならない。
  • $version: ソフトのバージョンで、例えば1.5.0.6のようになる。"-" 、"()"をセパレータは使えない。snvソースからコンパイルしたパッケージには、 "r12345"のようなバージョンをつける。ここで12345はsvnのコミットである。
  • $arch: 32-bitのパッケージはたいていの場合i486、64-bitパッケージはx86_64、スクリプトやartworkのような"リソースだ け"の場合はnoarchとする。
  • $packagerelease: 1から始めて、同一バージョンのパッケージにアップデートがある度に1づつ増加させた数字が記載される。
  • XY: パッケージを作ったのが誰かを明示するために、パッケージャのイニシャルを記載する。
  • $extension: たいていは"txz"であるが、特殊な場合は"tgz"を使うこともできる。

どのパッケージは、アプリケーションを利用可能にするために、ユーザがインストール後の手順を実行する必要とせずにインストールできなくてはならない。ただし、もちろんインストール後に必ずコンフィギュレーションを必要とするサーバ・パッケージには、このことは適用しない。

すべてのパッケージは、パッケージの内容やアプリケーションについて、簡明だが正確な記述を含む妥当なslack-descファイルを含んでいなければならない。slack-descファイルはパッケージャの名前やパッケージされたソフトウェアのバージョンを含んではいけない。(これらのことはビルドスクリプトに任せる)

ポスト・インストール・スクリプト doinst.sh / に対する相対パスだけを含んでいなければならない。すなわち、 /etc/profile は doinst.sh スクリプトでは etc/profile で示される。

どのパッケージも、そのパッケージが "packagename.txz"とすると、そのパッケージの md5 sum を内容とする"packagename.md5"というファイルが添付されなければならない。 つまり e16-1.0.1-i486-1gv.txz は e16-1.0.1-i486-1gv.md5 が同梱される。

"packagename.txz" というパッケージが外部依存があれば、txzファイルは依存がコンマで区切られたリストを含む "packagename.dep" というファイルが添付されなければならない。このファイルは depfinder を使って作ることができる。

x86アーキテクチャ用にコンパイルされるパッケージはすべて、そうしないだけの合理的条件が存在しないかぎりは、CFLAGS="-O2 -march=i486 -mtune=i686"とCXXFLAGS="-O2 -march=i486 -mtune=i686"の両方またはいずれか一方でコンパイルしなければならない。

x86_64アーキテクチャ用にコンパイルされるパッケージはすべて、そうしないだけの合理的条件が存在しないかぎりは、CFLAGS="-O2 -fPIC" とCXXFLAGS="-O2 -fPIC"の両方またはいずれか一方でコンパイルしなければならない。

パッケージは次のオプションをつけてコンパイルしなければならない。

 configure --prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX} --localstatedir=/var --sysconfdir=/etc --mandir=/usr/man

ここで $LIBDIRSUFFIX x86パッケージでは空、x86_64パッケージでは 64 をセットする。これは次のことを意味している。
  • パッケージは"/opt"および"/usr/local"にインストールすることは決して許されない。
  • "/usr"はインストール・パスのプリフィックスである。
  • ログ・ファイルは"/var"ディレクトリにインストールされなくてはならない。
  • コンフィギュレーション・ファイルは"/etc"にインストールされなくてはならない。
  • man pages は"/usr/man"に置かなくてはならない。

すべてのバイナリとシステム・ライブラリはデバッグ用シンボルをストリップしていなくてならない。

man pages および Info ファイルは gzip されていなくてはならない。

"/usr/doc"ディレクトリにインストールされるファイルは、グループあるいは全員が書込可能というパーミッションであってはならない。



All X application packages which are supposed to appear in the application menu shall install appropriate "packagename.desktop" files in the "/usr/share/applications" directory.

All icons are to be installed in the /usr/share/icons/hicolor/scalable/apps/ or /usr/share/icons/hicolor/SIZExSIZE/apps/ directories depending on the icon type svg or png, where SIZE is the icon size (48x48, 32x32 etc). /usr/share/pixmaps use for menu icons is discouraged but allowed if the app doesn't function properly otherwise. Internal application images should be placed in /usr/share/app-name/some-directory or /usr/share/pixmaps/app-name (most apps do it this way, btw)

Window Managers and Desktop Environments packages must install a .desktop file in /etc/share/xsessions (ie: /etc/X11/dm/Sessions/e16.desktop). A xinitrc file should be placed in the /etc/X11/xinit directory (ie: /etc/X11/xinit/xinit.e16)

タグ:

+ タグ編集
  • タグ:
記事メニュー
最近更新されたスレッド
ウィキ募集バナー