ソフトウェアのインストールと更新

LinuxBeginner
オンラインで実践に進む

はじめに

Linux パッケージ管理の世界へようこそ!Linux の最も強力な機能の 1 つは、ソフトウェアのインストール、更新、削除に対する体系的なアプローチです。Ubuntu のような Debian ベースのシステムでは、そのための主要なツールは Advanced Package Tool、略してaptです。

この実験(Lab)では、必須のaptコマンドについて実践的な経験を積みます。パッケージ情報の更新、新しいアプリケーションのインストール、既存ソフトウェアのアップグレード、インストールされているものの確認、そして最終的にアプリケーションの削除という、ソフトウェアパッケージのライフサイクル全体を学習します。例として、人気のコマンドラインテキストエディタであるvimを使用します。

この実験(Lab)を終える頃には、すべての Linux ユーザーが知っておくべき基本的なソフトウェア管理タスクに習熟しているでしょう。

apt update コマンドによるリポジトリの更新

このステップでは、システムのローカルパッケージインデックスを更新する方法を学びます。これは、ソフトウェアをインストールまたはアップグレードする前の重要な最初のステップです。

apt update コマンドはソフトウェアをアップグレードしません。その代わりに、システムに設定されているソフトウェアリポジトリから最新のパッケージ情報(バージョン番号や依存関係など)をダウンロードします。これにより、インストールまたはアップグレードを決定した際に、利用可能な最新かつ正確なバージョンを取得することが保証されます。

パッケージリストの更新には管理者権限が必要なため、sudo コマンドを使用する必要があります。ターミナルで次のコマンドを実行してください。

sudo apt update

apt がパッケージリストを取得するためにさまざまなウェブアドレスに接続するにつれて、一連の行が表示されます。出力は次のようになります。

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://security.ubuntu.com/ubuntu jammy-security InRelease [119 kB]
...
Fetched 3,134 kB in 2s (1,835 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

これで、システムは利用可能なすべての最新ソフトウェアについて把握しました。

apt install vim コマンドによる vim のインストール

このステップでは、新しいソフトウェアパッケージである vim をインストールします。vim は、開発者やシステム管理者の間で非常に人気のある、高度に設定可能で強力なテキストエディタです。

パッケージをインストールするためのコマンドは apt install で、その後にパッケージ名を続けます。apt update と同様に、この操作には管理者権限が必要なため、sudo が必要になります。

vim をインストールするには、次のコマンドを実行します。

sudo apt install vim

システムはまず依存関係(vim が機能するために必要な他のパッケージ)を計算し、インストールされるすべてのパッケージのリストを表示します。ここで確認を求められます。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  vim-runtime
Suggested packages:
  ctags vim-doc vim-scripts
The following NEW packages will be installed:
  vim vim-runtime
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 7,578 kB of archives.
After this operation, 36.3 MB of additional disk space will be used.
Do you want to continue? [Y/n]

インストールを進めるには、Y と入力して Enter キーを押します。その後、aptvim とその依存関係をダウンロードしてインストールします。

apt upgrade -y コマンドによるパッケージのアップグレード

このステップでは、システムにインストールされているすべてのパッケージを最新バージョンにアップグレードします。apt update がパッケージリストを更新するのに対し、apt upgrade は実際にソフトウェアの新しいバージョンをダウンロードしてインストールします。

システムを最新の状態に保つことは、セキュリティと安定性のために重要です。アップグレードには、多くの場合、バグ修正や脆弱性に対するパッチが含まれるためです。

コマンドは apt upgrade です。ここでは、確認プロンプトに対して自動的に「はい」と答える -y フラグを追加します。これは、スクリプト内など非対話的な状況や、アップグレードを確実に実行したい場合に非常に役立ちます。

ターミナルで次のコマンドを実行します。

sudo apt upgrade -y

アップグレードが必要なパッケージの数やインターネット接続速度によっては、アップグレードプロセスに時間がかかる場合があります。パッケージがダウンロードおよびインストールされていることを示す出力が表示されます。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  package1 package2 package3
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,234 kB of archives.
After this operation, 56.7 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 package1 amd64 1.2.3-1 [123 kB]
...
Fetched 1,234 kB in 5s (246 kB/s)
(Reading database ... 123456 files and directories currently installed.)
Preparing to unpack .../package1_1.2.3-1_amd64.deb ...
Unpacking package1 (1.2.3-1) over (1.2.2-1) ...
Setting up package1 (1.2.3-1) ...
...
Processing triggers for package1 (1.2.3-1) ...

アップグレードプロセスが完了するまでしばらくお待ちください。完了すると、インストールされているすべてのソフトウェアは、ステップ 1 で更新したリポジトリで利用可能な最新バージョンで実行されます。

dpkg -l | grep vim コマンドによるインストール済みパッケージの一覧表示

このステップでは、システムにインストールされているパッケージを確認する方法と、特定のパッケージを検索する方法を学びます。これには、apt が基盤としている低レベルのパッケージマネージャである dpkg と、grep コマンドを組み合わせて使用します。

dpkg -l コマンドは、システムが認識しているすべてのパッケージを一覧表示します。このリストは非常に長くなる可能性があるため、フィルタリングする方が便利な場合が多いです。これは、左側のコマンドの出力をパイプ(|)で右側のコマンドの入力として渡すことで実現できます。

dpkg -l の出力を grep vim にパイプすることで、リストがフィルタリングされ、「vim」という単語を含む行のみが表示されます。

次のコマンドを実行します。

dpkg -l | grep vim

出力には、vim パッケージおよびインストールされているその他の関連パッケージの詳細が表示されます。

ii  vim                                    2:8.2.3995-1ubuntu2.24                  amd64        Vi IMproved - enhanced vi editor
ii  vim-common                             2:8.2.3995-1ubuntu2.24                  all          Vi IMproved - Common files
ii  vim-gtk                                2:8.2.3995-1ubuntu2.24                  all          Vi IMproved - enhanced vi editor (dummy package)
ii  vim-gtk3                               2:8.2.3995-1ubuntu2.24                  amd64        Vi IMproved - enhanced vi editor - with GTK3 GUI
ii  vim-gui-common                         2:8.2.3995-1ubuntu2.24                  all          Vi IMproved - Common GUI files
ii  vim-runtime                            2:8.2.3995-1ubuntu2.24                  all          Vi IMproved - Runtime files

行の先頭にある ii は、そのパッケージがインストールされており、正しく設定されていることを示します。これは、ステップ 2 でのインストールが成功したことを確認するための簡単な方法です。

apt remove vim コマンドによるパッケージの削除

このステップでは、パッケージ管理のライフサイクルを完了させるために、以前インストールした vim パッケージを削除します。

パッケージをアンインストールするためのコマンドは apt remove で、その後にパッケージ名を続けます。このコマンドはパッケージのバイナリファイルを削除しますが、一部の設定ファイルが残る場合があります。設定ファイルも削除したい場合は、apt purge を使用します。この実験(Lab)では、apt remove で十分です。

インストール時と同様に、パッケージを削除するには sudo 権限が必要です。次のコマンドを実行します。

sudo apt remove vim

システムは、削除されるパッケージを示し、確認を求めてきます。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  vim
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 583 kB of disk space will be freed.
Do you want to continue? [Y/n]

削除を確定するには、Y と入力して Enter キーを押します。その後、apt はパッケージのアンインストール処理を進めます。これにより、システム上で vim コマンドが利用できなくなります。

まとめ

この実験(Lab)の完了、おめでとうございます!Ubuntu のような Debian ベースの Linux システムにおけるソフトウェア管理の基本コマンドを習得しました。

この実験では、パッケージ管理の完全なライフサイクルを実践しました。

  • sudo apt update: ローカルのパッケージインデックスをオンラインリポジトリと同期させるため。
  • sudo apt install vim: 新しいアプリケーションをインストールするため。
  • sudo apt upgrade -y: インストールされているすべてのパッケージを最新バージョンにアップグレードするため。
  • dpkg -l | grep vim: インストールされているパッケージを一覧表示し、特定のものを検索するため。
  • sudo apt remove vim: アプリケーションをアンインストールするため。

これらのコマンドは、Linux におけるシステム管理と日常的な使用の基礎となります。この知識があれば、ご自身の Linux システム上のソフトウェアを管理するための十分な準備が整いました。