SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【LPIC101】LinuxにおけるDebian系パッケージ管理 LPICで学ぶLinux⑦


今回はパッケージ管理について。
大きくDebian系とRPM系が存在します。

Debian系パッケージ

私は基本的にRedHat系ディストリビューションしか使用経験がないため、あまり馴染みがありません。
基本的にはDebian系かRPM系のどちらかを確実に覚えて、比較しながら覚えていく感じでしょうか。

Debian系パッケージではdpkgコマンドとAPTツールでのコマンドが使用されます。

パッケージはファイルは以下のような形となります。

virtualbox-5.2_5.2.40-137108~Ubuntu~bionic_amd64.deb
dpkgコマンド

Debian系パッケージではdpkgコマンドを使用して管理を行います。

主要なオプションを以下に示しますが、正直これを見ただけでは覚えるのは厳しいと思っています。

・オプション
オプションなのでこちらは省略可能です。

オプション 説明
-E 同じバージョンがすでにインストールされている場合、インストールは行わない
-G 新バージョンがすでにインストールされている場合、インストールはしない
-R ディレクトリ構造を再帰的に処理する

-Eオプションは同じバージョンでイコールで覚えればいい。
-Rは他のコマンドに同じような使い方があるが、(ディレクトリ内などを)再帰的に処理する。

・アクション
アクションなのでこちらは基本的に必須です。

アクション 説明
-i (--install) パッケージファイル名を指定して、パッケージをインストール
-I(--listfiles) パッケージファイル名を指定して、インストール済みの詳細情報を表示
-r (--remove) パッケージ名を指定して、パッケージをアンインストール (設定ファイルは残す)
-P (purge) パッケージ名を指定して、パッケージをアンインストール (設定ファイルを含めて完全に削除)
-l (--list) インストール済みパッケージを検索して表示
-L (--listfiles) パッケージ名を指定して、パッケージからインストールされたファイルを一覧表示
-s(--search) パッケージ名を指定して、インストール済みのパッケージの詳細情報の表示
-S (--status) 指定したファイルが、どのパッケージからインストールされたものかを調査
-c パッケージファイル名を指定して、パッケージに含まれるファイルの一覧表示
-C(--audit) パッケージのインストール状態を検査

まともに使ったことないから覚えるがきつい。
試験的には部分的に捨てになりそう。auditってなんだ。

APTパッケージ

apt-getコマンド

apt-getはAPT(Advanced Packaging Tool)のパッケージに含まれるコマンドであり、dpkgコマンドと比較したとき以下のような特徴があります。

・依存関係を調整しながらインストール(アンインストール)を行う。
・インターネット経由で最新パッケージを取得する。

主要なサブコマンドを以下に示めしますが、こちらも見るだけで覚えるのはなかなか難しいでしょう。

・サブコマンド

サブコマンド 説明
clean ダウンロードしたパッケージファイルを削除する
dist-upgrade Debianのシステムを最新にアップグレードする
install 指定したパッケージをインストール、またはアップグレードする
remove 指定したパッケージをアンイストール ( 設定ファイルは残す )
update パッケージのリスト情報(データベース)を最新に更新する
upgrade システムの全パッケージを最新版にアップグレードする

・オプション

サブコマンド 説明
-d インストールせずにファイルをダウンロードする
-s システムを変更せず、動作をシミュレート
--purge 削除時に設定ファイルも含めてパッケージを削除する

apt-getコマンドでは以下のファイルにパッケージを管理しているサイトのURLを記述します。

/etc/apt/sources.list

ファイルの内容例。

## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu bionic-updates main restricted

主要コマンドの実行例

・最新のパッケージを取得

updateサブコマンドでは、DB情報をインターネット経由で最新化します。

root@wantan:/home/wantan/deb# apt-get update
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]

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

apt-get install tmux

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

apt-get remove tmux

・ファイルのみダウンロード
ダウンロードの「d」。

apt-get install -d tmux

・ファイルの削除
実際にコマンドを確認すると分かるが、ダウンロードと対応している。

apt-get clean tmux

・アンインストールとファイルの削除
removeとcleanを同時にやる感じか。
dpkgの「-p」と「-r」アクションと同時に覚えればよさそう。

apt-get remove --purge tmux

・インストールの検証
実際にはインストールせず、インストールの内容を検証する。
個人環境だとあまり用途が思いつかないけど。
シミュレーションの「s」。

root@wantan:/home/wantan# apt-get install -s tmux
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  tmux
0 upgraded, 1 newly installed, 0 to remove and 141 not upgraded.
Inst tmux (2.6-3ubuntu0.2 Ubuntu:18.04/bionic-updates [amd64])
Conf tmux (2.6-3ubuntu0.2 Ubuntu:18.04/bionic-updates [amd64])

・パッケージDBの最新化
インストールしていないものも含めてパッケージの情報を最新化する。
「/etc/apt/sources.list」に記述されている内容に沿って更新している感じなのかな?

root@wantan:/home/wantan# apt-get update
Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
Reading package lists... Done


・全パッケージのアップグレード
updateとの違いを覚える。
upgradeはアップグレード、updateは最新化でまぁしっくりはくる。

apt-get upgrade
apt-cacheコマンド

APTツールにはapt-get以外にもいくつかコマンドが存在します。
その中のapt-cacheはパッケージ情報の検索を行うコマンドです。

・サブコマンド

サブコマンド 説明
search キーワードを含むパッケージの検索
show パッケージの詳細情報を表示
showpkg パッケージのバージョン、依存関係を表示
depends パッケージが依存するパッケージの一覧を表示

主要コマンドの実行例

・パッケージを検索する

指定したキーワードを含むパッケージを表示する。
他のコマンドと異なり、パッケージの指定ではなくキーワードを指定する。

wantan@wantan:~$ apt-cache search tmux
tmux - terminal multiplexer
libjs-xterm - terminal front-end component for the browser - browser library
node-xterm - terminal front-end component for the browser - NodeJS modules
powerline - prompt and statusline utility
python-libtmux - Python scripting library and ORM for tmux
python-tmuxp - tmux session manager (Python 2)
python3-libtmux - Python scripting library and ORM for tmux (python3)
python3-tmuxp - tmux session manager (Python 3)
ruby-notiffany - Wrapper libray for most popular notification libraries
tcvt - multicolumn virtual terminal
tmate - terminal multiplexer with instant terminal sharing
tmux-plugin-manager - tmux plugin manager based on git
tmuxinator - Create and manage tmux sessions easily
tmuxp - tmux session manager

・パッケージの詳細情報を表示する

パッケージ名で指定するため、searchで検索してから正式なパッケージ名を指定して情報を表示する。

wantan@wantan:~$ apt-cache show tmux
Package: tmux
Architecture: amd64
Version: 2.6-3ubuntu0.2
Priority: optional
Section: admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Romain Francoise <rfrancoise@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 632
Depends: libc6 (>= 2.27), libevent-2.1-6 (>= 2.1.8-stable), libtinfo5 (>= 6), libutempter0 (>= 1.1.5)
Filename: pool/main/t/tmux/tmux_2.6-3ubuntu0.2_amd64.deb
<・・省略・・>

・パッケージの依存関係を表示
「Reverse Depends:」が依存されているパッケージ、「Dependencies:」が依存しているパッケージ。
依存しているパッケージについては個人的には次のdependsの方が見やすいが、依存されているパッケージはこちらでしか見れない。

wantan@wantan:~$ apt-cache showpkg tmux
Package: tmux

<・・中略・・>

Reverse Depends:
  tmux-plugin-manager,tmux 1.9
  ubuntu-server,tmux
  ubuntu-remote-debug-host-tools,tmux
  tmuxinator,tmux
  tmuxinator,tmux
  byobu,tmux 1.5
  powerline,tmux
  liquidprompt,tmux
  apt-dater,tmux
  ubuntu-server,tmux
Dependencies:
2.6-3ubuntu0.2 - libc6 (2 2.27) libevent-2.1-6 (2 2.1.8-stable) libtinfo5 (2 6) libutempter0 (2 1.1.5)
2.6-3 - libc6 (2 2.26) libevent-2.1-6 (2 2.1.8-stable) libtinfo5 (2 6) libutempter0 (2 1.1.5)
Provides:
2.6-3ubuntu0.2 -
2.6-3 -
Reverse Provides:

・依存するパッケージを表示

wantan@wantan:~$ apt-cache depends tmux
tmux
  Depends: libc6
  Depends: libevent-2.1-6
  Depends: libtinfo5
  Depends: libutempter0
aptコマンド

apt-getapt-cacheを統合したコマンドで、それらでできることはだいたいできる模様。

LPIC的な重要度は不明。
オプションが一部異なるが基本的にapt-getapt-cacheと同様の使い方ということで乗り切る予定。


・前回(第六回)
www.wantanblog.com

・次回(第八回)
www.wantanblog.com