【エラー解決】Linuxでパッケージの依存関係エラーを解消する

# エラー内容

VMを起動し`sudo apt upgrade`を実行したところ依存関係のエラーが出ました。

```
$ sudo apt upgrade                   
[sudo] kali のパスワード:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレードパッケージを検出しています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 exfat-utils : 競合: exfatprogs しかし、1.2.2-1 はインストールされようとしています
               推奨: exfat-fuse しかし、インストールされようとしていません
E: 壊れたパッケージ
```

# 解決方法

:::note info
あくまで解決策の1つです。
:::

まず、`推奨`と表示されたパッケージ`exfat-fuse`をインストールします。

```
$ sudo apt -y install exfat-fuse 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
推奨パッケージ:
  exfatprogs
以下のパッケージが新たにインストールされます:
  exfat-fuse
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 2059 個。
29.6 kB のアーカイブを取得する必要があります。
この操作後に追加で 74.8 kB のディスク容量が消費されます。
取得:1 http://ftp.yz.yamagata-u.ac.jp/pub/linux/kali kali-rolling/main amd64 exfat-fuse amd64 1.4.0-2 [29.6 kB]
29.6 kB を 0秒 で取得しました (61.4 kB/s)
以前に未選択のパッケージ exfat-fuse を選択しています。
(データベースを読み込んでいます ... 現在 306192 個のファイルとディレクトリがインストールされています。)
.../exfat-fuse_1.4.0-2_amd64.deb を展開する準備をしています ...
exfat-fuse (1.4.0-2) を展開しています...
exfat-fuse (1.4.0-2) を設定しています ...
man-db (2.9.3-2) のトリガを処理しています ...
kali-menu (2021.1.4) のトリガを処理しています ...
Scanning processes...                                                                              
Scanning linux images...                                                                           

Running kernel seems to be up-to-date.

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.
```

もう一度`apt upgrade`を実行してみると、`推奨`の項目は無くなりましたが、`競合`の項目は残っていました。

```
$ sudo apt upgrade               
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレードパッケージを検出しています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 exfat-utils : 競合: exfatprogs しかし、1.2.2-1 はインストールされようとしています
E: 壊れたパッケージ
```

なので、次は`競合`にある`exfatprogs`をインストールします。

```
$ sudo apt -y install exfatprogs                                                           100 ⨯
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  exfat-utils
The following NEW packages will be installed:
  exfatprogs
0 upgraded, 1 newly installed, 1 to remove and 1892 not upgraded.
Need to get 61.2 kB of archives.
After this operation, 71.7 kB of additional disk space will be used.
Get:1 http://kali.download/kali kali-rolling/main amd64 exfatprogs amd64 1.2.2-1 [61.2 kB]
Fetched 61.2 kB in 0s (148 kB/s)      
(Reading database ... 305637 files and directories currently installed.)
Removing exfat-utils (1.3.0-2) ...
Selecting previously unselected package exfatprogs.
(Reading database ... 305621 files and directories currently installed.)
Preparing to unpack .../exfatprogs_1.2.2-1_amd64.deb ...
Unpacking exfatprogs (1.2.2-1) ...
Setting up exfatprogs (1.2.2-1) ...
Processing triggers for kali-menu (2021.1.4) ...
Processing triggers for man-db (2.9.3-2) ...
Scanning processes...                                                                              
Scanning linux images...                                                                           

Running kernel seems to be up-to-date.

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.
```

最後に`apt update`と`apt upgrade`を実行します。
これでアップグレード出来ました。

```
$ sudo apt update
$ sudo apt upgrade
```