branch10480’s blog

Topics that I've learned.

パッケージ管理 (1) ~ Debian ~

そもそもパッケージとは?

以下などを1つのファイルにまとめたものです。

  • 実行プログラム
  • 設定ファイル
  • ドキュメント ...etc

このパッケージを管理する方法はディストリビューションによって異なります。

ディストリビューション種類 パッケージ管理形式 コマンド/ツール
Debian GNU/Linux Debian形式 dpkg コマンド、 APTツール
Red Hat Enterprise Linux PRM形式 rpm コマンド

パッケージ管理システムは以下について管理します。

  • どのパッケージがインストールされているか把握
  • パッケージの依存関係の解決
  • パッケージ同士の競合を発生させないインストール・アンインストール

パッケージ管理システムでコンパイル済みのバイナリパッケージを扱う場合はソースコードからのインストールとは異なり、動作環境に依存するようになります。

そのため、以下について適切なものを選択する必要があります。

  • ディストリビューション
  • CPUアーキテクチャ ...etc

Debian系

dpkg コマンドでのパッケージ管理

Debian形式(deb形式)のパッケージの書式はこのようになっています。

tree_1.6.0-1_i386.deb
セクション 説明
tree パッケージ名称
1.6.0 バージョン
1 Debianリビジョン番号
i386 CPUアーキテクチャ
.deb 拡張子

インストール

例 apache2

dpkg -i apache2_2.4.29-1ubuntu4.5_amd64.deb

アンインストール

例 apache2

dpkg --purge apache2

apt-get コマンドでのパッケージ管理

apt-get コマンドは APT(Advanced Packaging Tool) というパッケージ管理ツールに含まれるコマンドです。

特徴としては インターネット経由で最新パッケージの入手、インストール、依存関係の解決までできる ことがあげられます。

初めに sources.list にパッケージ管理サイトのURLを指定

apt-get での管理を始めるには、まず /etc/apt/sources.list にパッケージ管理サイトのURLを指定します。

deb http://hogehoge bionic main restricted
deb-src http://hogehoge bionic main restricted
...
セクション 説明
deb deb (debパッケージを取得) or deb-src (ソースコードを取得)
http://hgoehgoe 取得先URL
bionic バージョン名
main restricted 後述

main restricted などについて

項目 説明
main 公式にサポートされているもの
universe コミュニティによってメンテナンスされるソフトウェア
restricted デバイス用の proprietary なドライバ
multiverse 著作権 or 法的な問題によって制限されたソフトウェア
contrib フリーでは無い依存関係のあるソフトウェア
non-free 利用と改変再配布に制限のあるソフトウェア

最新パッケージ情報を取得

apt-get update

インストール

apt-get install apache2

設定が必要な箇所があれば質問されます。また、 dpkg-reconfigure コマンドで後日再設定することもできます。

アンインストール

apt-get remove apache2

システムを一括して最新にする

apt-get dist-upgrade

このコマンドではシステムを最新にするにあたり、既存パッケージを削除する場合があります。

削除を伴わないパッケージのみアップグレードをする場合は apt-get upgrade コマンドを使うようにしてください。

apt-get upgrade

apt-cache コマンド

パッケージ情報を照会・検索する場合に使用するコマンドです。パッケージは実際にインストールされていなくても大丈夫です。

apt-cache search apache2
apt-cache show apache2

最近の主要コマンド apt

apt コマンドは apt-getapt-cache を合わせたようなコマンドで、こちらの利用が推奨されています。

パッケージリスト更新

apt update

システムのアップグレード(質問には自動的に Yes と答える)

apt -Y upgrade

インストール

apt install emacs

アンインストール

apt remove emacs

不必要なパッケージの削除

過去にパッケージの依存関係を保つためにインストールされた、今はもう不要なパッケージを削除します。

apt autoremove