RedHat Linux で aptコマンドを使おう |
■ apt ココマンドはたいへん便利です!
apt コマンドは、今までは Linux の中でも Debian Linux と Vine Linux だけで利用できるコマンドでした。
Linux 配布元の1つの Conectiva(ブラジル) により apt が rpmパッケージに移植され、RedHat Linux でも利用できるようになりました。
apt を簡単に説明すると、PCにインストールしてある Linuxの rpmパッケージのバージョンを管理するシステムです。
これを利用することで、インターネット上のFTPサイトに最新版rpmがある場合、それらをコマンド1つでまとめてダウンロードし、インストールできます。つまり、Windows の Windows Update と同じような感覚で、RedHAt Linux でも rpmパッケージを最新版に保つことができるわけです。また、rpmパッケージソフトのバグやセキュリティーホールの対策にも有効ですね。
■ ここでは Red Hat Linux8 でのインストールと使い方を説明します。
- apt for RPM は、RedHat Linux については、2003年5月現在で、RedHat7.3にも対応していて、わたしも使っています。
- 「RedHat9での apt コマンドのインストール方法」も、別のページに用意してありますのでごらんください。
- Linux8をインストールしたマシンが、ADSLやCATV、ISDN・・・などのインターネットを使用できる環境にあるとして解説をします。
- 以下の作業はすべて root権限で実行してください。
apt の情報を入手する
apt の配布元のサイト freshrpms で必要な情報を入手できます
URL:http://freshrpms.net/
freshrpms.netのサイトでは、RedHat のバージョンごとにaptのrpmパッケージがFTP ディレクトリに分類されて用意されています。目的にあったバージョンをダウンロード します。
インストールの手順
@ apt の rpmパッケージをダウンロードして入手する
ここでは RedHat Linux8のパッケージをインストールします。wget コマンドで、一気にダウンロードしました。
[root@otto src]# wget ftp://ftp.freshrpms.net/pub/freshrpms/psyche/apt/apt-0.5.5cnc3-fr2.i386.rpm
--00:32:39-- ftp://ftp.freshrpms.net/pub/freshrpms/psyche/apt/apt-0.5.5cnc3-fr2.i386.rpm
=> `apt-0.5.5cnc3-fr2.i386.rpm'
Resolving ftp.freshrpms.net... done.
Connecting to ftp.freshrpms.net[66.40.9.130]:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD /pub/freshrpms/psyche/apt ... done.
==> PORT ... done. ==> RETR apt-0.5.5cnc3-fr2.i386.rpm ... done.
Length: 646,592 (unauthoritative)
100%[====================================>] 646,592 123.74K/s ETA 00:00
00:32:46 (123.74 KB/s) - `apt-0.5.5cnc3-fr2.i386.rpm' saved [646592]
A インストールする
ダウンロードした apt の rpmパッケージをインストールします。
[root@otto src]# ls
---- <省略.> -----
apt-0.5.5cnc3-fr2.i386.rpm mysql-3.23.55.tar.gz
---- <省略.>-----
[root@otto src]# rpm -ivh apt-0.5.5cnc3-fr2.i386.rpm
warning: apt-0.5.5cnc3-fr2.i386.rpm: V3 DSA signature: NOKEY, key ID e42d547b
Preparing... ########################################### [100%]
1:apt ########################################### [100%]
B apt のソースリストをしらべる
aptの設定ファイルは、/etc/apt ディレクトリに置かれる。
ユーザーの設定できるファイルは、sources.list と apt.conf だけです。
sources.list: aptが利用するレポジトリを指定します。
apt.conf : aptのコマンドの動作を制御するための設定ファイル。
● sources.list を見る
[root@otto src]# ls /etc/apt/
apt.conf preferences rpmpriorities sources.list vendors.list
[root@otto src]# more /etc/apt/sources.list
# Freshrpms.net apt-rpm package repository URLs
#
# http://apt.freshrpms.net/ will always have the most current version
# of this file.
#
# $Id: sources.list,v 1.5 2003/02/22 13:52:27 dude Exp $
#
# Red Hat Linux 8.0
rpm http://apt.freshrpms.net redhat/8.0/en/i386 freshrpms ← rpm のダウンロード先
rpm-src http://apt.freshrpms.net redhat/8.0/en/i386 freshrpms ← rpms のダウンロード先
# Red Hat Linux 7.3
#rpm http://apt.freshrpms.net redhat/7.3/en/i386 os updates freshrpms
#rpm-src http://apt.freshrpms.net redhat/7.3/en/i386 os updates freshrpms
# Red Hat Linux 7.2
#rpm http://apt.freshrpms.net redhat/7.2/en/i386 os updates freshrpms
#rpm-src http://apt.freshrpms.net redhat/7.2/en/i386 os updates freshrpms
# Red Hat Linux 7.2 ja
#rpm http://apt.freshrpms.net redhat/7.2/ja/i386 os
#rpm-src http://apt.freshrpms.net redhat/7.2/ja/i386 os
# Red Hat Linux 7.1
#rpm http://apt.freshrpms.net redhat/7.1/en/i386 os powertools dma updates fresh
rpms
#rpm-src http://apt.freshrpms.net redhat/7.1/en/i386 os powertools dma updates f
reshrpms
# Red Hat Linux 7.1 ia64
#rpm http://apt.freshrpms.net redhat/7.1/en/ia64 os updates
#rpm-src http://apt.freshrpms.net redhat/7.1/en/ia64 os updates
# Red Hat Linux 7.0
#rpm http://apt.freshrpms.net redhat/7.0/en/i386 os powertools dma updates fresh
rpms
#rpm-src http://apt.freshrpms.net redhat/7.0/en/i386 os powertools dma updates f
reshrpms
# Red Hat Linux 7.0 ja
#rpm http://apt.freshrpms.net redhat/7.0/ja/i386 os updates
#rpm-src http://apt.freshrpms.net redhat/7.0/ja/i386 os updates
# Red Hat Linux 7.0 tc
#rpm http://apt.freshrpms.net redhat/7.0/tc/i386 os
#rpm-src http://apt.freshrpms.net redhat/7.0/tc/i386 os
# Red Hat Linux 6.2
#rpm http://apt.freshrpms.net redhat/6.2/en/i386 os updates freshrpms
#rpm-src http://apt.freshrpms.net redhat/6.2/en/i386 os updates freshrpms
上記のように、RedHat の各バージョンごとにrpmファイルを参照するURLが設定されている。
(RedHat の以前のバージョンも、ちゃんとサポートされています。うれしいですね!)
デフォルト設定では、freshrpms.net の独自のrpmパッケージをインストールする設定になっている。
もしも、RedHatの公式rpmパッケージをインストールしたい場合には、この2行の部分のURLを書換えて、RedHat 社のパッケージを指定することができます。
● apt のデータベースに RedHat 社のFTPサイトを指定する方法
/etc/apt/sources.list で次の個所の2行の設定を変更します。
# Red Hat Linux 8.0
rpm http://apt.freshrpms.net redhat/8.0/en/i386 os update
rpm-src http://apt.freshrpms.net redhat/8.0/en/i386 os update
apt.conf では、aptを利用してアップデートしたくないパッケージの指定をします。
また、ダウンロードする際のインターネット経路にProxyなどがある場合は、このファイルに設定を書くことで使用できます。
source.list には、混乱を避ける意味で、複数の配布FTPサーバーを登録しない方が賢明でしょう。
C apt コマンドを実行する
aptを利用するためにはパッケージ間の依存関係などが記述されている apt用のデータベースが必要となる。
実行する前に最新のデータベースを取得するためのオプションを付けて aptコマンドを実行する。
取得した最新のデータベースは、/var/state/apt/lists に保存される。
[root@otto src]# apt-get update
0% [Working]
0% [Connecting to apt.freshrpms.net (66.40.9.130)]
Ign http://apt.freshrpms.net redhat/8.0/en/i386 release
50% [Working]
12% [Waiting for headers]
Get:1 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms pkglist [108kB]
Get:2 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms release [125B]
Get:3 http://apt.freshrpms.net redhat/8.0/en/i386/freshrpms srclist [25.9kB]
100% [Working]
Fetched 134kB in 4s (30.1kB/s)
Reading Package Lists... Done
Collecting File Provides... Done
次に、取得したデータベースの情報を元に、最新版rpm をダウンロードしてインストールする。
[root@otto root]# apt-get upgrade
Reading Package Lists... Done
Collecting File Provides... Done
Building Dependency Tree... Done
The following packages will be upgraded
cups-libs gnupg kon2 kon2-fonts lv man tcpdump xinetd zlib zlib-devel
10 packages upgraded, 0 newly installed, 0 removed and 0 not upgraded.
Need to get 2668kB of archives.
After unpacking 82.9kB of additional disk space will be used.
Do you want to continue? [Y/n] y ←ー インストールの実行する確認を求められるので Yes
Get:1 http://apt.freshrpms.net redhat/8.0/en/i386/updates zlib 1.1.4-8.8x [36.7kB]
Get:2 http://apt.freshrpms.net redhat/8.0/en/i386/updates cups-libs 1:1.1.17-0.7 [89.0kB]Get:3 http://apt.freshrpms.net redhat/8.0/en/i386/updates gnupg 1.0.7-8 [1213kB]
Get:4 http://apt.freshrpms.net redhat/8.0/en/i386/updates kon2 0.3.9b-14.8 [105kB]
Get:5 http://apt.freshrpms.net redhat/8.0/en/i386/updates man 1.5k-0.8x.0 [89.3kB]
Get:6 http://apt.freshrpms.net redhat/8.0/en/i386/updates tcpdump 14:3.6.3-17.8.0.3 [271kB]
Get:7 http://apt.freshrpms.net redhat/8.0/en/i386/updates xinetd 2:2.3.11-1.8.0 [144kB]
Get:8 http://apt.freshrpms.net redhat/8.0/en/i386/updates kon2-fonts 0.3.9b-14.8 [121kB]
Get:9 http://apt.freshrpms.net redhat/8.0/en/i386/updates lv 4.49.4-7.80.1 [529kB]
Get:10 http://apt.freshrpms.net redhat/8.0/en/i386/updates zlib-devel 1.1.4-8.8x [70.3kB]
97% [10 zlib-devel 1101/70.3kB 1%] 117kB/s 0s
98% [10 zlib-devel 27739/70.3kB 39%] 117kB/s 0s
100% [Working] 117kB/s 0s
Fetched 2668kB in 15s (171kB/s)
Executing RPM (-Uvh)...
Preparing... ########################################### [100%]
1:zlib ########################################### [ 10%]
2:cups-libs ########################################### [ 20%]
3:gnupg ########################################### [ 30%]
4:kon2 ########################################### [ 40%]
5:man ########################################### [ 50%]
6:tcpdump ########################################### [ 60%]
7:xinetd ########################################### [ 70%]
8:kon2-fonts ########################################### [ 80%]
9:lv ########################################### [ 90%]
10:zlib-devel ########################################### [100%]
上記の実行例では、10個の rpmパッケージが一度に最新版に更新された。
D apt のデータベースからrpmパッケージ(SNMP)の情報を検索してみる
[root@otto src]# apt-cache search net-snmp
net-snmp - A collection of SNMP protocol tools and libraries.
net-snmp-utils - Network management utilities using SNMP, from the NET-SNMP project.
さらにくわしいパッケージの情報を調べるjこともできる。
[root@otto src]# apt-cache show net-snmp
Package: net-snmp
Section: System Environment/Daemons
Installed Size: 4216
Maintainer: Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Version: 5.0.1-6
Pre-Depends: /sbin/chkconfig, /bin/sh, /bin/sh, /bin/sh, rpmlib
(PayloadFilesHavePrefix) (<= 4.0-1), rpmlib(CompressedFileNames) (<= 3.0.4-1)
Depends: /bin/bash, /bin/sh, /usr/bin/perl, libbz2.so.1, libcrypto.so.2,
libc.so.6, libc.so.6(GLIBC_2.0), libc.so.6(GLIBC_2.1), libc.so.6(GLIBC_2.1.3),
libc.so.6(GLIBC_2.2), libdb.so.2, libdl.so.2, libelf.so.0, libm.so.6,
libnetsnmpagent.so.5, libnetsnmphelpers.so.5, libnetsnmpmibs.so.5,
libnetsnmp.so.5, libnsl.so.1, libnsl.so.1(GLIBC_2.0), libpopt.so.0,
libpthread.so.0, libpthread.so.0(GLIBC_2.0), librpm-4.1.so, librpmdb-4.1.so,
librpmio-4.1.so, librt.so.1, libz.so.1
Provides: libnetsnmpagent.so.5, libnetsnmphelpers.so.5, libnetsnmpmibs.so.5,
libnetsnmp.so.5, libsnmp.so.5, net-snmp (= 5.0.1-6)
Obsoletes: ucd-snmp
Architecture: i386
Size: 1
MD5Sum:
Filename:
Description: A collection of SNMP protocol tools and libraries.
SNMP (Simple Network Management Protocol) is a protocol used for
network management. The NET-SNMP project includes various SNMP tools:
an extensible agent, an SNMP library, tools for requesting or setting
information from SNMP agents, tools for generating and handling SNMP
traps, a version of the netstat command which uses SNMP, and a Tk/Perl
mib browser. This package contains the snmpd and snmptrapd daemons,
documentation, etc.
You will probably also want to install the net-snmp-utils package,
which contains NET-SNMP utilities.
apt コマンドを実行する
@ ためしにfreshrpms.net から webmin の rpmパッケージをインストールする
[root@otto src]# apt-get install webmin
Reading Package Lists... 100%
Reading Package Lists... Done
Building Dependency Tree... Done
E: Couldn't find package webmin
[root@otto src]# apt-get upgrade
Reading Package Lists... 100%
Reading Package Lists... Done
Building Dependency Tree... Done
0 packages upgraded, 0 newly installed, 0 removed and 0 not upgraded.
上記の事例では、あらかじめ Webminがインストールされていなかったので更新されなかった。
次の実行例は、RedHinux7.3 での mtools のインストールです。
[root@otto root]# apt-get install mtools
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
mtools
0 packages upgraded, 1 newly installed, 0 removed and 1 not upgraded.
Need to get 193kB of archives.
After unpacking 291kB of additional disk space will be used.
Get:1 http://ayo.freshrpms.net redhat/7.3/i386/os mtools 3.9.8-2 [193kB]
Fetched 193kB in 1s (139kB/s)
Executing RPM (-Uvh)...
Preparing... ########################################### [100%]
1:mtools ########################################### [100%]
こんなふうに、1個の rpmパッケージをインストールすることもできます。
まとめ
わたしも、まだ使いはじめたばかりなのでくわしくありません。Vine Linux の日本語ドキュメントが参考になります。
まだRedHat のユーザーに apt は知られていないせいなのか、FTPのトラフィックも軽くて快適です。
セキュリティ対策のための アップデートの作業が、間単にできて便利です。
RedHat Linux をマシンにインストール後、rpmパッケージを追加する場合は CD-ROMをマウントしてインストールしていました。しかし、apt コマンドが利用できれば、インターネットのFTPサイトからフレッシュな rpm をコマンド1つでインストールできます。時々は、rpmパッケージの依存関係の問題でインストールに手間取ることもありますが、使い慣れるのに時間はかかりません。
apt コマンドの問題点は?
apt の難点は、アップデートしたくないパッケージもいっしょにアップデートされます。
そのために、ハードディスク領域リソースを必要以上に消費します。次の点に注意してください。
- インストール時に、/usr のパーティションを大きめに確保する。
- Linuxインストール後に、使わない rpm パッケージは極力削除する。
- RPM パッケージの更新が、かならずしもセキュリティーホールの問題解決にはならないことを認識しておく。
トラブル解決のヒント
Q: ダウンロードのインデックスファイルはどこにあるか?
A: /var/cache/apt/ 以下のディレクトリにあります。
Q: apt-get install に失敗した時は?
A: apt-get upgrade を再度実行する。忍耐強くやってください。
ドキュメントをよく理解して利用してください。
****** テキスト 「aptコマンドをRedHat Linux にインストールする」 おわり whzat ******
もどる