Ubuntuでaptが上手く行かない時よく見に行くファイルとディレクトリ

トラブルシュートする時何かとよく参照するのでメモしておきます。

## sources.list

まず重要なファイルとして`sources.list`が挙げられる。
これは、`apt update`を実行した際に参照されるファイルで、パッケージがホスティングされているサーバーが書き込まれている。

`/etc/apt/sources.list`にある。

中をちょっと見てみる。

```shell
$ cat /etc/apt/sources.list | grep -v "#" | head

deb http://jp.archive.ubuntu.com/ubuntu/ xenial main restricted

deb http://jp.archive.ubuntu.com/ubuntu/ xenial-updates main restricted

deb http://jp.archive.ubuntu.com/ubuntu/ xenial universe
deb http://jp.archive.ubuntu.com/ubuntu/ xenial-updates universe

deb http://jp.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://jp.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
```

こんな感じになっている。

## sources.list.d

sources.listと同じ役割を持ったディレクトリとして`sources.list.d`がある。
この中に`sources.list.d/cuda.list`といった感じで`.list`ファイルが配置されており、ここに配置されたファイルも`apt update`時に読み込まれる。

`/etc/apt/sources.list.d/`にある。

## archives

`apt`がリポジトリから取ってきた`deb`ファイルが置かれる場所。

`/var/cache/apt/archives/`にある。

```
$ ls /var/cache/apt/archives/ | head
accountsservice_0.6.40-2ubuntu11.3_amd64.deb
activity-log-manager_0.9.7-0ubuntu23.16.04.1_amd64.deb
adium-theme-ubuntu_0.3.4-0ubuntu1.1_all.deb
adwaita-icon-theme_3.18.0-2ubuntu3.1_all.deb
amd64-microcode_3.20180524.1~ubuntu0.16.04.1_amd64.deb
apparmor_2.10.95-0ubuntu2.9_amd64.deb
appmenu-qt5_0.3.0+16.04.20170216-0ubuntu1_amd64.deb
apport_2.20.1-0ubuntu2.18_all.deb
apport-gtk_2.20.1-0ubuntu2.18_all.deb
appstream_0.9.4-1ubuntu3_amd64.deb
```

色々入っている。

```
$ ls /var/cache/apt/archives/ | grep cuda
libcudnn7_7.1.4.18-1+cuda9.2_amd64.deb
```

debファイルの管理ツールである`dpkg`を使うと、色んな情報が見れます。

`--info`オプション

```
$ dpkg --info /var/cache/apt/archives/libcudnn7_7.1.4.18-1+cuda9.2_amd64.deb
 new debian package, version 2.0.
 size 130478428 bytes: control archive=680 bytes.
     303 bytes,    10 lines      control              
     382 bytes,     5 lines      md5sums              
      21 bytes,     1 lines      shlibs               
      60 bytes,     2 lines      triggers             
 Package: libcudnn7
 Source: cudnn
 Version: 7.1.4.18-1+cuda9.2
 Architecture: amd64
 Maintainer: cudatools <cudatools@nvidia.com>
 Installed-Size: 332008
 Section: multiverse/libs
 Priority: optional
 Description: cuDNN runtime libraries
  cuDNN runtime libraries containing primitives for deep neural networks.
```

`--contents`オプション

```
$ dpkg --contents /var/cache/apt/archives/libcudnn7_7.1.4.18-1+cuda9.2_amd64.deb
drwxr-xr-x root/root         0 2018-05-05 17:35 ./
drwxr-xr-x root/root         0 2018-05-05 17:34 ./usr/
drwxr-xr-x root/root         0 2018-05-05 17:34 ./usr/lib/
drwxr-xr-x root/root         0 2018-05-05 17:34 ./usr/lib/x86_64-linux-gnu/
-rw-r--r-- root/root 339920048 2018-05-05 17:34 ./usr/lib/x86_64-linux-gnu/libcudnn.so.7.1.4
drwxr-xr-x root/root         0 2018-05-05 17:34 ./usr/share/
drwxr-xr-x root/root         0 2018-05-05 17:34 ./usr/share/lintian/
drwxr-xr-x root/root         0 2018-05-05 17:34 ./usr/share/lintian/overrides/
-rw-r--r-- root/root        45 2018-05-05 17:34 ./usr/share/lintian/overrides/libcudnn7
drwxr-xr-x root/root         0 2018-05-05 17:34 ./usr/share/doc/
drwxr-xr-x root/root         0 2018-05-05 17:35 ./usr/share/doc/libcudnn7/
-rw-r--r-- root/root     38963 2018-05-05 17:34 ./usr/share/doc/libcudnn7/NVIDIA_SLA_cuDNN_Support.txt
-rw-r--r-- root/root       159 2018-05-05 17:34 ./usr/share/doc/libcudnn7/changelog.Debian.gz
-rw-r--r-- root/root         0 2018-03-14 13:23 ./usr/share/doc/libcudnn7/copyright
lrwxrwxrwx root/root         0 2018-05-05 17:34 ./usr/lib/x86_64-linux-gnu/libcudnn.so.7 -> libcudnn.so.7.1.4
```