Fork me on GitHub

Ubuntu Debファイルを依存パッケージと同時にインストールする

  • Mar 14, 2010

categoryプラグインは存在しません。categoryプラグインは存在しません。categoryプラグインは存在しません。

概要

依存パッケージが多いdebファイルは、dpkgでインストールしようとしてもエラーになってしまいます。aptを使って依存するパッケージをインストールする手順のメモ。

環境

aptを使う方法

必要ツールのインストール

sudo aptitude install dpkg-dev

お手軽な方法

  • ローカルリポジトリを作成

debファイルを1つのディレクトリに集めて

mkdir -p /home/debs
cd /home
cp /somewhere/hoge.deb debs

パッケージリストを作ります。

dpkg-scanpackages debs /dev/null | gzip > debs/Packages.gz
  • aptの設定ファイル追加

aptの設定ファイルにリポジトリの場所を登録します。

sudo cat > /etc/apt/source.conf.d/hoge-local.list
deb file:/home debs/
^d

最後の/がないとうまくいかないので注意。

  • パッケージのインストール

あとは通常どおり、aptitudeなどでインストールすれば依存関係にあるパッケージを含めてインストールができます。

sudo aptitude update
sudo aptitude install hoge

バージョンやアーキテクチャ毎に違うリポジトリを用意する場合

  • ローカルリポジトリの作成

スキャンがやりやすいよう、jaunty, karmicなどUbuntuのバージョン毎にフォルダを分けてdebファイルを置きます。アーキテクチャ(32bit, 64bitなど)は混在していても大丈夫です。

mkdir -p /home/debs/pool/jaunty-hoge
cp xxxx.deb /home/debs/pool/jaunty-hoge

次に、パッケージリストを置く場所を作ります。これはアーキテクチャ毎に別です。

mkdir -p /home/debs/dists/jaunty/main/binary-amd64

スキャンしてパッケージリストを作ります。

cd /home/debs
dpkg-scanpackages --arch amd64 pool/jaunty-hoge | gzip > dists/jaunty/main/binary-amd64/Packages.gz
  • APTからの指定

あとは、

deb file:/home/debs jaunty main

などと指定すれば、パッケージが使えるようになります。

強制的に入れる方法

dpkgでインストールに失敗しても、aptitudeなどで再度インストールすれば依存関係を含めてインストールできます。

sudo dpkg -i hoge.deb
sudo aptitude install hoge

これが一番簡単です。

参考

commentプラグインは存在しません。