The "XXXXXXX" file could not be downloaded: failed to open stream: Cannot assign reques ted address  対処方法

1.S3のライブラリをappコンテナ内でインストールしようと下記コマンドを実行した所エラーが発生！

```
/work# composer require league/flysystem-aws-s3-v3
```

```
//エラー
The "http://repo.packagist.org/p/phpunit/php-invoker%24d51629773da6aa4144adc03bb9c518ddab3a46018cb3467f76ed7d0b00a3e417.json" file could not be downloaded: failed to open stream: Cannot assign reques ted address  
```

2.下記コマンドでエラーの原因調査！
すると、2箇所エラーらしき箇所を発見！
何かコマンドを実行するよう指示が出ました。

```
/work# composer diag
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys: FAIL //ここがおかしい！
Missing pubkey for tags verification //ここがおかしい！
Missing pubkey for dev verification //ここがおかしい！
Run composer self-update --update-keys to set them up //コマンド実行の指示！
Checking composer version: You are not running the latest stable version, run `composer self-update` to update (1.10.20 => 2.1.9)
Composer version: 1.10.20
PHP version: 7.4.15
PHP binary path: /usr/local/bin/php
OpenSSL version: OpenSSL 1.1.1d  10 Sep 2019
```

3.指示通りコマンド実行
どうやらコマンドを実行しろと指示が出てるようなので、一旦メッセージについて検索。
するとこちらの記事を発見したので、参考にコマンドを実行！
https://teratail.com/questions/135212

```
# composer self-update --update-keys
Open https://composer.github.io/pubkeys.html to find the latest keys
Enter Dev / Snapshot Public Key (including lines with -----):
```

コマンドを実行するとここまで表示される。どうやらKeyを入力しろと書かれているっぽい？

次に、参考サイトに記載されている通り、こちらのサイト（https://composer.github.io/pubkeys.html） の「Dev / Snapshot Public Key」の下の白線欄の長い文をコピペしてenterを押す！

```
/work# composer self-update --update-keys
Open https://composer.github.io/pubkeys.html to find the latest keys
Enter Dev / Snapshot Public Key (including lines with -----): -----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnBDHjZS6e0ZMoK3xTD7f
FNCzlXjX/Aie2dit8QXA03pSrOTbaMnxON3hUL47Lz3g1SC6YJEMVHr0zYq4elWi
i3ecFEgzLcj+pZM5X6qWu2Ozz4vWx3JYo1/a/HYdOuW9e3lwS8VtS0AVJA+U8X0A
hZnBmGpltHhO8hPKHgkJtkTUxCheTcbqn4wGHl8Z2SediDcPTLwqezWKUfrYzu1f
o/j3WFwFs6GtK4wdYtiXr+yspBZHO3y1udf8eFFGcb2V3EaLOrtfur6XQVizjOuk
8lw5zzse1Qp/klHqbDRsjSzJ6iL6F4aynBc6Euqt/8ccNAIz0rLjLhOraeyj4eNn
8iokwMKiXpcrQLTKH+RH1JCuOVxQ436bJwbSsp1VwiqftPQieN+tzqy+EiHJJmGf
TBAbWcncicCk9q2md+AmhNbvHO4PWbbz9TzC7HJb460jyWeuMEvw3gNIpEo2jYa9
pMV6cVqnSa+wOc0D7pC9a6bne0bvLcm3S+w6I5iDB3lZsb3A9UtRiSP7aGSo7D72
8tC8+cIgZcI7k9vjvOqH+d7sdOU2yPCnRY6wFh62/g8bDnUpr56nZN1G89GwM4d4
r/TU7BQQIzsZgAiqOGXvVklIgAMiV0iucgf3rNBLjjeNEwNSTTG9F0CtQ+7JLwaE
wSEuAuRm+pRqi8BRnQ/GKUcCAwEAAQ==
-----END PUBLIC KEY-----
Stored key with fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E328C AD90147D AFE50952
Enter Tags Public Key (including lines with -----):
```

すると、次は「Tags Public Key」を入力するみたい。
次は先ほどコピペしたサイトに記載されてる「Tags Public Key」の白線欄の長い文をコピペしてenterを押す！

```
Enter Tags Public Key (including lines with -----): -----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0Vi/2K6apCVj76nCnCl2
MQUPdK+A9eqkYBacXo2wQBYmyVlXm2/n/ZsX6pCLYPQTHyr5jXbkQzBw8SKqPdlh
vA7NpbMeNCz7wP/AobvUXM8xQuXKbMDTY2uZ4O7sM+PfGbptKPBGLe8Z8d2sUnTO
bXtX6Lrj13wkRto7st/w/Yp33RHe9SlqkiiS4MsH1jBkcIkEHsRaveZzedUaxY0M
mba0uPhGUInpPzEHwrYqBBEtWvP97t2vtfx8I5qv28kh0Y6t+jnjL1Urid2iuQZf
noCMFIOu4vksK5HxJxxrN0GOmGmwVQjOOtxkwikNiotZGPR4KsVj8NnBrLX7oGuM
nQvGciiu+KoC2r3HDBrpDeBVdOWxDzT5R4iI0KoLzFh2pKqwbY+obNPS2bj+2dgJ
rV3V5Jjry42QOCBN3c88wU1PKftOLj2ECpewY6vnE478IipiEu7EAdK8Zwj2LmTr
RKQUSa9k7ggBkYZWAeO/2Ag0ey3g2bg7eqk+sHEq5ynIXd5lhv6tC5PBdHlWipDK
tl2IxiEnejnOmAzGVivE1YGduYBjN+mjxDVy8KGBrjnz1JPgAvgdwJ2dYw4Rsc/e
TzCFWGk/HM6a4f0IzBWbJ5ot0PIi4amk07IotBXDWwqDiQTwyuGCym5EqWQ2BD95
RGv89BPD+2DLnJysngsvVaUCAwEAAQ==
-----END PUBLIC KEY-----
Stored key with fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB723 4E5D42D0 84A14642
Public keys stored in /composer
```

どうやらこれでkeyの設定ができたみたいです！
では、再度S3ライブラリのインストールを試してみます。

4.再度ライブラリをインストール

```
/work# composer require league/flysystem-aws-s3-v3

[26-Oct-2021 00:24:40 Asia/Tokyo] PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 83886080 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/RuleSet.php on line 90

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 83886080 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/RuleSet.php on line 90

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.root@a2b065cfb628:/work# 
```

すると、次はまた違うエラーが発生！！
エラーについて調べると、こちらのサイト（https://qiita.com/miriwo/items/a5fa25c1d36d00f40ec9） を発見。

どうやら、メモリの容量が足りないと指摘されているみたいです。
参考サイトの通りに対処していきます。

5.メモリ確認
エラーメッセージにこのサイトを見て！とリンクが貼られていたので見てみましょう。
https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors
 リンク先に記載されているコマンドを実行して、現在の割り当てられている設定のメモリを確認します。

```
/work# php -r "echo ini_get('memory_limit').PHP_EOL;"
256M
```
6.php.iniの編集
php.iniファイルで割当メモリ設定を設定できるらしいので編集します！

先ずは、php.iniの場所を確認

```
/work# php --ini | grep "php.ini"
Configuration File (php.ini) Path: /usr/local/etc/php
Loaded Configuration File:         /usr/local/etc/php/php.ini
```

次にviモードでphp.iniを開きます。

```
/work# sudo vi /usr/local/etc/php/php.ini
bash: sudo: command not found
```

あれ、sudoコマンドが実行できない？
ここでまたエラーについて調べます。
すると、こちらのサイトを発見。
https://qiita.com/TK_bone/items/46542a2b94f86a7bc740

7.ディストリビューションを調べる
ディストリビューション?って何？となりましたが、とりあえずサイトに記載されている通りにコマンドを実行していきます。

```
/work# cat /etc/debian_version
10.8
```

8.sudoコマンドインストール
次にsudoコマンドを使えるようにするためインストールします。

```
/work# apt update 
Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:2 http://security.debian.org/debian-security buster/updates/main amd64 Packages [309 kB]
Get:3 http://deb.debian.org/debian buster InRelease [122 kB]
Get:4 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7906 kB]
Get:6 http://deb.debian.org/debian buster-updates/main amd64 Packages [15.2 kB]
Fetched 8469 kB in 3s (2597 kB/s)                     
Reading package lists... Done
Building dependency tree       
Reading state information... Done
30 packages can be upgraded. Run 'apt list --upgradable' to see them.
```
```
/work# apt install sudo
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  sudo
0 upgraded, 1 newly installed, 0 to remove and 30 not upgraded.
Need to get 1244 kB of archives.
After this operation, 3882 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 sudo amd64 1.8.27-1+deb10u3 [1244 kB]
Fetched 1244 kB in 0s (4715 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package sudo.
(Reading database ... 14634 files and directories currently installed.)
Preparing to unpack .../sudo_1.8.27-1+deb10u3_amd64.deb ...
Unpacking sudo (1.8.27-1+deb10u3) ...
Setting up sudo (1.8.27-1+deb10u3) ...
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.
```

9.viインストール
よし、今度はsudoコマンドが使えるようになったので再チャレンジ！

```
/work# sudo vi /usr/local/etc/php/php.ini
sudo: vi: command not found
```

あれ、次はviコマンドが使えないとエラーが出ました？！

こちらもサイトに記載されている通りにvimをインストールしていきます。
https://qiita.com/m-m00/items/a042bf9d5c7c85a64895

```
/work# vi /usr/local/etc/php/php.ini
bash: vi: command not found
root@a2b065cfb628:/work# sudo vi /etc/php.ini
sudo: vi: command not found
root@a2b065cfb628:/work# apt-get update
Hit:1 http://security.debian.org/debian-security buster/updates InRelease
Hit:2 http://deb.debian.org/debian buster InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Reading package lists... Done
```

```
/work# apt-get install vim
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libgpm2 vim-common vim-runtime xxd
Suggested packages:
  gpm ctags vim-doc vim-scripts
The following NEW packages will be installed:
  libgpm2 vim vim-common vim-runtime xxd
0 upgraded, 5 newly installed, 0 to remove and 30 not upgraded.
Need to get 7425 kB of archives.
After this operation, 33.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
```

すると、インストール時に何やら質問がきました。
33.8MB使うけどいいか？と聞かれてるみたいなので、Yを入力してenterを押します。
すると、インストールが完了しました。

10.再度php.iniを編集
これで恐らくphp.iniが開けると思うので再チャレンジします。

```
/work# sudo vi /usr/local/etc/php/php.ini
```

すると、今度は無事に開けましたね！
では、下記の手順で編集します。

①viを押してinsertに切り替え。
②下記の部分を-1に変更

```
memory_limit = -1
```

③escボタンを押して入力できないように切り替え。
④:wqを入力してenterで変更内容を反映して保存。

11.再度S3ライブラリをインストール
再度ライブラリをインストールしますが、最初に叩いたコマンドに誤りがあったため、下記のように叩いてインストールします。

```
/work# composer require league/flysystem-aws-s3-v3
↓
/work# composer require league/flysystem-aws-s3-v3:"^1.0"
```

```
/work# composer require league/flysystem-aws-s3-v3:"^1.0"
Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/
./composer.json has been updated
Loading composer repositories with package information
Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/
Updating dependencies (including require-dev)
Killed
```

すると、インストールが上手くいくと思いきや、killedになってしまいました。
どうやら今度はdocker側のメモリが足りないことでインストールできなかったみたいです。
なかなか上手くいきませんね。。。

下記サイトを見つけたので、記載されている通りに対処してみます。
サイトを元にメモリの容量を増やしてください。
https://qiita.com/ikeyansaza/items/c231dc0f411336803f4d

12.再度S3ライブラリをインストール
すると今度はインストールが上手くいったかと思います！

```
Package manifest generated successfully.
80 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
```

やっとインストールできましたね！
ここまで大分長かったですがとりあえずインストールできて良かったです！