今回は前回に引き続き、Windows Subsystem for Linux(WSL)にアプリをインストールするためのaptコマンドについて解説する。
パッケージでインストールされたファイルを確認する
パッケージがインストールされているとき、そのパッケージに含まれるファイルがどこにあるのかを調べたいときがある。パッケージには実行ファイル自体や設定ファイル、ドキュメントなどが含まれている。またLinux系では、実行ファイルが、実はシェルスクリプトだということも珍しくない。インストールされたファイルがわかれば、コマンドについていろいろと調べることができる。
dpkgコマンドを使えばパッケージ名がわかれば、該当のパッケージでどのディレクトリにどんなファイルがインストールされたのかを調べることが可能だ。それには
dpkg -L パッケージ名
とコマンドを実行する。
実際にパッケージをインストールする
パッケージ名がわかれば、インストールは簡単にできる。システムのバージョンや依存する他のパッケージなどは、何も考える必要がなく、aptコマンドが自動的に判断して必要な処理をおこなってくれる。インストールはapt-getコマンドで行ない、
sudo apt-get install パッケージ名
とする。
実行にはroot権限が必要なので、sudoは必須だ(以下同様に必要な場合にはsudoをつけるがいちいち断らないことにする)。途中、一定以上のサイズを占有するパッケージなどでは確認を求められますが「y」を入力すれば先に進む。
このとき「-y」オプションをつけると、重大な選択でない限り、確認にすべてyと入力するのと同じになり、多くの場合、途中で確認のために入力待ちにならなくなる。逆にすべての確認に「no」と応答させたい場合には、「--assume-no」を指定する。「-y」オプションは、「--yes」、「--assume-yes」と指定することも可能だ。
なお、パッケージ名の部分を
パッケージ名=バージョン
とすることで、特定のバージョンを指定してインストールすることも可能だ。ただし注意するのは、バージョンを指定すると、すでにインストールされていたパッゲージが強制的に古いバージョンに「ダウングレード」される可能性がある。このため、バグなどで最新版が利用困難といった場合を除き、みだりに使用しないほうがいい(とはいえ、そういう場面は少なくない)。少なくともバージョンの違いなどを理解し、そのために引き起こされる依存するパッケージの変更などを理解して利用するべきだろう。
パッケージをアンインストールする
インストールされているパッケージが不要になったらアンインストールが可能だ。アンインストールには2つの方法がある。1つは、実行ファイルやドキュメントなどの主要な部分を削除するが、設定ファイルを残しておく方法(remove)。もう1つは、設定ファイルも含め、完全にパッケージに含まれていたファイルと関連ファイルを削除する方法(purge)だ。
removeを使えば、再度同じパッケージをインストールしたときに、前回の設定をそのまま利用できる。ただし、これを繰り返していると、不要な設定ファイルが残り続け、他のマシンに引越するような場合にどれが必要なのかがわからなくなる。よほど大物のソフトウェアか、複雑なソフトウェアでもなければ、設定は単純なので、削除してしまっても問題ない。
具体的なコマンドは、
sudo apt-get remove パッケージ名
sudo apt-get purge パッケージ名
である。
なお、パッケージをアンインストールすると、それまでの依存関係がなくなり、インストールされているパッケージの中には、どこからも参照されない(必要とされない)パッケージができることがある。こうしたものは、apt-get autoremoveコマンドで削除することができる(後述)。
パッケージのアップグレード
パッケージに含まれるソフトウェアも、バグ修正などで日々アップデートしていく。aptコマンドは、こうしたパッケージを最新のものに置き換えるupgradeの機能がある。
WSLでも、ログイン直後にアップグレードがなんとかといったメッセージが表示されることがある。
これはmotd(Message of the day)と呼ばれる仕組みで、メッセージは一日一回しか出ない。同じメッセージを再度表示させたいなら、/etc/update-motd.d/90-updates-availableに記述されている以下のコマンドを実行させる。
/usr/lib/update-notifier/update-motd-updates-available
具体的に、どのパッケージがアップグレードできるのかを表示させるには、
apt list --upgradable
とする。
このような場合には、以下のコマンドを使ってパッケージのアップグレードを行なう。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
最初のコマンドは、パッケージリストの更新、次のコマンドは、パッケージのアップデート作業、最後のコマンドは、不要になったパッケージの自動削除である。
最後のコマンドは、必ずしも実行する必要はなく、2番目のコマンドでアップグレード自体が行われる。しかし、前述のpurgeやupgradeサブコマンドの実行で、どこからも参照されなくなったパッケージは残ったままになる(必ず残るとは限らないが)ため、最後にapt-get autoremoveコマンドを実行して不要なパッケージを時々削除させるといいだろう。
なお、似たようなサブコマンドにautocleanがある。こちらはパッケージのデータベースから不要な項目を削除するコマンド。パッケージのアップグレードや削除などが続いたときにときどき実行するといいだろう(実行にはsudoが必須)。
ただし、上記のコマンドでアップグレードされるのは、アプリケーションや一部のディストリビューション関連のパッケージのみで、Linuxカーネルなどについては別のコマンドを利用する。
次のWindowsアップグレードであるRS2でWSLも強化され、Ubuntuも14.10から16.10へと変更される予定だ。このあたりについては、RS2での強化点などを含めて次回解説する。
この連載の記事
-
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 - この連載の一覧へ