Debianパッケージとは?中身を展開、再作成、インストール、アンインストール

ITで知っておくべき知識
スポンサーリンク

既存のあるDebianパッケージについて中身の一部を入れ替えて、再作成する機会があったので、作業をまとめてみました。

スポンサーリンク

Debianパッケージとは

Debianパッケージは、Debian、UbuntuなどのDebian系のLinuxで使われるソフトウェアのパッケージです。

ファイルの拡張子は、deb です。

Redhat、CentOSなどのRedHat系のLinuxで使われるrpmに相当します。

 

debパッケージは、gzipやbzip2、LZMAで圧縮された2つのアーカイブで構成され、そのうち1つはコントロールの情報、もう1つはデータです。

dpkg、apt または aptitudeでインストール、アンインストール可能です。

Debian パッケージの作成方法

Debianパッケージの作成方法を調べてみると、以下のサイトを見つけました。

 

↓debパッケージ作成方法をステップバイステップでまとめました

https://eng-entrance.com/linux-package-deb-create

 

↓社内利用のための deb パッケージング入門

https://blog.cybozu.io/entry/2016/05/16/111500

 

debian パッケージの作成方法

http://www.rain.hyarc.nagoya-u.ac.jp/~satoki/main/Linux/configure/make_deb.html

 

どれを見ても、フォルダ構成が難しいな。

作るのがめんどくさそう。。

Debianパッケージの中身を展開

Debianパッケージは、arコマンドで展開できるようです。

ar は C言語などで libc.a など静的なライブラリを作成するときに使いますね。

 

例として”nginx-core“のdebパッケージを展開してみました。

3つのファイルが展開されました。

 

Debianパッケージの中身は、次の通りです。

 

なるほど、既存の Debian パッケージを更新するだけなら、複雑なDebianパッケージの作成方法を覚えなくてもよいようです。

Debianパッケージの再作成

今回、既存のあるDebianパッケージのJavaのバージョンを32ビット版から64ビット版に変更し、さらに関連するいくつかの不具合を修正することになりました。

Debianパッケージの data.tar.gz を展開

まず、既存のDebianパッケージ xxx.deb を展開してみます。

 

さらに、data.tar.gz を展開してみます。

 

Javaを32ビット版から64ビット版に置き換え

32ビット版のJava は、jre-6u29-linux-i586.bin

64ビット版のJava は、jre-6u29-linux-x64.bin

です。

分かりにくいですが i586 が32ビット、x64が64ビットです。

32ビットと64ビットの名称については以下を参照して下さい。

https://urashita.com/archives/12325

 

今回、

jre-6u29-linux-i586.bin を jre-6u29-linux-x64.bin に置き換えます。

 

Javaの古いバージョンは、Java Archiveというサイトから取ってきます。

https://www.oracle.com/technetwork/jp/java/archive-139210.html

 

gksudo は廃止されたので、sudo -i に置き換え

次に、起動ファイル

./usr/bin/xxx

を調べてみました。

 

以下のように、gksudo を使っていました。

gksudo は、Ubuntu 18.04では廃止されています。

 

そこで、sudo -i に書き換えます。

 

デスクトップエントリファイル xxx.desktop ファイルを修正

拡張子がdesktop の xxx.desktop は、Ubuntuのデスクトップエントリファイルです。

 

↓デスクトップエントリ

https://wiki.archlinux.jp/index.php/デスクトップエントリ

 

起動がうまくいかないことがあるので

に修正しました。

Debianパッケージの control.tar.gz を展開

次に、control.tar.gz を展開します。

 

インストール後に実行される postinst を開きます。

32bit版のJavaを展開している箇所が見つかりました。

 

今回は、64bit版のJavaに置き換えます。

 

同様に、prerm の中のJavaも書き換えます。

 

次に、control ファイルの中身を見てみます。

 

今回のインストーラーは64ビット版なので、以下のように書き換えます。

 

32ビットのアーキテクチャーは i386

64ビットのアーキテクチャーは amd64

と書きます。

 

Debianパッケージを再作成

Debian パッケージを再作成します。

 

data.tar.gz と control.tar.gz を再作成します。

 

これで、

debian-binary
control.tar.gz
data.tar.gz

が揃ったので、Debianパッケージを作成します。

 

ar コマンドを使いますが、アーカイブする順番は、debian-binary、control.tar.gz、data.tar.gz の順番でないといけません。

これで再パッケージ化が出来ました。

 

Debianパッケージのインストール方法、手順

Debianパッケージのインストール方法、手順は次の通りです。

 

Debianパッケージのアンインストール方法、手順

Debianパッケージのアンインストール方法、手順は次の通りです。