このページの本文へ

前へ 1 2 次へ

Windows Info 第322回

WSLにインストールされているファイルから原因となるパッケージを探す

2022年04月10日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

wsluとして知られるWSL用のユーティリティには、ASCIIアートでロゴを表示するwslfetchやシステム情報を表示するwslsysなどがある

 WSL(Windows Subsystem for Linux)のUbuntu系ディストリビューションにwsluパッケージが含まれるようになっているようだ。wsluパッケージには、以下の表のようなコマンドがある。それぞれmanページがあるので、「man wslsys」などとして使い方を調べることができる。

 しかし、筆者は、wsluパッケージを入れた記憶がない。おそらくは、ディストリビューションに標準的に入っていたのだと思われるが、WSL用なので、通常のUbuntuのインストールイメージには含まれているわけがない。というわけで、今回は、このwsluをネタにWSLでインストールされているファイルから、その原因となるパッケージを調べる方法を解説する。

実行ファイルが含まれるパッケージを調べる

 Ubuntuなどaptコマンドを使うDebian系のLinuxディストリビューションで、インストールされているファイルを含むパッケージを探すには、「dpkg -S <ファイル名>」コマンドを使う。今回の場合は「/usr/bin/wslsys」なので、

dpkg -S wslsys

とする。

dpkg -Sコマンド(画像の1行目)でwslsysコマンドは、「wslu」というパッケージに所属していることがわかる。写真4行目の「apt rdepends wslu」で、wsluを依存パッケージとしてインストールするのはubuntu-wslというパッケージであることがわかり、その情報(9行目)は、「apt show ubuntu-wsl」で表示できる

 これで、wslsysを含むのは「wslu」パッケージであることがわかる。では、このwsluパッケージはどうしてインストールされたのか? ユーザーが自分で導入したのでなければ、他のパッケージからの依存関係でインストールされたはずである。それを調べるには「apt rdepends <パッケージ名>」を使う。具体的には、

apt rdepends wslu

とする。すると、ubuntu-wslというパッケージの依存関係でインストールされたことがわかる。では、ubuntu-wslとは何なのか? それを調べるには、「apt show <パッケージ名>」コマンドを使えばよい。

apt show ubuntu-wsl

の結果を見ると、

Ubuntu on Windows tools - Windows Subsystem for Linux integration
 Utilities for integrating Ubuntu well into the WSL environment.
 .
 It is also used to help ensure proper upgrades, so it is recommended that
 it not be removed.

と説明がある。Ubuntuが用意したWSL向けのパッケージらしく、勝手に削除するなとのことなので、おそらく標準でインストールされたものなのであろう。ubuntu-wslは、wsluに依存しているので、ubuntu-wslがインストールされたとき、同時にインストールされたようである。

aptコマンドのログを調べる

 このubuntu-wslパッケージは、いつインストールされたのだろうかはaptコマンドのログを調べればいい。ログは、/var/log/aptにあるhistory.logである。lessやviewコマンドで直接中身を見てもいい。このログからインストール日時を調べるには、grepを使って

grep 'install ubuntu-wsl' -B 1 /var/log/apt/history.log

とする。

パッケージ管理用のaptコマンドの履歴は、/var/log/apt/history.logに記録されている。grepコマンドでubuntu-wslのインストール履歴が記録されていることがわかるので、中身を見ると、2020年の4月にubuntu-wslが、その依存パッケージとしてwsluがインストールされていた

 それによれば、2020年4月とのこと。どうもこのUbuntuディストリビューションをインストールしたときのようだ。このときに標準のパッケージとしてはubuntu-wslがインストールされ、依存関係でwsluが入ったと思われる。

 Linuxでは、ログは定期的に検査されて圧縮されることがある。それは末尾に数字などがついたファイル名になっているはずだ。これはlogrotateで処理されている。man logrotateで概要を調べられる。logrotateは毎日起動され、ログファイルから指定した期間やサイズなどを調べて、ログを圧縮して別ファイルにする。末尾に数字がついたログ(~.log.1など)は、logrotateが作成している。

 aptコマンドのhistory.logログに対するlogrotateの処理は、/etc/logrotate.d/aptに記述されている。

/var/log/apt/history.log {
  rotate 12
  monthly
  compress
  missingok
  notifempty
}

 これによれば、毎月1日に圧縮処理をして、12回分まで保存することになっている(詳細は「man logrotate」参照)。しかしWSLでは、該当の時間に起動しているとは限らないため、logrotate処理されない可能性もある。実際に筆者の環境では、圧縮されたものはなく、2018年リリースのUbuntu-18.04では2018年からのログがそのまま残っていた。

 このため、前記のubuntu-wslのインストールは、おそらくディストリビューションをインストールした直後の処理である。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン