動作確認環境:RedHatLinux7.3

apt


aptについて

  • 『apt』は、パッケージの依存関係を管理していて必要なパッケージを自動でインストールしてくれるツールです。『apt』は、元々はDebianプロジェクトで開発されたツールで、Debian等でdeb形式パッケージ管理システムとして以前から使われていた様です。この『apt』を元に、freshrpm.netがRedHatLinuxのrpmパッケージ用に手を加えたものが提供されています。実際にRedHatLinux版『apt』を使ってみたところ、非常に便利でしたので、ここで紹介します。

aptのインストール

  • RedHatLinux版『apt』は、以下の様にfreshrpms.netからダウンロード後、rpmコマンドでインストールします。

    $ wget http://ftp.freshrpms.net/pub/freshrpms/redhat/7.3/apt/apt-0.5.5cnc3-fr0.rh73.2.i386.rpm
    --04:05:04--  http://ftp.freshrpms.net/pub/freshrpms/redhat/7.3/apt/apt-0.5.5cnc3-fr0.rh73.2.i386.rpm
               => `apt-0.5.5cnc3-fr0.rh73.2.i386.rpm'
    ftp.freshrpms.net をDNSに問いあわせています... 完了しました。
    ftp.freshrpms.net[66.40.9.130]:80 に接続しています... 接続しました。
    HTTP による接続要求を送信しました、応答を待っています... 200 OK
    長さ: 857,010 [application/x-rpm]
    
    100%[====================================>] 857,010      136.24K/s    ETA 00:00
    
    04:05:10 (136.24 KB/s) - `apt-0.5.5cnc3-fr0.rh73.2.i386.rpm' を保存しました [857
    010/857010]
    $ su
    # rpm -ivh apt-0.5.5cnc3-fr0.rh73.2.i386.rpm
    Preparing...                ########################################### [100%]
       1:apt                    ########################################### [100%]
    



aptの設定ファイルとデータベースの取得

  • 設定ファイル「/etc/apt/sources.list」および「/etc/apt/apt.conf」は変更せずにデフォルトのままでOKです。

    【/etc/apt/sources.list】
    # 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
    

    【/etc/apt/apt.conf】
    // $Id: apt.conf,v 1.11 2003/02/23 16:14:11 dude Exp $
    
    APT
    {
      // Options for apt-get
      Get
      {
        Download-Only "false";
        Show-Upgraded "true";
      };
    
    };
    
    RPM
    {
      // Completely ignore the following packages (not regexp)
      Ignore { };
      // Do not try to update the following packages
      Hold { };
      // Allow multiple kernel and kernel-related packages to be installed
      Allow-Duplicated { "^kernel$"; "^kernel-smp$"; "^kernel-bigmem$"; "^kernel-BOOT$";
     "^kernel-debug$"; "^kernel-source$"; "^alsa-kernel$"; "^alsa-kernel-smp$";"^gpg-pubkey$" };
      // Enable source rebuilds
      Source
      {
        Build-Command "rpmbuild --rebuild";
      };
    };
    
    // Options for the downloading routines
    Acquire
    {
      Retries "0";
    };
    

  • その後、「apt-get update」コマンドで依存関係等を管理しているデータベースを入手すれば、準備は完了です。

    # apt-get update
    Get:1 http://apt.freshrpms.net redhat/7.3/en/i386 release [1125B]
    Fetched 1125B in 0s (1236B/s)
    Get:1 http://apt.freshrpms.net redhat/7.3/en/i386/os pkglist [1228kB]
    Get:2 http://apt.freshrpms.net redhat/7.3/en/i386/os release [110B]
    Get:3 http://apt.freshrpms.net redhat/7.3/en/i386/updates pkglist [484kB]
    Get:4 http://apt.freshrpms.net redhat/7.3/en/i386/updates release [115B]
    Get:5 http://apt.freshrpms.net redhat/7.3/en/i386/freshrpms pkglist [108kB]
    Get:6 http://apt.freshrpms.net redhat/7.3/en/i386/freshrpms release [127B]
    Get:7 http://apt.freshrpms.net redhat/7.3/en/i386/os srclist [148kB]
    Get:8 http://apt.freshrpms.net redhat/7.3/en/i386/updates srclist [27.7kB]
    Get:9 http://apt.freshrpms.net redhat/7.3/en/i386/freshrpms srclist [27.0kB]
    Fetched 2023kB in 50s (39.8kB/s)
    Reading Package Lists... Done
    Collecting File Provides... Done
    

aptの使い方

  • 【パッケージのインストール】
    以下の使用例は、aptによるapacheのインストール方法です。パッケージ名を指定すれば、後は自動でやってくれます。以下の例では、apacheが依存している「expat」と「mm」の2つのパッケージが自動的にインストールされています。

    # apt-get install apache
    Reading Package Lists... Done
    Collecting File Provides... Done
    Building Dependency Tree... Done
    The following extra packages will be installed:
      expat mm
    The following NEW packages will be installed:
      apache expat mm
    0 packages upgraded, 3 newly installed, 0 removed and 35 not upgraded.
    Need to get 623kB of archives.
    After unpacking 1406kB of additional disk space will be used.
    Do you want to continue? [Y/n] y
    Get:1 http://apt.freshrpms.net redhat/7.3/en/i386/os expat 1.95.2-2 [56.0kB]
    Get:2 http://apt.freshrpms.net redhat/7.3/en/i386/updates mm 1.1.3-11 [15.4kB]
    Get:3 http://apt.freshrpms.net redhat/7.3/en/i386/updates apache 1.3.27-2 [552kB]
    Fetched 623kB in 7s (87.0kB/s)
    Executing RPM (-Uvh)...
    Preparing...                ########################################### [100%]
       1:expat                  ########################################### [ 33%]
       2:mm                     ########################################### [ 66%]
       3:apache                 ########################################### [100%]
    

  • 【パッケージの削除】
    以下の様にパッケージ名を指定して実行します。設定ファイルも含めて削除する場合は、「--purge」オプションを付けます。
    # apt-get remove apache
    # apt-get --purge remove apache
    

  • 【パッケージの検索】
    パッケージ名をキーワードにして検索すると、rpmパッケージ名や説明文にキーワードを含むパッケージが検索できます。rpmパッケージ名のみを検索対象にする場合は、「--names-only」オプションを付けます。
    $ apt-cache search apache
    $ apt-cache search --names-only apache
    

  • 【パッケージの詳細情報の表示】

    $ apt-cache show apache
    

  • 【アップデート・パッケージのインストール】
    バグやセキュリティホールが修正されたアップデート・パッケージをインストールする事ができます。最新のアップデート・パッケージをインストールには、最新のデータベースが必要になるので、「# apt-get update」コマンドとセットで実行する事が望ましいです。
    # apt-get upgrade
    

  • 【カーネル・パッケージのアップデート】
    アップデートすべきカーネル・パッケージがあるかどうかは、以下のコマンドで確認できます。なぜか、「E: Package kernel has no installation candidate」とのエラー?になってしまいました。
    # apt-get install kernel
    Reading Package Lists... Done
    Collecting File Provides... Done
    Building Dependency Tree... Done
    Package kernel is a virtual package provided by:
      kernel-smp#2.4.18-27.7.x 2.4.18-27.7.x
      kernel-smp#2.4.18-26.7.x 2.4.18-26.7.x
      kernel-smp#2.4.18-24.7.x 2.4.18-24.7.x
      kernel-BOOT#2.4.18-27.7.x 2.4.18-27.7.x
      kernel-BOOT#2.4.18-26.7.x 2.4.18-26.7.x
      kernel-BOOT#2.4.18-24.7.x 2.4.18-24.7.x
      kernel#2.4.18-27.7.x 2.4.18-27.7.x
      kernel#2.4.18-27.7.x 2.4.18-27.7.x
      kernel#2.4.18-27.7.x 2.4.18-27.7.x
      kernel#2.4.18-26.7.x 2.4.18-26.7.x
      kernel#2.4.18-26.7.x 2.4.18-26.7.x
      kernel#2.4.18-26.7.x 2.4.18-26.7.x
      kernel#2.4.18-24.7.x 2.4.18-24.7.x
      kernel#2.4.18-24.7.x 2.4.18-24.7.x
      kernel#2.4.18-24.7.x 2.4.18-24.7.x
      kernel-smp#2.4.18-3 2.4.18-3
      kernel-BOOT#2.4.18-3 2.4.18-3
      kernel#2.4.18-3 2.4.18-3
      kernel#2.4.18-3 2.4.18-3
      kernel#2.4.18-3 2.4.18-3
    You should explicitly select one to install.
    E: Package kernel has no installation candidate
    

    実際にカーネル・パッケージをアップデートする場合は、以下の様に指定します。
    # apt-get install <カーネル名>
    

  • 【ソース・パッケージのダウンロードと展開】
    例えば、apacheのソース・パッケージ(.src.rpm)のダウンロードと展開は、以下のコマンドを実行します。root権限で、「--download-only」オプションを付けずに実行すると、ソースコードが「/usr/src/redhat」ディレクトリに展開されます。
    $ apt-get --download-only source apache
    # apt-get source apache
    


参考文献・関連リンク

  • RedHatLinux版『apt』活用術:LinuxWorld2003年4月号特集2
  • freshrpms.net:Downloads for Red Hat Linux


トップへもどる


Copyright (c) 2003 Hiroshi Nakamura. All rights reserved.