試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Ubuntu向けパッケージ作成上のメモ(バイナリパッケージの分割に関するメモ・前半)

C/Migemo(バージョン1.3c MIT版)のUbuntu向けパッケージを作成」で作成したC/MigemoUbuntu向けパッケージの作成段階におけるメモの内、バイナリパッケージの分割に関する内容をここで扱う。
前半は1つのソースパッケージから複数のバイナリパッケージを分けて作成することに関する一般的な話となる。

バイナリパッケージの分割について

1つのソースパッケージをビルドしたときに生成されるファイル群はその機能やアーキテクチャ依存/非依存などによって複数のパッケージに分けられることがある。
パッケージビルドツールでそうした(複数のバイナリパッケージを作成するように記述された)ソースパッケージをビルドすると、debian/controlで記述された通りに複数のバイナリパッケージが生成される。

ライブラリのパッケージの分割について

一般的に、動的リンク可能なライブラリのパッケージはそれを用いたビルド済みのプログラムからは

  • ライブラリ本体の共有オブジェクト(lib[名前].so.x.x.x)
  • 動的リンク時に用いられるシンボリックリンク(lib[名前].so.x)

が必要となるが、そのライブラリを用いたプログラムのビルドには

が追加で必要となり、ソースパッケージをビルドするとその両方が得られるが、そのライブラリを用いたビルド済みのプログラムを動かすだけなら後者のファイル群は配置する必要はないため、無駄なディスク領域を使わずに済む。その関係で後者のファイル群は(Debian/Ubuntuでは)「lib[名前]([バージョン])-dev」のような名前で開発(development)パッケージとして分けられており、RPMパッケージを用いたディストリでも同様に「lib[名前]([バージョン])-devel」のような名前で開発パッケージは分かれている。

アーキテクチャ依存/非依存による分割

アーキテクチャに依存しないファイル群は

といったことからアーキテクチャ依存な部分と分割されることがある。

(「Ubuntu向けパッケージ作成上のメモ(バイナリパッケージの分割に関するメモ・後半)」に続く)

関連記事: