

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AL2 インスタンスでソフトウェアを管理する
<a name="managing-software"></a>

Amazon Linux のベースのディストリビューションには、基本的なサーバー操作に必要なソフトウェアパッケージとユーティリティが含まれています。

この情報は AL2 に適用されます。AL2023 の詳細については、Amazon Linux 2[AL2023の「AL2023 でのパッケージとオペレーティングシステムの更新の管理](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html)」を参照してください。 **

ソフトウェアは、最新の状態に維持することが重要です。Linux ディストリビューションの多くのパッケージは頻繁に更新されます。これにより、バグが修正され、機能が追加されて、セキュリティ上の弱点に対する防御措置が行われます。詳細については、「[AL2 インスタンスのインスタンスソフトウェアを更新する](install-updates.md)」を参照してください。

デフォルトでは、AL2 インスタンスは、次のリポジトリを有効にして起動します。
+ `amzn2-core`
+ `amzn2extra-docker`

これらのリポジトリには、 によって更新される多くのパッケージがありますが AWS、インストールするパッケージが別のリポジトリに含まれている可能性があります。詳細については、「[AL2 インスタンスにリポジトリを追加する](add-repositories.md)」を参照してください。有効なリポジトリでパッケージを検索してインストールする方法については、「[AL2 インスタンスでソフトウェアパッケージを検索してインストールする](find-install-software.md)」を参照してください。

リポジトリに保管されているソフトウェアパッケージで、すべてのソフトウェアが利用できるわけではありません。一部のソフトウェアは、そのソースコードからインスタンスでコンパイルする必要があります。詳細については、「[AL2 インスタンスでソフトウェアをコンパイルする準備をする](compile-software.md)」を参照してください。

AL2 インスタンスは、yum パッケージマネージャーを使用してソフトウェアを管理します。yum パッケージマネージャはソフトウェアをインストール、削除、更新し、各パッケージのすべての依存関係を管理できます。

**Topics**
+ [AL2 インスタンスのインスタンスソフトウェアを更新する](install-updates.md)
+ [AL2 インスタンスにリポジトリを追加する](add-repositories.md)
+ [AL2 インスタンスでソフトウェアパッケージを検索してインストールする](find-install-software.md)
+ [AL2 インスタンスでソフトウェアをコンパイルする準備をする](compile-software.md)

# AL2 インスタンスのインスタンスソフトウェアを更新する
<a name="install-updates"></a>

ソフトウェアは、最新の状態に維持することが重要です。Linux ディストリビューションのパッケージは頻繁に更新されます。これにより、バグが修正され、機能が追加されて、セキュリティ上の弱点に対する防御措置が行われます。最初に Amazon Linux インスタンスを起動して接続する際、セキュリティ上の目的から、ソフトウェアパッケージを更新するように促すメッセージが表示される場合があります。このセクションでは、システム全体またはパッケージを 1 つだけ更新する方法を紹介します。

この情報は AL2 に適用されます。AL2023 の詳細については、Amazon Linux 2[AL2023の「AL2023 でのパッケージとオペレーティングシステムの更新の管理](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html)」を参照してください。 **

AL2 の変更と更新の詳細については、[AL2 リリースノート](https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html)」を参照してください。

AL2023 への変更と更新の詳細については、「[AL2023 リリースノート](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html)」を参照してください。

**重要**  
Amazon Linux 2 AMI を使用する EC2 インスタンスを IPv6 専用サブネットに起動した場合は、インスタンスに接続して `sudo amazon-linux-https disable` を実行する必要があります。これにより、AL2 インスタンスが http パッチサービスを使用して、IPv6 経由で S3 の yum リポジトリに接続できるようになります。

**AL2 インスタンスのすべてのパッケージを更新するには**

1. (オプション) シェルウィンドウで **screen** セッションを開始します。時折、ネットワークが遮断され、インスタンスへの SSH 接続が切断されることがあります。この状態が長時間におよぶソフトウェア更新中に発生した場合、インスタンスは混乱した状態になりますが、その復元は可能です。**screen** セッションを開始しておけば、接続が遮断された場合でも更新を続行でき、後で問題なくセッションに再接続できます。

   1. セッションを開始するには **screen** コマンドを実行します。

      ```
      [ec2-user ~]$ screen
      ```

   1. セッションが中断された場合、インスタンスにログインし直し、利用できる画面を表示します。

      ```
      [ec2-user ~]$ screen -ls
      There is a screen on:
      	17793.pts-0.ip-12-34-56-78	(Detached)
      1 Socket in /var/run/screen/S-ec2-user.
      ```

   1. **screen -r** コマンドと前のコマンドのプロセス ID を使用して、画面に再接続します。

      ```
      [ec2-user ~]$ screen -r 17793
      ```

   1. **screen** の使用が終わったら、**exit** コマンドを使用してセッションを閉じます。

      ```
      [ec2-user ~]$ exit
      [screen is terminating]
      ```

1. **yum update** コマンドを実行します。オプションで、`--security` フラグを追加すれば、セキュリティ更新のみを適用できます。

   ```
   [ec2-user ~]$ sudo yum update
   ```

1. 表示されたパッケージを確認したら、「**y**」と入力して Enter キーを押し、この更新を受け入れます。システムのパッケージをすべて更新するには数分かかります。実行中、**yum** 出力には更新のステータスが表示されます。

1. (オプション) [インスタンスを再起動](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html)して、更新から最新のパッケージとライブラリを使用していることを確認します。カーネルの更新は、再起動が発生するまでロードされません。`glibc` ライブラリを更新した後も再起動が必要です。サービスを制御する更新の場合は、更新を取得するにはサービスの再起動で十分かもしれませんが、システムを再起動することで、それ以前のすべてのパッケージとライブラリの更新を確実に完了できます。

**AL2 インスタンスで 1 つのパッケージを更新するには**

システム全体ではなく、1 つのパッケージ (とその依存関係) を更新するには、この手順を使用します。

1. 更新するパッケージの名前を指定した **yum update** コマンドを実行します。

   ```
   [ec2-user ~]$ sudo yum update openssl
   ```

1. 表示されたパッケージ情報を確認したら、「**y**」と入力して Enter キーを押し、この更新を受け入れます。時折、解決する必要があるパッケージ依存関係ある場合、リストには複数のパッケージがあります。実行中、**yum** 出力には更新のステータスが表示されます。

1. (オプション) [インスタンスを再起動](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html)して、更新から最新のパッケージとライブラリを使用していることを確認します。カーネルの更新は、再起動が発生するまでロードされません。`glibc` ライブラリを更新した後も再起動が必要です。サービスを制御する更新の場合は、更新を取得するにはサービスの再起動で十分かもしれませんが、システムを再起動することで、それ以前のすべてのパッケージとライブラリの更新を確実に完了できます。

# AL2 インスタンスにリポジトリを追加する
<a name="add-repositories"></a>

この情報は AL2 に適用されます。AL2023 の詳細については、「Amazon Linux 2[023 ユーザーガイド」の「AL2023 のバージョニングされたリポジトリによる確定的なアップグレード](https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html)」を参照してください。 **

デフォルトでは、AL2 インスタンスは、次のリポジトリを有効にして起動します。
+ `amzn2-core`
+ `amzn2extra-docker`

これらのリポジトリには、Amazon Web Services が更新するさまざまなパッケージが用意されていますが、別のリポジトリで、インストールしたいパッケージが見つかる可能性もあります。

**yum** で異なるリポジトリからパッケージをインストールには、`/etc/yum.conf` ファイル、または `repository.repo` ディレクトリにあるお客様の `/etc/yum.repos.d` ファイルに、リポジトリ情報を追加する必要があります。これは手動で行えますが、ほとんどの yum リポジトリのリポジトリ URL で、独自の `repository.repo` ファイルが提供されています。

**既にインストールされている yum レポジトリを調べるには**  
次のコマンドで、インストール済みの yum リポジトリを表示します。

```
[ec2-user ~]$ yum repolist all
```

生成される出力には、インストール済みのリポジトリが一覧表示され、それぞれのステータスが報告されます。有効なリポジトリには、そこに含まれているパッケージの数が表示されます。

**yum リポジトリを /etc/yum.repos.d に追加するには**

1. `.repo` ファイルの場所を検索します。場所は、追加しているリポジトリによって異なります。この例では、`.repo` ファイルは、`https://www.example.com/repository.repo` にあります。

1. **yum-config-manager** コマンドを使用してリポジトリを追加します。

   ```
   [ec2-user ~]$ sudo yum-config-manager --add-repo https://www.example.com/repository.repo
   Loaded plugins: priorities, update-motd, upgrade-helper
   adding repo from: https://www.example.com/repository.repo
   grabbing file https://www.example.com/repository.repo to /etc/yum.repos.d/repository.repo
   repository.repo                                      | 4.0 kB     00:00
   repo saved to /etc/yum.repos.d/repository.repo
   ```

リポジトリをインストールしたら、次の手順で説明するように有効にする必要があります。

**yum リポジトリを /etc/yum.repos.d で有効にするには**  
**yum-config-manager** フラグを付けて `--enable repository` コマンドを使用します。次のコマンドを使用すると、Fedora プロジェクトの Extra Packages for Enterprise Linux (EPEL) リポジトリが有効になります。デフォルトでは、このリポジトリは Amazon Linux AMI インスタンスの `/etc/yum.repos.d` にありますが、有効になっていません。

```
[ec2-user ~]$ sudo yum-config-manager --enable epel
```

詳細およびこのパッケージの最新バージョンのダウンロードについては、[https://fedoraproject.org/wiki/EPEL](https://fedoraproject.org/wiki/EPEL) を参照してください。

# AL2 インスタンスでソフトウェアパッケージを検索してインストールする
<a name="find-install-software"></a>

パッケージ管理ツールを使用して、ソフトウェアパッケージを検索してインストールできます。Amazon Linux 2 では、デフォルトのソフトウェアパッケージ管理ツールは ですYUM。AL2023 では、デフォルトのソフトウェアパッケージ管理ツールは DNF です。詳細については、*「Amazon Linux 2023 ユーザーガイド*」の[「パッケージ管理ツール](https://docs.aws.amazon.com/linux/al2023/ug/package-management.html)」を参照してください。

## AL2 インスタンスでソフトウェアパッケージを検索する
<a name="find-software"></a>

**yum search** コマンドを使用すると、設定したリポジトリで利用できるパッケージの説明を検索できます。これは特に、インストールするパッケージの正確な名前がわからない場合に便利です。キーワード検索をコマンドに追加します。複数の単語を検索するには、引用符で検索クエリを囲みます。

```
[ec2-user ~]$ yum search "find"
```

以下は出力の例です。

```
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
============================== N/S matched: find ===============================
findutils.x86_64 : The GNU versions of find utilities (find and xargs)
gedit-plugin-findinfiles.x86_64 : gedit findinfiles plugin
ocaml-findlib-devel.x86_64 : Development files for ocaml-findlib
perl-File-Find-Rule.noarch : Perl module implementing an alternative interface to File::Find
robotfindskitten.x86_64 : A game/zen simulation. You are robot. Your job is to find kitten.
mlocate.x86_64 : An utility for finding files by name
ocaml-findlib.x86_64 : Objective CAML package manager and build helper
perl-Devel-Cycle.noarch : Find memory cycles in objects
perl-Devel-EnforceEncapsulation.noarch : Find access violations to blessed objects
perl-File-Find-Rule-Perl.noarch : Common rules for searching for Perl things
perl-File-HomeDir.noarch : Find your home and other directories on any platform
perl-IPC-Cmd.noarch : Finding and running system commands made easy
perl-Perl-MinimumVersion.noarch : Find a minimum required version of perl for Perl code
texlive-xesearch.noarch : A string finder for XeTeX
valgrind.x86_64 : Tool for finding memory management bugs in programs
valgrind.i686 : Tool for finding memory management bugs in programs
```

引用符で囲まれた複数の単語検索クエリは、正確なクエリに一致する結果のみを返します。予想されたパッケージが表示されない場合、キーワードを 1 つに絞って検索し、結果をスキャンします。キーワードの同義語を試して、検索の幅を広げることもできます。

AL2 のパッケージの詳細については、以下を参照してください。
+ [AL2 Extras ライブラリ](al2-extras.md)
+ [パッケージリポジトリ](ec2.md#package-repository)

## AL2 インスタンスにソフトウェアパッケージをインストールする
<a name="install-software"></a>

AL2 では、yum パッケージ管理ツールは、有効なすべてのリポジトリでさまざまなソフトウェアパッケージを検索し、ソフトウェアのインストールプロセスの依存関係を処理します。AL2023 にソフトウェアパッケージをインストールする方法については、*「Amazon Linux 2023 ユーザーガイド*」の[「パッケージとオペレーティングシステムの更新の管理](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html)」を参照してください。

**リポジトリからパッケージをインストールするには**  
**yum install *package*** コマンドを使用します。この際、*package* はインストールするソフトウェアの名前に置き換えます。例えば、**links** テキストベースウェブブラウザをインストールするには、次のコマンドを入力します。

```
[ec2-user ~]$ sudo yum install links
```

**ダウンロードした RPM パッケージファイルをインストールするには**  
また、**yum install** を使用して、インターネットからダウンロードした RPM パッケージファイルをインストールすることもできます。その場合には、リポジトリのパッケージ名の代わりに、RPM ファイルのパス名をインストールコマンドに追加します。

```
[ec2-user ~]$ sudo yum install my-package.rpm
```

**インストールされているパッケージを一覧表示するには**  
インスタンスにインストールされているパッケージを一覧表示するには、次のコマンドを使用します。

```
[ec2-user ~]$ yum list installed
```

# AL2 インスタンスでソフトウェアをコンパイルする準備をする
<a name="compile-software"></a>

オープンソースのソフトウェアは、事前コンパイルされていないインターネットで使用できます。これらは、パッケージリポジトリからダウンロードできます。入手したソフトウェアパッケージがソースコードであり、自分でコンパイルする必要があると判明することがあります。システムが AL2 および Amazon Linux でソフトウェアをコンパイルできるようにするには、、**make**、 **gcc**などのいくつかの開発ツールをインストールする必要があります**autoconf**。

ソフトウェアのコンパイルはすべての Amazon EC2 インスタンスで必要なタスクではないため、そのようなツールはデフォルトでインストールされていません。ただし、「Development Tools」という名前のパッケージグループで利用でき、**yum groupinstall** コマンドでインスタンスに簡単に追加されます。

```
[ec2-user ~]$ sudo yum groupinstall "Development Tools"
```

ソフトウェアのソースコードパッケージは、多くの場合、tarball と呼ばれる圧縮アーカイブファイルの形で ([https://github.com/](https://github.com/) や [http://sourceforge.net/](https://sourceforge.net/) などのウェブサイトから) ダウンロードできます。通常、これらの tarball には `.tar.gz` というファイル拡張子が付いています。これらのアーカイブは **tar** コマンドで解凍できます。

```
[ec2-user ~]$ tar -xzf software.tar.gz
```

ソースコードパッケージを解凍したら、ソースコードディレクトリで `README` ファイルまたは `INSTALL` ファイルを探します。これらのファイルに、ソースコードのコンパイルとインストールに関する詳細な指示があります。

**Amazon Linux パッケージのソースコードを取得するには**  
Amazon Web Services は、保守管理されているパッケージのソースコードを提供します。**yumdownloader --source** コマンドを使用して、インストールされているパッケージのソースコードをダウンロードできます。

**yumdownloader --source *package*** コマンドを実行して、*package* のソースコードをダウンロードします。例えば、`htop` パッケージのソースコードをダウンロードするには、次のコマンドを入力します。

```
[ec2-user ~]$ yumdownloader --source htop

Loaded plugins: priorities, update-motd, upgrade-helper
Enabling amzn-updates-source repository
Enabling amzn-main-source repository
amzn-main-source                                                                                              | 1.9 kB  00:00:00     
amzn-updates-source                                                                                           | 1.9 kB  00:00:00     
(1/2): amzn-updates-source/latest/primary_db                                                                  |  52 kB  00:00:00     
(2/2): amzn-main-source/latest/primary_db                                                                     | 734 kB  00:00:00     
htop-1.0.1-2.3.amzn1.src.rpm
```

ソース RPM の場所は、コマンドを実行したディレクトリにあります。