今回はRPMパッケージについて。
Red Hat系のディストリビューションを扱うことが多い私にとってはこちらの方がまだなじみがあります。
RPMパッケージ
RPMはRed Hat社が開発したパッケージ管理システムであり、RPMパッケージは以下のような形式となっています。
VirtualBox-5.2-5.2.42_137960_el7-1.x86_64.rpm
rpmコマンド
RPMパッケージのインストールや参照などの操作はrpmコマンドにより実行します。
■インストールアップグレード系のオプション
オプション | 説明 |
---|---|
-i (--install) | パッケージをインストール |
-U (--upgrade) | パッケージをアップグレード(ない場合インストール) |
-F (--freshen) | パッケージをアップグレード(インストールはしない) |
・併用オプション
以下のオプションは上記のインストールやアップデートに併用して使用される。
オプション | 説明 |
---|---|
-v | 詳細情報の表示 |
-h | 進行状況を「#」で表示 |
--nodeps | 依存関係無視でインストール |
--force | 既存のファイルを新しいものに置き換える |
--test | 実際にはインストールせず検証する |
・よく使うインストールコマンド
検索したりするとよくでてくるインストールコマンド(組み合わせ)。
進行状況を「#」表示しながらインストールを行う。
ハッシュの「h」は覚えやすい。
rpm -ihv VirtualBox-5.2-5.2.42_137960_el7-1.x86_64.rpm
ハッシュ表示の例。
準備しています... ################################# [100%]
「-U」や「-F」はアップグレードオプションだがdpkgとは範囲もオプションも異なるため覚えにくい。
「-U」は新規インストールも行う、「-F」は純粋なアップグレード。
■アンインストールのオプション
オプション | 説明 |
---|---|
-e (--erace) | パッケージをアンインストール |
・併用オプション
オプション | 説明 |
---|---|
--nodeps | 依存関係無視でアンインストール |
■パッケージの参照オプション
オプション | 説明 |
---|---|
-q | 指定したパッケージがインストールされているか参照する |
・併用オプション
オプション | 説明 |
---|---|
-a (--all) | インストール済みのパッケージをすべて表示 |
-f | 指定したファイルを含むパッケージ名を表示 |
-p | パッケージファイルを指定する |
-c (--configfiles) | 設定ファイルのみを表示 |
-d (--docfiles) | ドキュメントのみを表示 |
-i (--info) | パッケージの情報を表示 |
-l (--list) | パッケージに含まれるファイルを表示 |
-R (--requires) | パッケージが依存しているファイルを表示 |
--changelog | 変更履歴を表示 |
主要コマンドの実行例
実際に実行してみた方が定着がよい気がする。
一度困る経験があるとだいぶ覚える。
「-q」はクエリーのQ???
・全てのインストール済みパッケージを表示する
インストールされている全パッケージを表示する。
rpm -qa
・ファイルを含むパッケージを表示する
他のコマンドと違いファイルを指定してパッケージ名を表示する。
[root@localhost wantan]# rpm -qf /usr/share/doc/tmux-1.8/examples/bash_completion_tmux.sh tmux-1.8-4.el7.x86_64
・パッケージに含まれるファイルを表示
「-f」との対比。
[root@localhost wantan]# rpm -ql tmux /usr/bin/tmux /usr/share/doc/tmux-1.8 /usr/share/doc/tmux-1.8/CHANGES /usr/share/doc/tmux-1.8/FAQ /usr/share/doc/tmux-1.8/TODO /usr/share/doc/tmux-1.8/examples /usr/share/doc/tmux-1.8/examples/bash_completion_tmux.sh /usr/share/doc/tmux-1.8/examples/h-boetes.conf /usr/share/doc/tmux-1.8/examples/n-marriott.conf /usr/share/doc/tmux-1.8/examples/screen-keys.conf /usr/share/doc/tmux-1.8/examples/t-williams.conf /usr/share/doc/tmux-1.8/examples/tmux.vim /usr/share/doc/tmux-1.8/examples/tmux_backup.sh /usr/share/doc/tmux-1.8/examples/vim-keys.conf /usr/share/man/man1/tmux.1.gz
・パッケージファイル名からパッケージ名を出力
パッケージファイル(.rpm)を指定する。
実用的に使うときがあまり想定できない、どのようなときに使用するんだろう?
[root@localhost wantan]# rpm -qp libvpx-1.3.0-5.el7_0.x86_64.rpm libvpx-1.3.0-5.el7_0.x86_64
・パッケージの詳細情報を表示する
[root@localhost wantan]# rpm -qi tmux Name : tmux Version : 1.8 Release : 4.el7 Architecture: x86_64 Install Date: 2020年07月06日 23時45分02秒 Group : Applications/System Size : 571847 License : ISC and BSD Signature : RSA/SHA256, 2014年07月04日 14時34分17秒, Key ID 24c6a8a7f4a80eb5 Source RPM : tmux-1.8-4.el7.src.rpm Build Date : 2014年06月10日 11時40分36秒 Build Host : worker1.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://sourceforge.net/projects/tmux Summary : A terminal multiplexer Description : tmux is a "terminal multiplexer." It enables a number of terminals (or windows) to be accessed and controlled from a single terminal. tmux is intended to be a simple, modern, BSD-licensed alternative to programs such as GNU Screen.
・パッケージの依存関係を表示する
[root@localhost wantan]# rpm -qR tmux /bin/sh /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) (・・省略・・)
・変更履歴を表示する
[root@localhost wantan]# rpm -q --changelog tmux * 金 1月 24 2014 Daniel Mach <dmach@redhat.com> - 1.8-4 - Mass rebuild 2014-01-24 * 金 12月 27 2013 Daniel Mach <dmach@redhat.com> - 1.8-3 - Mass rebuild 2013-12-27 (・・省略・・)
YUMパッケージ
yum設定の基本
yumはrpm系パッケージにおけるAPTツールと同等のもので、インターネット経由で最新パッケージを依存性を考慮して取得、インストールする。
yumの設定ファイルは「/etc/」配下の以下の2種が存在する。
-rw-r--r--. 1 root root 970 4月 3 00:56 yum.conf drwxr-xr-x. 2 root root 220 4月 3 00:56 yum.repos.d
・yum.conf
ログファイルの配置場所や取得元のURLなどが記述されるファイル。
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release
・yum.repos.d
パッケージの入手先を追加する設定ファイルを格納するディレクトリ。
リポジトリに存在しないパッケージや最新版を取得したい場合などにも使用する。
例えばdocker CEの例を抜粋。
[root@localhost yum.repos.d]# cat docker-ce.repo [docker-ce-stable] name=Docker CE Stable - $basearch baseurl=https://download.docker.com/linux/centos/7/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://download.docker.com/linux/centos/gpg
yumコマンド
■サブコマンド
サブコマンド | 説明 |
---|---|
check-update | アップデート対象のパッケージを表示 |
update | パッケージのアップデート |
install | パッケージをインストール |
remove | パッケージをアンインストール |
info | パッケージ情報を表示 |
list | 全パッケージをリスト表示 |
repolist | リポジトリ一覧を表示 |
search | パッケージを検索 |
search all | パッケージを検索(説明分含む) |
groups list | パッケージグループを表示 |
group install | パッケージグループをインストール |
主要コマンドの実行例
・全てYesでパッケージをインストール
よく使うやつ。「-y」オプションを添えて。
[root@localhost wantan]# yum install -y mlocate 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ mlocate.x86_64 0:0.26-8.el7 を インストール --> 依存性解決を終了しました。 (・・省略・・)
・全てYesでパッケージをアンインストール
[root@localhost wantan]# yum remove -y tree 読み込んだプラグイン:fastestmirror 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ tree.x86_64 0:1.6.0-10.el7 を 削除 --> 依存性解決を終了しました。 依存性を解決しました
・パッケージのアップデート可否を確認
[root@localhost wantan]# yum check-update dbus.x86_64 1:1.10.24-14.el7_8 updates dbus-libs.x86_64 1:1.10.24-14.el7_8 updates
・パッケージのアップデート
パッケージ名を省略した場合は全パッケージを対象としてアップデートする。
[root@localhost wantan]# yum update dbus
・パッケージをリスト表示する
全て表示されると多いので実践的にはgrepで絞る方が多いのかな?
でもそれだと「search」とかぶるので、そのままの機能でインストール済みパッケージの記録ろかでしょうか。
yum list
・パッケージの検索
[root@localhost wantan]# yum search tmux 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp ============================== N/S matched: tmux =============================== tmux.x86_64 : A terminal multiplexer
・リポジトリ一覧を表示する
[root@localhost wantan]# yum repolist 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp リポジトリー ID リポジトリー名 状態 base/7/x86_64 CentOS-7 - Base 10,070 docker-ce-stable/x86_64 Docker CE Stable - x86_64 79 extras/7/x86_64 CentOS-7 - Extras 412 updates/7/x86_64 CentOS-7 - Updates 898 repolist: 11,459
・パッケージの情報の表示
[root@localhost wantan]# yum info tmux インストール済みパッケージ 名前 : tmux アーキテクチャー : x86_64 バージョン : 1.8 リリース : 4.el7 容量 : 558 k リポジトリー : installed 提供元リポジトリー : base 要約 : A terminal multiplexer URL : http://sourceforge.net/projects/tmux ライセンス : ISC and BSD 説明 : tmux is a "terminal multiplexer." It enables a number of : terminals (or windows) to be accessed and controlled from : a single terminal. tmux is intended to be a simple, : modern, BSD-licensed alternative to programs such as GNU : Screen.
Zypper
ZypperはopenSUSEディストリビューションで使用されるパッケージマネージャ。
全く馴染みがなかったですが、試験的には他のパッケージマネージャと比べると優先度は落ちるものの出題はある模様。
内部的にはRPMが使用されているためこの位置。
zypper コマンド
zypperコマンドは以下の形式で実行する。
「-」はつかない。
zypper [サブコマンド]
■サブコマンド
特徴的なのは省略形式。原則は頭二文字で省略形式となる。
サブコマンド | 説明 |
---|---|
install (in) | パッケージのインストール |
update (up) | パッケージのアップデート |
remove (rm) | パッケージのアンインストール |
info | パッケージの詳細情報表示 |
search (se) | パッケージの検索 |
list-update (lu) | アップデート可能なパッケージの表示 |
repos (lr) | リポジトリの一覧表示 |
refresh | リポジトリの更新 |
・前回(第七回)
www.wantanblog.com
・次回(第九回)
www.wantanblog.com