VineLinuxパフォーマンスアッププロジェクト:0085
■apt-getコマンドの基本ファイルを編集しよう!■
apt-getコマンドは新しいパッケージを自動的に簡単にインストールしてくれる便利なコマンドですが、ちゃんと利用できるようにするには設定ファイルを編集する必要があります。
2009/ 9/ 6追記
VineLinux5.0以降の設定について追記しました。これまでのバージョンと分けて記載しています。
★VineLinux5.0以降の場合
設定ファイルは2つのディレクトリ下に保存されています。1つは/etc/apt/apt.conf.d以下にある11ファイルで、もう1つは/etc/apt/sources.list.d以下にある3ファイルです。前者のファイルは通常編集する必要がありません。1バージョンにつき1パッケージのファイルを強制的に複数パッケージインストールする際などに編集します。後者のファイルは最新のパッケージデータを取得するために必要なページのリポジトリ(アドレスみたいなもの)を指定するためのファイルです。
●異なるバージョンのパッケージをインストールする際の設定
/etc/apt/apt.conf.d以下には11ファイルありますが、実際よく使うのはallow-duplicated-upgrade.confとsystem-duplicate-package.confです。
allow-duplicated-upgrade.confの中身は大体下のようになっていると思います。
RPM::Allow-Duplicated-Upgrade:: "kernel.*";
また、system-duplicate-package.confの中身は大体下のようになっていると思います。
RPM
{
Allow-Duplicated {"^kernel$"; "^kernel-smp$"; "^kernel-BOOT"; "^kernel-pae$";
"^kernel-devel$"; "^kernel-smp-devel$"; "^kernel-pae-devel$";
"^kernel-module"; "^kernel-module-pae";
"^kernel26$"; "^kernel26-smp";
"^kernel26-devel"; "^kernel26-smp-devel";
"^kernel24$"; "^kernel24-smp"; "^kernel24-BOOT";
"^kernel22$"; "^kernel22-smp";
"^mol-kmods$"; "^mol-kmods22$";
"^gpg-pubkey"; };
}
allow-duplicated-upgrade.confには、異なるバージョンを同居させたいパッケージ名を" "内に記載します。その際にはワイルドカード"*"で指定可能です。
上記の場合、kernelで始まるパッケージ名は同居可能となります。
system-duplicate-package.confに記載する方法はVineLinux4.2までの場合と同じですので、下記の記述(apt.confの設定方法〜Allow-Duplicated記述〜)を参考にしてください。
●リポジトリの設定
/etc/apt/sources.list.d以下には3ファイルあり、セクション(main, nonfree, plus)ごとにファイルが分かれています。
それぞれのセクションの役割は以下の通りです。
main…VineLinuxを構成する上での必須パッケージ。リリース時(メディア収録時)のバージョンになっている。
nonfree…ライセンスや特許などの理由で、利用や再配布に制限があるパッケージ。
plus…mainには含まれないが、一般的によく使われているパッケージ。VinePlusに相当する。
記載する方法はVineLinux4.2までの場合と同じですので、下記の記述(sources.listの設定方法)を参考にしてください。
★VineLinux4.2までの場合
設定ファイルは大きく分けると2つあります。1つは/etc/apt/apt.confで、もう1つは/etc/apt/sources.listです。前者のファイルは通常編集する必要がありません。1バージョンにつき1パッケージのファイルを強制的に複数パッケージインストールする際などに編集します。後者のファイルは最新のパッケージデータを取得するために必要なページのリポジトリ(アドレスみたいなもの)を指定するためのファイルです。
●apt.confの設定方法
apt.confの中身は大体下のようになっていると思います。
APT
{
Get
{
Download-Only "false";
Show-Upgraded "true";
};
};
RPM
{
AutoRebuildDB "true";
Allow-Duplicated {"^kernel$"; "^kernel-smp"; "^kernel-BOOT";
"^kernel-devel$"; "^kernel-smp-devel$";
"^kernel26$"; "^kernel26-smp";
"^kernel26-devel"; "^kernel26-smp-devel";
"^kernel24$"; "^kernel24-smp"; "^kernel24-BOOT";
"^kernel22$"; "^kernel22-smp";
"^mol-kmods$"; "^mol-kmods22$"; };
Hold {};
Allow-Duplicated {"^kernel-source$"; "^kernel-headers$"; };
}
Acquire
{
CDROM::Copy "true";
Retrys "0";
}
◆Hold記述
上の設定ファイル内にあるHold {};には現在インストールされているパッケージのバージョンを固定したいときに記述します。例えばカーネルに依存するalsaサウンドドライバなどがインストールされている場合はカーネル関係のパッケージをここに記述すると良いでしょう(通常カーネルは自動でアップグレードされませんが念のため)。
記述方法はちょっと独特です。"^ と $";の間にrpmパッケージ名のバージョン前までの部分を記述します。例えばrpmパッケージ名がalsa-lib-1.0.5-0vl1.i386.rpmの場合、Hold記述には
"^alsa-lib$";
と記述します。
◆Allow-Duplicated記述
Allow-Duplicated{};には現在インストールされているパッケージのバージョンと新しいバージョンのパッケージを同居させたい場合に記述します。通常異なったバージョンのパッケージを同居させるのはシステムの振る舞い上あまりよくないことですが、カーネルなどは何バージョンか同居させておいたほうが突然いつものカーネルが起動しなくなったときなどの非常時には役立ち、安心です。
記述方法はHold記述と同様です。
●sources.listの設定方法
sources.listの中身は大体下のようになっていると思います。
#
# apt for RPM source.list sample
#
##
## Vine Linux 4.2 FTP
##
# (master)
rpm [vine] http://updates.vinelinux.org/apt 4.2/$(ARCH) main plus updates nonfree
rpm-src [vine] http://updates.vinelinux.org/apt 4.2/$(ARCH) main plus updates nonfree
#
# (ring mirror)
#rpm [vine] http://www.t.ring.gr.jp/pub/linux/Vine/apt 4.2/$(ARCH) main plus updates nonfree
#rpm-src [vine] http://www.t.ring.gr.jp/pub/linux/Vine/apt 4.2/$(ARCH) main plus updates nonfree
#
# (jaist mirror)
#rpm [vine] http://ftp.jaist.ac.jp/pub/Linux/Vine/apt 4.2/$(ARCH) main plus updates nonfree
#rpm-src [vine] http://ftp.jaist.ac.jp/pub/Linux/Vine/apt 4.2/$(ARCH) main plus updates nonfree
#
# (kddlabs mirror)
#rpm [vine] http://ftp.kddlabs.co.jp/pub/Linux/distributions/Vine/apt 4.2/$(ARCH) main plus updates nonfree
#rpm-src [vine] http://ftp.kddlabs.co.jp/pub/Linux/distributions/Vine/apt 4.2/$(ARCH) main plus updates nonfree
◆設定方法
apt.confと違いこちらは簡単です。有効にしたいサイトの行頭にある#を削除するだけです。ただし有効にしても時々取得失敗する場合があるのですべてのサイトを有効にしておいたほうが安心です。無効にしたいときは再度#を行頭につけるだけです。
VineSeed化して使用したい場合もapt-get操作可能です。その際には以下の記述をsources.listに追加してください。
##
## VineSeed FTP
##
# (ring mirror)
# rpm http://www.t.ring.gr.jp/pub/linux/Vine/apt/ VineSeed/$(ARCH) main plus plus-noarch
# rpm-src http://www.t.ring.gr.jp/pub/linux/Vine/apt/ VineSeed/$(ARCH) main plus
# (jaist mirror)
# rpm ftp://ftp.jaist.ac.jp/os/linux/Vine/apt/ VineSeed/$(ARCH) main plus plus-noarch
# rpm-src ftp://ftp.jaist.ac.jp/os/linux/Vine/apt/ VineSeed/$(ARCH) main plus
# (kddlabs mirror)
# rpm ftp://ftp.kddlabs.co.jp/pub/Linux/distributions/Vine/apt/ VineSeed/$(ARCH) main plus plus-#noarch
# rpm-src ftp://ftp.kddlabs.co.jp/pub/Linux/distributions/Vine/apt/ VineSeed/$(ARCH) main plus