このブログ記事では、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.