ウェブサイト検索

RHEL7/CENTOS7 の yum を使用したソフトウェア パッケージの管理


Red Hat Enterprise Linux および CENTOS でソフトウェア パッケージを管理するために使用されるデフォルトのユーティリティは yum (Yellowdog Update Manager の略) です。 Yum は、利用可能なソフトウェア パッケージのオンライン デポであるリポジトリと連携するように設計されています。

YUM(修正された yellowdog アップデータ)

Red Hat Enterprise Linux のインストール中に、Red Hat Network (RHN) に登録するように求められます。 RHN からは、さまざまなリポジトリが提供されます。 RHN に登録した後、Red Hat によって自動的に検証されるソフトウェア パッケージをインストールできます。 CentOS を使用している場合は、CentOS リポジトリにアクセスできます。ただし、登録キーを使用せずに Red Hat Enterprise Linux をインストールすることを選択した場合、RHN リポジトリに接続できず、リポジトリがまったく存在しなくなることになります。その場合、使用するリポジトリを自分で指定できる必要があります。リポジトリはオペレーティング システムに固有であることに注意してください。

どのリポジトリを使用するかをサーバーに指示するには、.repo で終わる名前のファイルを作成する必要があります。このファイルには次の内容が必要です。

[ラベル] .repo ファイルにはさまざまなリポジトリを含めることができ、各セクションは特定のリポジトリを識別するラベルで始まります。
name= これを使用して、使用するリポジトリの名前を指定します。
baseurl= 特定のリポジトリの場所を指す URL が含まれます。
デフォルトで提供されるリポジトリ ファイルでは、1 つのファイルに複数のリポジトリが含まれている場合があります。これは、1 つのファイルに属するリポジトリをグループ化するのに便利で、多くの場合、デフォルトとして提供されるリポジトリ ファイルで行われます。リポジトリ ファイルを自分で作成している場合は、リポジトリごとに個別のファイルを自由に作成できます。

yum 検索の使用

yum を使用してパッケージをインストールするには、まずパッケージの正確な名前を知る必要があります。 yum search コマンドはこれに役立ちます。 yum search を使用すると、まずオンライン リポジトリに接続し (これには 1 分かかる場合があります)、その後、最新のリポジトリ メタデータがローカル マシンにダウンロードされます。次に、yum 検索は、パッケージ名と説明の中から探している文字列を探します。

[root@centos Desktop]# yum search nmap
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: ftp.jaist.ac.jp
 * extras: mirror.nbrc.ac.in
 * nux-dextop: mirror.li.nux.ro
 * updates: mirror.nbrc.ac.in
============================== N/S matched: nmap ===============================
nmap-frontend.noarch : The GTK+ front end for nmap
nmap-ncat.x86_64 : Nmap's Netcat replacement
nmap.x86_64 : Network exploration tool and security scanner

 Name and summary matches only, use "search all" for everything.
yum info

yum search を使用してパッケージを検索したら、「yum info package」を使用してパッケージに関する追加情報を表示できます。

[root@centos Desktop]# yum info nmap
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: ftp.riken.jp
 * extras: mirror.nbrc.ac.in
 * nux-dextop: mirror.li.nux.ro
 * updates: mirror.nbrc.ac.in
Available Packages
Name        : nmap
Arch        : x86_64
Epoch       : 2
Version     : 6.40
Release     : 7.el7
Size        : 4.0 M
Repo        : base/7/x86_64
Summary     : Network exploration tool and security scanner
URL         : http://nmap.org/
License     : GPLv2 and LGPLv2+ and GPLv2+ and BSD
Description : Nmap is a utility for network exploration or security auditing.
            : It supports ping scanning (determine which hosts are up), many
            : port scanning techniques (determine what services the hosts are
            : offering), and TCP/IP fingerprinting (remote host operating system
            : identification). Nmap also offers flexible target and port
            : specification, decoy scanning, determination of TCP sequence
            : predictability characteristics, reverse-identd scanning, and more.
            : In addition to the classic command-line nmap executable, the Nmap
            : suite includes a flexible data transfer, redirection, and
            : debugging tool (netcat utility ncat), a utility for comparing scan
            : results (ndiff), and a packet generation and response analysis
            : tool (nping).

yum を使用したソフトウェアのインストール

yum install package-name コマンドを使用してパッケージをインストールできます。

# yum install -y nmap

[root@centos ~]# yum install nmap
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: ftp.jaist.ac.jp
 * extras: mirror.nbrc.ac.in
 * nux-dextop: mirror.li.nux.ro
 * updates: mirrors.vinahost.vn
Resolving Dependencies
--> Running transaction check
---> Package nmap.x86_64 2:6.40-7.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================
 Package                          Arch                               Version                                   Repository                        Size
======================================================================================================================================================
Installing:
 nmap                             x86_64                             2:6.40-7.el7                              base                             4.0 M

Transaction Summary
======================================================================================================================================================
Install  1 Package

Total download size: 4.0 M
Installed size: 16 M
Is this ok [y/d/N]: y
Downloading packages:
nmap-6.40-7.el7.x86_64.rpm                                                                                                     | 4.0 MB  00:00:31     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 2:nmap-6.40-7.el7.x86_64                                                                                                           1/1 
  Verifying  : 2:nmap-6.40-7.el7.x86_64                                                                                                           1/1 

Installed:
  nmap.x86_64 2:6.40-7.el7                                                                                                                            

Complete!

デフォルトでは、「yum install」では、パッケージをインストールする前に同意するか拒否するかを尋ねられます。プロンプトを表示せずに yum を自動的にインストールする場合は、-y オプションを使用します。

nmap パッケージを更新することもできます。コマンドを install から update
に変更するだけです。

# yum update -y nmap

yum Remove を使用してパッケージをアンインストールする

[root@centos ~]# yum remove nmap
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package nmap.x86_64 2:6.40-7.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================
 Package                          Arch                               Version                                  Repository                         Size
======================================================================================================================================================
Removing:
 nmap                             x86_64                             2:6.40-7.el7                             @base                              16 M

Transaction Summary
======================================================================================================================================================
Remove  1 Package

Installed size: 16 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : 2:nmap-6.40-7.el7.x86_64                                                                                                           1/1 
  Verifying  : 2:nmap-6.40-7.el7.x86_64                                                                                                           1/1 

Removed:
  nmap.x86_64 2:6.40-7.el7                                                                                                                            

Complete!

Yum list コマンドを使用すると、yum リポジトリ内の利用可能なパッケージを一覧表示できます。

#yum リスト

[root@centos Desktop]# yum list |grep less
java-1.7.0-openjdk-headless.x86_64         1:1.7.0.91-2.6.2.3.el7     @anaconda 
java-1.8.0-openjdk-headless.x86_64         1:1.8.0.65-3.b17.el7       @anaconda 
less.x86_64                                458-9.el7                  @anaconda 
java-1.7.0-openjdk-headless.x86_64         1:1.7.0.95-2.6.4.0.el7_2   updates   
java-1.8.0-openjdk-headless.x86_64         1:1.8.0.71-2.b15.el7_2     updates   
java-1.8.0-openjdk-headless-debug.x86_64   1:1.8.0.71-2.b15.el7_2     updates   
lesstif.x86_64                             0.95.2-8.el7               epel      
lesstif-clients.x86_64                     0.95.2-8.el7               epel      
lesstif-devel.x86_64                       0.95.2-8.el7               epel      
lesstif-mwm.x86_64                         0.95.2-8.el7               epel      
libreoffice-headless.x86_64                1:4.3.7.2-5.el7_2.1        updates   
nodejs-less.noarch                         1.7.0-2.el7                epel      
php-lessphp.noarch                         0.5.0-2.el7                epel      
python-blessings.noarch                    1.5-3.el7                  epel      
python-lesscpy.noarch                      0.9j-4.el7                 epel      
wireless-tools.x86_64                      1:29-13.el7                epel      
wireless-tools-debuginfo.x86_64            1:29-9.1.el7.nux           nux-dextop
wireless-tools-devel.x86_64                1:29-13.el7                epel

サーバーにどのパッケージがインストールされているかを確認したい場合は、代わりに yum list installs コマンドを使用できます。

#yum リストがインストールされました

[root@centos Desktop]# yum list installed |grep less
java-1.7.0-openjdk-headless.x86_64    1:1.7.0.91-2.6.2.3.el7         @anaconda  
java-1.8.0-openjdk-headless.x86_64    1:1.8.0.65-3.b17.el7           @anaconda  
less.x86_64                           458-9.el7                      @anaconda  

yum list コマンドは、引数として特定のパッケージの名前を指定して使用すると便利です。

Linux マシンで特定のサービスを管理する場合、多くの場合、複数の異なるパッケージが必要になります。たとえば、サーバーを Web サーバーとして構成している場合、多くの場合、PHP などの追加パッケージもインストールする必要があります。特定の機能に属するすべての個別のパッケージを検索してインストールする代わりに、グループをインストールするだけで済みます。これにより、グループに属するすべてのパッケージがインストールされます。

[root@centos ~]# yum group list


Available Groups:
   CIFS file server
   Compatibility Libraries
   Console Internet Tools
   Desktop
   Desktop Platform
   Desktop Platform Development
   Development Tools
   Eclipse
   Educational Software
   Electronic Lab
   FCoE Storage Client
   Fedora Packager
   General Purpose Desktop
   Graphical Administration Tools
   Haskell
   Legacy UNIX Compatibility
   Messaging Client Support
   Messaging Server Support
   Milkymist
   MySQL Database client
   MySQL Database server
   NFS file server
   Network Storage Server
   SNMP Support
   Scientific Support
   Security Tools
   Server Platform
   Server Platform Development
   Smart Card Support
   Storage Availability Tools
   System Administration Tools
   System Management
   TeX support
   TurboGears application framework
   Virtualization
   Web-Based Enterprise Management
   Xfce
   iSCSI Storage Client
Done
yum groupinstall "<group name>"

groupinstall オプションを使用して、特定のソフトウェア グループをインストールできます。

yum groupinstall を使用してソフトウェア グループをすでにインストールしており、それを最新バージョンにアップグレードしたい場合は、「yum groupupdate」を使用します。次のコマンドを使用して削除できます。 yum グループ削除

ヤムリポリスト

すべての yum コマンドは 1 つ以上の yum リポジトリに対して実行されます。システムに設定されているすべての yum リポジトリを表示するには、以下に示すように「yum repolist」を実行します。

以下では、有効なリポジトリのみが表示されます。

[root@centos Desktop]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: ftp.jaist.ac.jp
 * extras: mirror.nbrc.ac.in
 * nux-dextop: mirror.li.nux.ro
 * updates: mirror.nbrc.ac.in
repo id                repo name                                         status
!adobe-linux-x86_64    Adobe Systems Incorporated                            2
!base/7/x86_64         CentOS-7 - Base                                   9,007
!bsrtech               bsrtech                                           1,164
*!epel/x86_64          Extra Packages for Enterprise Linux 7 - x86_64    9,627
!extras/7/x86_64       CentOS-7 - Extras                                   226
!nux-dextop/x86_64     Nux.Ro RPMs for general desktop use               2,360
!updates/7/x86_64      CentOS-7 - Updates                                  919
repolist: 23,305

ヤムが提供する

特定のファイルがどのパッケージに属しているかを知りたい場合は、「yum Provides」を使用します。たとえば、/etc/httpd/conf/httpd.conf ファイルを含むパッケージの名前を知りたい場合は、次の手順を実行します。

[root@centos Desktop]# yum provides /etc/httpd/conf/httpd.conf
Loaded plugins: fastestmirror, langpacks

httpd-2.4.6-40.el7.centos.x86_64 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf



httpd-2.4.6-40.el7.centos.x86_64 : Apache HTTP Server
Repo        : @anaconda
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

おいしいクリーン

「yum clean all」コマンドは、キャッシュされたパッケージだけでなく、ヘッダーも削除します。古いヘッダーがある場合に備えて、すべてを完全にフラッシュするために時々実行しますが、これもスペースを占有する可能性があります。

おいしいクリーンなパッケージ
キャッシュされたパッケージをシステムから削除します。パックに注意してください-
年齢はダウンロード後に自動的に削除されません。

きれいなヘッダー
yum が
を決定するために使用するすべてのファイルを削除します。 パッケージをリモートで利用できるようになります。このオプションを使用すると、強制的に
yum を実行すると、次回実行時にすべてのヘッダーがダウンロードされます。

すべてきれいにしてください
上記のように yum clean パッケージと yum clean ヘッダーを実行します。」

[root@centos Desktop]# yum clean
Loaded plugins: fastestmirror, langpacks
Error: clean requires an option: headers, packages, metadata, dbcache, plugins
, expire-cache, rpmdb, all
[root@centos Desktop]# yum clean all
Loaded plugins: fastestmirror, langpacks
Cleaning repos: adobe-linux-x86_64 base bsrtech epel extras nux-dextop updates
Cleaning up everything
Cleaning up list of fastest mirrors

おいしい歴史

yum を使用している間、すべてのアクションが /var/log/yum.log ファイルに記録されます。 yum History コマンドを使用すると、発行されたすべてのアクションの概要を取得できます。

[root@centos ~]# yum history
Loaded plugins: fastestmirror, langpacks
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    10 | root <root>              | 2016-03-16 15:32 | Erase          |    1   
     9 | root <root>              | 2016-03-16 15:23 | Install        |    1   
     8 | root <root>              | 2016-03-16 14:52 | Install        |    1   
     7 | root <root>              | 2016-03-14 13:49 | Install        |    1   
     6 | root <root>              | 2016-03-14 13:48 | Install        |   37   
     5 | root <root>              | 2016-03-14 13:25 | Install        |    1   
     4 | root <root>              | 2016-03-14 13:25 | Update         |    1   
     3 | root <root>              | 2016-03-14 13:17 | Install        |    1  
     2 | root <root>              | 2016-03-14 12:47 | Install        |    1  
     1 | System <unset>           | 2016-03-14 11:17 | Install        | 1939   
history list

履歴ファイルから、特定のアクションを元に戻すことができます。 yum 履歴の取り消しを使用し、その後に元に戻したい特定のアクション (上記の出力では ID として示されています) の番号を入力します。

システムでは、次の 2 つのパッケージ データベースが維持されます。
yum データベースと
rpm データベース。
yum を使用してパッケージをインストールする場合、最初に yum データベースが更新され、その後、更新された情報が RPM データベースに同期されます。 rpm コマンドを使用してパッケージをインストールする場合、更新は rpm データベースにのみ書き込まれ、yum データベースには更新されません。これが、ソフトウェア パッケージのインストールに rpm コマンドを使用しない重要な理由です。

関連記事: