Laravel 6 $ composer require laravel/uiを実行するとエラーが発生する

# 目的

- Laravel6 のアプリにユーザ認証機能を付与しようと思い`$ composer require laravel/ui`を実行した時にエラーになった話をまとめる。

# 実施環境

- ハードウェア環境

| 項目 | 情報 |
| --- | --- |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

# 問題までの経緯

1. 下記の記事の方法でDockerにてLaravelの環境を構築した。
    - [先輩に用意してもらったDockerFileを使用してLaravel6の環境を作成した話]()
1. 下記の記事の「ライブラリのインストール」の作業まで実施した。
    - [Docker Laravel6のアプリにユーザ認証機能を付与する]()
1. 下記コマンドを実行してライブラリのインストールを行おうとした。

    ```terminal
    $ composer require laravel/ui
    ```

# 問題

- エラーが発生してライブラリをインストールすることができない。
- エラー内容を下記に記載する。

    ```
    bash-4.2# composer require laravel/ui
    Using version ^2.1 for laravel/ui
    ./composer.json has been updated
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Conclusion: remove laravel/framework v6.18.23
        - Conclusion: don't install laravel/framework v6.18.23
        - laravel/ui 2.x-dev requires illuminate/filesystem ^7.0 -> satisfiable by illuminate/filesystem[7.x-dev, v7.0.0, v7.0.1, v7.0.2, v7.0.3, v7.0.4, v7.0.5, v7.0.6, v7.0.7, v7.0.8, v7.1.0, v7.1.1, v7.1.2, v7.1.3, v7.10.0, v7.10.1, v7.10.2, v7.10.3, v7.11.0, v7.12.0, v7.13.0, v7.14.0, v7.14.1, v7.15.0, v7.16.0, v7.16.1, v7.17.0, v7.17.1, v7.17.2, v7.18.0, v7.2.0, v7.2.1, v7.2.2, v7.3.0, v7.4.0, v7.5.0, v7.5.1, v7.5.2, v7.6.0, v7.6.1, v7.6.2, v7.7.0, v7.7.1, v7.8.0, v7.8.1, v7.9.0, v7.9.1, v7.9.2].
        - laravel/ui v2.1.0 requires illuminate/filesystem ^7.0 -> satisfiable by illuminate/filesystem[7.x-dev, v7.0.0, v7.0.1, v7.0.2, v7.0.3, v7.0.4, v7.0.5, v7.0.6, v7.0.7, v7.0.8, v7.1.0, v7.1.1, v7.1.2, v7.1.3, v7.10.0, v7.10.1, v7.10.2, v7.10.3, v7.11.0, v7.12.0, v7.13.0, v7.14.0, v7.14.1, v7.15.0, v7.16.0, v7.16.1, v7.17.0, v7.17.1, v7.17.2, v7.18.0, v7.2.0, v7.2.1, v7.2.2, v7.3.0, v7.4.0, v7.5.0, v7.5.1, v7.5.2, v7.6.0, v7.6.1, v7.6.2, v7.7.0, v7.7.1, v7.8.0, v7.8.1, v7.9.0, v7.9.1, v7.9.2].
        - don't install illuminate/filesystem 7.x-dev|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.0.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.0.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.0.2|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.0.3|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.0.4|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.0.5|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.0.6|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.0.7|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.0.8|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.1.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.1.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.1.2|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.1.3|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.10.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.10.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.10.2|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.10.3|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.11.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.12.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.13.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.14.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.14.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.15.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.16.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.16.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.17.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.17.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.17.2|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.18.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.2.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.2.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.2.2|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.3.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.4.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.5.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.5.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.5.2|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.6.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.6.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.6.2|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.7.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.7.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.8.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.8.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.9.0|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.9.1|don't install laravel/framework v6.18.23
        - don't install illuminate/filesystem v7.9.2|don't install laravel/framework v6.18.23
        - Installation request for laravel/framework (locked at v6.18.23, required as ^6.2) -> satisfiable by laravel/framework[v6.18.23].
        - Installation request for laravel/ui ^2.1 -> satisfiable by laravel/ui[2.x-dev, v2.1.0].
    ```

# 問題解決までの経緯

1. 先のエラーの内容を和訳した。下記に和訳したエラー内容を記載する。

    ```
    ./composer.jsonが更新されました
    パッケージ情報を含むComposerリポジトリの読み込み
    依存関係の更新（require-devを含む）
    要件をインストール可能なパッケージのセットに解決できませんでした。
    
      問題1
        -結論：laravel / framework v6.18.23を削除
        -結論：laravel / framework v6.18.23をインストールしない
        -laravel / ui 2.x-devには、illuminate / filesystem ^ 7.0が必要です-> luminate / filesystem [7.x-dev、v7.0.0、v7.0.1、v7.0.2、v7.0.3、v7.0.4、v7 .0.5、v7.0.6、v7.0.7、v7.0.8、v7.1.0、v7.1.1、v7.1.2、v7.1.3、v7.10.0、v7.10.1、v7.10.2、v7.10.3、v7.11.0 、v7.12.0、v7.13.0、v7.14.0、v7.14.1、v7.15.0、v7.16.0、v7.16.1、v7.17.0、v7.17.1、v7.17.2、v7.18.0、v7.2.0、v7 .2.1、v7.2.2、v7.3.0、v7.4.0、v7.5.0、v7.5.1、v7.5.2、v7.6.0、v7.6.1、v7.6.2、v7.7.0、v7.7.1、v7.8.0 、v7.8.1、v7.9.0、v7.9.1、v7.9.2]。
        -laravel / ui v2.1.0には、illuminate / filesystem ^ 7.0が必要です-> Illuminate / filesystemによって満たすことができます、v7.0.6、v7.0.7、v7.0.8、v7.1.0、v7.1.1、v7.1.2、v7.1.3、v7.10.0、v7.10.1、v7.10.2、v7.10.3、v7.11.0、v7 .12.0、v7.13.0、v7.14.0、v7.14.1、v7.15.0、v7.16.0、v7.16.1、v7.17.0、v7.17.1、v7.17.2、v7.18.0、v7.2.0、v7.2.1 、v7.2.2、v7.3.0、v7.4.0、v7.5.0、v7.5.1、v7.5.2、v7.6.0、v7.6.1、v7.6.2、v7.7.0、v7.7.1、v7.8.0、v7 .8.1、v7.9.0、v7.9.1、v7.9.2]。
        -luminate / filesystem 7.x-devをインストールしない| laravel / framework v6.18.23をインストールしない
        -luminate / filesystem v7.0.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.0.1をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.0.2をインストールしない| laravel / framework v6.18.23をインストールしない
        -luminate / filesystem v7.0.3をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.0.4をインストールしない| laravel / framework v6.18.23をインストールしない
        -luminate / filesystem v7.0.5をインストールしない| laravel / framework v6.18.23をインストールしない
        -luminate / filesystem v7.0.6をインストールしない| laravel / framework v6.18.23をインストールしない
        -luminate / filesystem v7.0.7をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.0.8をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.1.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.1.1をインストールしない| laravel / framework v6.18.23をインストールしない
        -luminate / filesystem v7.1.2をインストールしない| laravel / framework v6.18.23をインストールしない
        -luminate / filesystem v7.1.3をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.10.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.10.1をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.10.2をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.10.3をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.11.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.12.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.13.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.14.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.14.1をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.15.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.16.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.16.1をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.17.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.17.1をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.17.2をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.18.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.2.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -luminate / filesystem v7.2.1をインストールしない| laravel / framework v6.18.23をインストールしない
        -luminate / filesystem v7.2.2をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.3.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.4.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.5.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.5.1をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.5.2をインストールしない| laravel / framework v6.18.23をインストールしない
        -luminate / filesystem v7.6.0をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7.6.1をインストールしない| laravel / framework v6.18.23をインストールしない
        -Illuminate / Filesystem v7をインストールしないでください。
    ```
1. バージョンに関するエラーが出ている、おそらく先のコマンドを実行し、ライブラリを取得するにはLaravelのバージョンばあっていないというエラーが出ている。しかしLaravelのバージョンは7にしたくない、Laravel6で本ライブラリをインストールするコマンドを探す。
1. 下記コマンドを実行してライブラリのインストールを試してみた。

    ```terminal
    $ composer require laravel/ui 1.*
    ```

1. ライブラリのインストールは正常に完了した。

# 参考文献

- [更新！ Laravel6/7「make:Auth」が無くなった 〜Laravel6/7でのLogin機能の実装方法〜MyMemo](https://qiita.com/daisu_yamazaki/items/a914a16ca1640334d7a5)