[Linux徹底入門] パッケージ・パッケージマネージャー(deb編)

Linux

Linuxのパッケージ(deb)とパネージャー(apt, apt-get)について徹底解説します

「Linux徹底入門」について

Linuxに対する知識を整理し、LPIC合格にも役立つような記事にすることを目指しています。

debパッケージとは?


Debian パッケージ(通常は .deb ファイル拡張子を持つ)は、Debian ベースの Linux ディストリビューションで使用されるパッケージ形式です。Debian パッケージがあることで、ソフトを”パッケージ”の単位で管理することで、管理を容易にすることができます。

  1. debパッケージの構造 : debパッケージは以下から構成されます。
    • Controlファイルと呼ばれるパッケージの情報を記載したファイル
    • インストールされるファイルのアーカイブ
    • インストール時に実行されるスクリプトなど
  2. 依存関係: Debian パッケージは、他のパッケージへの依存を定義できます。必要なパッケージを明確にし、インストール時に依存関係が満たされていることを担保できます。
  3. パッケージ管理ツール: Debian パッケージは dpkg ツールを使用してインストール、アップグレード、削除されます。また、高レベルのツールとして aptapt-get があり、これらを使用して依存関係を解決し、パッケージを効率的に管理できます。
  4. パッケージリポジトリ: Debian パッケージは、公式の Debian リポジトリや他のカスタムリポジトリから入手できます。これにより、数千ものパッケージが利用可能で、ソフトウェアの簡単なインストールとアップデートが可能です。

パッケージマネージャーとは?

Debパッケージを管理するツールとして、apt, apt-get, aptitude, dpkg等があります。

これらのうち、主流であるaptとdpkgを中心に解説します。

aptはインターネットからのパッケージの取得や依存関係の解決などの高度な機能を持ったツールです。

dpkgはローカルPC上の単一パッケージを管理する低レベルツールです。

aptdpkg
パッケージのインストール&アンインストールOO
インターネットからのパッケージ取得OX
依存関係の解決OX

apt, apt-get, aptitudeの違い

aptとよく似たコマンドにapt-get, aptitudeがあります

aptは開発者が直接触ることに適した親切なコマンドです。

apt-getはよりローレベルな制御を可能とするコマンドでツール内に仕込んだりするのに向いています。

apt と apt-get - Linux のパッケージ管理ツール間の違い - AWS
aptとapt-getの違いはなんですか?AWSでaptとapt-getを使用する方法。

aptの使い方

apt コマンドを使用することで、パッケージのインストールやアップデート、リポジトリの管理などが容易に行えます。

基本的なコマンド

パッケージのアップデート

sudo apt update

システムのアップグレード

sudo apt upgrade

パッケージのアップグレード&不要なパッケージの削除

(sudo apt dist-upgradeを使うと、パッケージのアップグレードに伴う必要な依存関係の解決のための新しいパッケージのインストールや古いパッケージの削除をインテリジェントに行うことができます)

パッケージの検索

apt search package-name

パッケージのインストール

sudo apt install package-name

パッケージの削除

sudo apt remove package-name

パッケージ情報の表示

apt show package-name

リポジトリについて

aptのパッケージはリポジトリと呼ばれるデータベースから取得されます。

通常、これは/etc/apt/sources.list, /etc/apt/sources.list.dディレクトリ内に定義されています。

]$ cat /etc/apt/sources.list

deb http://deb.debian.org/debian/ bookworm main
deb-src http://deb.debian.org/debian/ bookworm main

deb http://security.debian.org/debian-security bookworm-security main
deb-src http://security.debian.org/debian-security bookworm-security main

# bookworm-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bookworm-updates main
deb-src http://deb.debian.org/debian/ bookworm-updates main

リポジトリには公式のものとサードパーティのものがあります。

  • 公式リポジトリ: Debian ディストリビューション自体に同梱されており、基本的なソフトウェアパッケージを提供します。これらのパッケージは Debian プロジェクトによってメンテナンスされており、セキュリティアップデートなどが提供されます。
  • サードパーティリポジトリ: Debian プロジェクト以外の個人、組織、コミュニティが提供するリポジトリです。これらのリポジトリは追加のソフトウェアパッケージを提供し、特定のユーザーや開発者向けのソフトウェアを含むことがあります。

Debの使い方

dpkg コマンドは、Debian ベースの Linux ディストリビューションでパッケージの管理に使用される低レベルのユーティリティです。aptとは違いインターネットからパッケージを持ってくる機能はありません。ローカルPC上のパッケージを管理するツールです。

基本的な使い方

パッケージのインストール

sudo dpkg -i package-file.deb

パッケージの削除

sudo dpkg -r package-name

パッケージと設定ファイルの削除

sudo dpkg -P package-name

インストールされているパッケージのリストアップ

dpkg -l

[応用編] 特定のファイルが所属するパッケージを調べ

特定のファイルがどのパッケージに属しているかを調べるには、dpkg -S コマンドを使用します。

コマンドは次の形式です:

dpkg -S filename

ここで、filename は調べたいファイルの名前です。

例えば、ファイルが /usr/bin/example の場合、次のように検索します:

dpkg -S /usr/bin/example

dpkg はファイルが含まれているパッケージ名を表示します.

また、ファイルが存在しない場合、dpkg は結果を返さずにエラーメッセージを表示します。

[応用編] インストール済みのdebパッケージのファイルリストの表示

dpkg –listでインストール済みのパッケージの一覧を出力できます。

こんな感じ

ここで特定のパッケージに含まれるファイルの一覧を出力するためには

dpkg -L [パッケージ名]と指定します。

例えば、dpkg -L libgtk-4-1

こんな感じ

タイトルとURLをコピーしました