GNU/Linux >> Linux の 問題 >  >> Linux

RHELベースのディストリビューションでパッケージを管理する

この記事では、yumを使用してパッケージを管理する方法について説明します RedHat®EnterpriseLinux®ベースのディストリビューションで。

前提条件

次の前提条件が必要です。

  • Secure Shell(SSH)の基本的な理解
  • サーバーへのsudoまたは管理アクセス
  • Red Hat EnterpriseLinux6以降またはCentOS6以降を実行しているクラウドサーバー

Linuxでのパッケージ管理

パッケージ管理という用語 Linuxでは、Linuxサーバーでのソフトウェアのインストール、削除、または更新について説明します。パッケージは、サーバーにソフトウェアをインストールするソースコードを使用して構築されます。パッケージは、ソースから各コンポーネントをインストールするのではなく、簡単にインストールできるようにコンパイルされています。

RHELディストリビューションのパッケージツール

RHEL®ベースのディストリビューションには、次の2つの形式のパッケージ管理が含まれます。

  • rpm は、情報のインストール、削除、収集、およびRHELベースのサーバーにインストールするパッケージの構築に使用される低レベルのツールと見なされます。

  • yum rpmと同じ機能を持つ高レベルのツールと見なされます また、依存関係を解決して、 .rpmをよりスムーズにインストールできるようにします。 パッケージ。

:Rackspaceはソースからのパッケージのインストールをサポートしていません。

yumの使用

yum ツールは、サーバーにソフトウェアをインストールして管理するための主要なツールです。

情報を収集する

yumの元となるリポジトリを表示するには パッケージをプルするには、次のコマンドを実行します:

yum repolist

このコマンドは、サーバーで使用可能なリポジトリを一覧表示します。

# yum repolist
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
repo id                                           repo name                                                                    status
!drivesrvr                                        drivesrvr                                                                        20
epel/x86_64                                       Extra Packages for Enterprise Linux 7 - x86_64                               13,314
ius/x86_64                                        IUS for Enterprise Linux 7 - x86_64                                             609
rackspace                                         Rackspace Monitoring                                                              1
rhel-x86_64-server-7                              Red Hat Enterprise Linux Server (v. 7 for 64-bit x86_64)                     29,118
rhel-x86_64-server-optional-7                     RHEL Server Optional (v. 7 64-bit x86_64)                                    21,287
repolist: 64,3

リポジトリからパッケージを検索するには、次のコマンドを使用します。

yum search <package name>

:このコマンドは、<package name>のすべてのインスタンスを検索します あなたのリポジトリで利用可能です。このリストは非常に冗長になる可能性があるため、パッケージのフルネームを知っている場合は、それを使用して検索を絞り込みます。

パッケージの詳細を取得するには、次のコマンドを使用します。

yum info <package name> 

このコマンドは、パッケージに関する情報を提供します。 httpdを検索する例を次に示します。 パッケージ:

# yum info httpd  
Available Packages
Name         : httpd
Version      : 2.4.43
Release      : 1.fc31
Architecture : x86_64
Size         : 1.4 M
Source       : httpd-2.4.43-1.fc31.src.rpm
Repository   : updates
Summary      : Apache HTTP Server
URL          : https://httpd.apache.org/
License      : ASL 2.0
Description  : The Apache HTTP Server is a powerful, efficient, and extensible web server.

現在インストールされているパッケージを表示するには、次のコマンドを実行します。

yum list installed

このコマンドは、システムにインストールされているすべてのパッケージを一覧表示します。このリストは広範囲にわたる可能性があります。探しているパッケージがわかっている場合は、grepを使用できます。 次の例に示すように検索をフィルタリングするには:

yum list installed | grep httpd

このコマンドは、より管理しやすいリストを提供します:

# yum list installed | grep httpd
httpd.x86_64                       2.4.6-93.el7            @rhel-x86_64-server-7
httpd-tools.x86_64                 2.4.6-93.el7            @rhel-x86_64-server-
パッケージをインストール

パッケージをインストールするには、次のコマンドを使用します。

yum install <package>

このコマンドは、リポジトリにクエリを実行し、インストールするパッケージをプルダウンします。インストールプロセス中に、yum インストールしているパッケージに関連付けられている依存関係を解決しようとします。 yumの場合 依存関係を解決できます。出力が表示され、インストールの確認を求められます。次の例は、依存関係の解決を示しています。

# yum install httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
drivesrvr                                              | 2.9 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================
 Package                  Arch                Version                        Repository                           Size
=========================================================================================================================
Installing:
 httpd                 x86_64                2.4.6-93.el7                   rhel-x86_64-server-7                  1.2 M

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

Total download size: 1.2 M
Installed size: 3.7 M
Is this ok [y/d/N]:

httpdをインストールする場合 、パッケージのインストールに必要な他の依存関係はありません。他の状況では、インストールにyumという追加の依存関係が必要になる場合があります。 インストールする必要があります。yumの場合 依存関係を解決できない場合、出力にエラーが一覧表示されます。インストールを続行するには、これらの依存関係を解決する必要があります。

パッケージを更新

インストールされているパッケージを更新するには、次のコマンドを実行します。

yum update <package>

このコマンドは、可能であれば、指定されたパッケージの更新をリポジトリで検索します。

利用可能な更新がある場合、コマンドは変更を表示し、確認を要求します。それ以外の場合は、何もすることがないことを通知します:

# yum update httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
drivesrvr                                                                                     | 2.9 kB  00:00:00     
No packages marked for update 

次のコマンドを使用して、システム上のすべてのパッケージの更新をトリガーすることもできます。

yum update

このコマンドは、サーバーにインストールされているパッケージの更新をリポジトリに照会します。

重要 :このプロセスは、システム上のすべてのパッケージを更新しようとします。変更により、更新の結果としてアプリケーションに予期しない問題が発生する可能性があるため、続行する前に環境を確認してください。

パッケージを削除

インストールされているパッケージを削除するには、次のコマンドを使用します。

yum remove <package name>

このコマンドは、インストールされているパッケージをチェックし、出力を提供し、変更を確認するように求めます。

# yum remove httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be erased
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_php73-7.3.18-1.el7.ius.x86_64
--> Running transaction check
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be erased
--> Finished Dependency Resolution
drivesrvr                                                                                      | 2.9 kB  00:00:00     

Dependencies Resolved

======================================================================================================================
 Package                    Arch              Version                        Repository                        Size
======================================================================================================================
Removing:
 httpd                      x86_64            2.4.6-93.el7                  @rhel-x86_64-server-7             3.7 M
Removing for dependencies:
 mod_php73                  x86_64            7.3.18-1.el7.ius              @ius                              4.8 M

Transaction Summary
=======================================================================================================================
Remove  1 Package (+1 Dependent package)

Installed size: 8.6 M
Is this ok [y/N]:

httpdを削除した場合 、yum mod_php73も削除します パッケージ。httpdに依存します 。パッケージを削除しても、サーバーの他の部分に悪影響が及ばないことを確認してください。

履歴を確認して変更を元に戻す

場合によっては、yumで実行されたアクションを確認する必要があります ツール。

yumの履歴を表示するには コマンドの使用法については、次のコマンドを実行してください:

yum history

このコマンドは、yumによって行われたトランザクションを示す番号付きの出力を提供します 。

# yum history
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    19 |  <rack>                  | 2020-06-09 14:58 | Install        |    2   
    18 |  <rack>                  | 2020-06-09 14:57 | Erase          |    2   
    17 |  <rack>                  | 2020-06-09 14:56 | Install        |    1   
    16 |  <rack>                  | 2020-06-09 14:55 | Install        |    4   
    15 |  <rack>                  | 2020-06-09 14:55 | Erase          |    2   
    14 |  <rack>                  | 2020-06-09 14:54 | Erase          |    1   
    13 |  <rack>                  | 2020-06-09 14:50 | Install        |    1   
    12 |  <rack>                  | 2020-06-09 14:49 | Erase          |    2   
    11 | root <root>              | 2020-06-09 10:14 | I, U           |    2   
    10 | root <root>              | 2020-06-09 10:14 | Install        |    2 EE
     9 |  <rack>                  | 2020-06-09 10:14 | Install        |    4   
     8 | root <root>              | 2020-06-09 10:14 | Install        |    1 EE
     7 |  <rack>                  | 2020-06-09 10:14 | Install        |    5   
     6 | root <root>              | 2020-06-09 10:13 | Install        |    4   
     5 | root <root>              | 2020-06-09 10:13 | I, U           |   18  <
     4 | System <unset>           | 2020-01-15 13:02 | Install        |    1 > 
     3 | System <unset>           | 2020-01-15 13:02 | Install        |    1   
     2 | System <unset>           | 2020-01-15 13:02 | Erase          |    1   
     1 | System <unset>           | 2020-01-15 12:55 | Install        |  578   
history list

このリストには、変更されたパッケージの日付、アクション、および番号のみが記載されています。特定のアクションに関する詳細情報を取得するには、IDをクエリします。 左の列から。次のコマンドを使用して、アクションに関する情報を表示します。

   yum history info <ID>

このコマンドを実行すると、このトランザクション中に発生したことに関する詳細情報が提供されます。

# yum history info 18
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Transaction ID : 18
Begin time     : Tue Jun  9 14:57:12 2020
Begin rpmdb    : 609:12b0c5cdd97ae2f0a77a06403b7b16f3d404403c
End time       :            14:57:13 2020 (1 seconds)
End rpmdb      : 607:784f813e94127f71465085cd9437377514697243
User           :  <rack>
Return-Code    : Success
Command Line   : remove httpd
Transaction performed with:
    Installed     rpm-4.11.3-40.el7.x86_64                    @anaconda/7.7
    Installed     subscription-manager-1.24.13-3.el7_7.x86_64 @base/7.7
    Installed     yum-3.4.3-167.el7.noarch                    @rhel-x86_64-server-7
    Installed     yum-rhn-plugin-2.0.1-10.el7.noarch          @anaconda/7.7
Packages Altered:
    Erase httpd-2.4.6-93.el7.x86_64         @rhel-x86_64-server-7
    Erase mod_php73-7.3.18-1.el7.ius.x86_64 @ius
history info

変更を元に戻す必要がある場合は、次のコマンドを使用する必要があります。

yum history undo <ID>

このコマンドは、このアクションの変更内容に関する情報を提供し、確認を求めます。

# yum history undo 13
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Undoing transaction 13, from Tue Jun  9 14:50:18 2020
    Install httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be erased
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_php73-7.3.18-1.el7.ius.x86_64
--> Running transaction check
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be erased
--> Finished Dependency Resolution
drivesrvr                                                                                        | 2.9 kB  00:00:00     

Dependencies Resolved

======================================================================================================================
 Package                    Arch               Version                        Repository                       Size
======================================================================================================================
Removing:
 httpd                      x86_64           2.4.6-93.el7                 @rhel-x86_64-server-7                3.7 M
Removing for dependencies:
 mod_php73                  x86_64           7.3.18-1.el7.ius             @ius                                 4.8 M

Transaction Summary
======================================================================================================================
Remove  1 Package (+1 Dependent package)

Installed size: 8.6 M
Is this ok [y/N]:

すべての変更を特定のトランザクションにロールバックする場合は、次のコマンドを使用します。

yum history rollback <ID>

このコマンドは、このアクションの変更内容を示し、確認を求めます。ロールバックする距離に応じて、このリストは広範囲に及ぶ可能性があります。出力は次の例のようになります:

# yum history rollback 17
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Rollback to transaction 17, from Tue Jun  9 14:56:03 2020
  Undoing the following transactions: 18, 19
    Reinstall httpd-2.4.6-93.el7.x86_64         @rhel-x86_64-server-7
    Reinstall mod_php73-7.3.18-1.el7.ius.x86_64 @ius
drivesrvr                                                                             | 2.9 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be reinstalled
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be reinstalled
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================
 Package                 Arch               Version                        Repository                         Size
=====================================================================================================================
Reinstalling:
 httpd                  x86_64             2.4.6-93.el7                   rhel-x86_64-server-7                1.2 M
 mod_php73              x86_64             7.3.18-1.el7.ius               ius                                 1.6 M

Transaction Summary
=====================================================================================================================
Reinstall  2 Packages

Total download size: 2.8 M
Installed size: 8.6 M
Is this ok [y/d/N]:
詳細情報

yum内で利用できるオプションは他にもあります 。 Linux manでさまざまなフラグとオプションを表示できます yumのページ このリンク:yummanページ

yum コマンドはシステムに変更を加えます。パッケージをインストールまたは更新する前に、環境をテストしたことを常に確認する必要があります。可能であれば、更新後の問題が発生した場合にロールバックできる使用可能なイメージがあることを確認してください。


Linux
  1. Openbsd 5.1でダウンロードしたパッケージを確認する方法は?

  2. Ubuntu/Debianでパッケージを管理するためのAptgetコマンドの例

  3. yum 設定の初心者向けガイド

  1. Npmを使用してNodeJSパッケージを管理する方法

  2. CentOS7にソフトウェアをインストールして管理する方法

  3. Debian でフリーでないパッケージを有効にするにはどうすればよいですか?

  1. SUSE Linux でパッケージを管理する 20 の Zypper コマンドの例

  2. パッケージをインストール、削除、およびアップグレードするための YUM コマンドの例

  3. インストールしたすべてのパッケージを完全に削除しますか?