RedHat Linux で aptコマンドを使おう

Updaated  :  2003/12/18       

FRESH RPMS
FRESH RPMS
■ 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 の情報を入手する

  apt の配布元のサイト freshrpms で必要な情報を入手できます

freshrmps のロゴ 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 の難点は、アップデートしたくないパッケージもいっしょにアップデートされます。
そのために、ハードディスク領域リソースを必要以上に消費します。次の点に注意してください。


 トラブル解決のヒント

Q: ダウンロードのインデックスファイルはどこにあるか?

 A: /var/cache/apt/ 以下のディレクトリにあります。

Q:  apt-get install に失敗した時は?

 A:  apt-get upgrade を再度実行する。忍耐強くやってください。



ドキュメントをよく理解して利用してください。

  ****** テキスト 「aptコマンドをRedHat Linux にインストールする」  おわり  whzat  ****** 


もとのページにもどる  もどる