今回はパッケージ管理について。
大きく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は他のコマンドに同じような使い方があるが、(ディレクトリ内などを)再帰的に処理する。
・アクション
アクションなのでこちらは基本的に必須です。
アクション | 説明 |
---|---|
パッケージファイル名を指定して、パッケージをインストール | |
パッケージファイル名を指定して、インストール済みの詳細情報を表示 | |
パッケージ名を指定して、パッケージをアンインストール (設定ファイルは残す) | |
パッケージ名を指定して、パッケージをアンインストール (設定ファイルを含めて完全に削除) | |
インストール済みパッケージを検索して表示 | |
パッケージ名を指定して、パッケージからインストールされたファイルを一覧表示 | |
パッケージ名を指定して、インストール済みのパッケージの詳細情報の表示 | |
指定したファイルが、どのパッケージからインストールされたものかを調査 | |
パッケージファイル名を指定して、パッケージに含まれるファイルの一覧表示 | |
パッケージのインストール状態を検査 |
まともに使ったことないから覚えるがきつい。
試験的には部分的に捨てになりそう。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-getとapt-cacheを統合したコマンドで、それらでできることはだいたいできる模様。
LPIC的な重要度は不明。
オプションが一部異なるが基本的にapt-getとapt-cacheと同様の使い方ということで乗り切る予定。
・前回(第六回)
www.wantanblog.com
・次回(第八回)
www.wantanblog.com