このブログ記事では、Linuxにおけるパッケージについてを紹介します。
基本的なbashコマンドとLinuxのファイルシステムについて理解したところで、デフォルトの設定以上のことを行うためにパッケージのインストール方法について学んでいきましょう。
パッケージとは?
パッケージとは、Google ChromeやVS Codeなどの複数のファイルからなるソフトウェアを1つのアーカイブファイルにまとめたものです。 このアーカイブファイルには、ソフトウェアの名前、目的、バージョン、依存関係などを含むメタデータが含まれています。 上流のプロバイダーはコードをコンパイルしてインストール方法を作成し、パッケージメンテナーがそれをレビューし、管理・配布しています。
パッケージマネージャーは、パッケージが保存されているソフトウェアリポジトリと密接に連携しています。
リポジトリの場所ソースリンクを指定して、システムがそこからパッケージをダウンロードできるようにします。
Linuxディストリビューションには、事前に承認されたソースが含まれており、私たちのシステムでは/etc/apt/sources.list.d/ubuntu.sourcesで確認できます。
このファイルのリンクにアクセスすると、使用可能なパッケージやそのバージョンのリストを確認できます。
アーカイブファイル
リポジトリのリンクにアクセスすると、多くの.debファイルやいくつかの.tar.gzファイルが表示されます。
.tar.gzファイルは、tarによってアーカイブされ、gzipによって圧縮されたものです。gzip(GNU zip)はzipと同様に、
Linuxでファイルの圧縮と解凍を行うツールです。例えば、gzip fileやgunzip file.gzのようなコマンドでファイルを圧縮・解凍できますが、
gzip単体では複数のファイルを一つのアーカイブにまとめることはできません。ここでtarが役立ちます。
アーカイブを作成するには、tar cvf new.tar file1 file2のように入力します。これにより、file1とfile2からnew.tarが作成され、
cvfは作成(create)、詳細表示(verbose)、ファイル名(filename)の意味です。アーカイブnew.tarを展開するには、
tar xvf new.tarを使用し、xvfは展開(extract)、詳細表示、ファイル名を表します。また、圧縮を伴う.tar.gzファイルを作成するには
tar czf new.tar.gz、解凍と展開にはtar xzf new.tar.gzが使えます。
.debファイルはarアーカイブファイルで、Debianバイナリ(バージョン情報)、コントロールアーカイブ(メタデータ)、およびデータアーカイブ(実際のファイル)を含んでおり、
Debian系Linuxで設定されているパッケージ管理コマンドdpkgで処理されます。.debパッケージのインストールと削除は、dpkg -i package.debやdpkg -r package.debで行い、
dpkg -lでインストール済みパッケージ一覧を確認できます。
高度なパッケージツール(APT)
dpkgを使えば、事前承認されたソースからパッケージをインストール・削除できますが、依存関係の解決は行われません。 パッケージに10の依存関係がある場合、それぞれの依存関係パッケージを手動でインストールする必要があります。 この手間を解消するため、Debian系Linuxでは、高度なパッケージツールAPT(Advanced Package Tool)が使用されており、 依存関係を自動的に取得・設定・インストールできます。
パッケージのインストールと削除は、apt install package_nameとapt remove package_nameで簡単に行えます。
また、apt show package_nameでパッケージ情報の確認、apt updateでリポジトリのアップデートが可能です。
練習としてvimパッケージをインストールし、その情報をaptで確認してみましょう(vimのインストール方法と使い方については次回の記事で詳しく説明します)。
通常、dpkgやtar、gzipはあまり使わずaptを使うことが多いですが、これらのツールが何かを知っておくことで、aptやパッケージを「魔法」と捉えず、問題解決がしやすくなります。
リソース
- Linux Journey. n.d. Packages. Linux Journey.