LoginSignup
7
10

More than 1 year has passed since last update.

インストールコマンド(rpm,yum,dnf,apt,dpkg)

Last updated at Posted at 2022-05-29

パッケージ管理

Linuxのパッケージは大きく分けて以下の2つの方式が存在する。
・Debian形式
・RPM形式

パッケージを個別管理する場合 rpmdpkg などが存在し、依存関係などが記述された、言うなれば「依存表」のようなものを持っている。それを元に yumapt といったツールを使用して、依存関係を解決し、コマンドひとつでパッケージ郡をインストール出来るようになっている。

image.png

依存関係

ソースコードからコンパイルしてアプリケーションを導入するときは「configure」「make」「make install」とコマンドを入力するのが一般的。

①パッケージ内の依存関係
⇒一つのパッケージを構成するファイル群同士の依存関係
②パッケージ同士の依存関係
⇒あるパッケージAが動くためには、あるパッケージBも必要といった関係

rpm

 「rpm」は、Red Hat系のLinuxディストリビューションで使われている“RPM(Red Hat Package Manager)パッケージ”を扱うことができるパッケージ管理コマンド

rpm コマンドオプション [その他オプション] [パッケージ名など]

インストール
# rpm -ivh <パッケージ名>
パッケージをアップグレード
# rpm -Uvh <パッケージ名>
パッケージを削除
# rpm -e <パッケージ名>
インストールされているrpmパッケージを表示
# rpm -qa <パッケージ名>

特定のパッケージを調べるには「grep」
# rpm -qa | grep パッケージ名
インストールされているパッケージの情報を表示
# rpm -qi <パッケージ名>
パッケージによりインストールされているファイル一覧が表示
# rpm -ql <パッケージ>
そのファイルがどのパッケージにふくまれるのかを表示
# rpm -qf <ファイル名>
パッケージの依存関係を表示
# rpm -qR <パッケージ名>
手元のパッケージの情報を表示
# rpm -qip <ローカルのパッケージ名>
パッケージによりインストールされるファイル一覧が表示
# rpm -qlp <パッケージ名>

rpmのオプション

●コマンドオプション
-i (--install):パッケージをインストール
-U (--upgrade):パッケージをアップグレード(なければインストール)
-F (--freshen):パッケージをアップグレード
-e (--erase):パッケージをアンインストール(削除)
-q (--query):問い合わせ(パッケージ情報の表示と検索)
-V (--verify):パッケージを検査

●共通のオプション
-v:情報表示を増やす
-vv:「-v」指定時よりも詳細な情報を表示する(デバッグ用)
--quite:情報表示を減らす(エラーメッセージのみになる)

●インストール/更新/削除時に使用できる共通オプション
-h (--hash):インストール時の経過を「#」マーク(ハッシュマーク)で表示
--test:実際のインストールなどは行わず、テストのみ行う
--nodeps:パッケージの依存関係を検証しない

●インストール/更新時に使用できるオプション
--excludepath OLDPATH:パスの名前が「OLDPATH」で始まるファイルをインストールしない
--excludedocs:「man」なども含め、文書であるとマーク付されたファイルをインストールしない
--includedocs:文書ファイルをインストールする(デフォルト)
--ignoresize:インストール前に、ディスクの空き領域をチェックしない
--ignorearch:パッケージのアーキテクチャ(CPUなど)がインストール先と一致しなくてもインストールやアップグレードを行う
--ignoreos:パッケージのOSがインストール先と一致しなくてもインストールやアップグレードを行う
--nosignature:パッケージまたはへッダの署名を検査しない
--nosuggest:不明な依存性を解消するパッケージを提案しない
--noscriopts:ファイルの配置だけを行いスクリプトは実行しない
--force:「--replacepkgs」「--replacefiles」「--oldpackage」相当
--replacepkgs:指定したパッケージが既にインストールされていてもインストール
--replacefiles:他のパッケージによってインストールされたファイルを置き換えてしまう場合でもインストール
--oldpackage:インストール済みのパッケージよりもバージョンが古くても更新

●情報問い合わせ関連(-q、-Vと一緒に使用するオプション)
-a(--all):インストールされているパッケージを一覧表示
-i:パッケージの情報を表示
-R(--requires):依存しているファイル名を表示
--provides:パッケージが提供する機能(ライブラリなど)を表示
--changelog:パッケージの更新情報を表示
-l(--list):パッケージに含まれるファイルを表示
-c(--configfiles):設定ファイルのみを表示する(「-l」を指定したものと見なす)
-d(--docfiles):文書ファイルのみを表示する(「-l」を指定したものと見なす)
-f ファイル名:指定したファイルがどのパッケージからインストールされたのかを表示する(フィールドあるいはフルパスで指定)
-p:パッケージ名ではなく、RPMパッケージファイルを指定して問い合わせる

yum

役割としてはRPMパッケージを統合管理
RPM単体ではパッケージ情報、依存関係などの情報を持ち合わせているものの、それを統合的に管理運用するシステムがない

yum [オプション] コマンド [パッケージ名など]

リポジトリにアップデートがないかチェックをかける
# yum check-update
リポジトリにアップデート、チェックおよび実際にアップデート
# yum update
リポジトリからパッケージをインストール。なお依存関係にあるパッケージも自動的に解決
# yum install <パッケージ名>
リポジトリからパッケージを検索
# yum search <パッケージ名>
インストールされているパッケージを削除
# yum remove <パッケージ名>
インストールされているパッケージの情報を表示
# yum info <パッケージ名>
インストールされているパッケージ一覧
# yum list installed

yumの主なコマンド

●パッケージ操作関係
install:パッケージをインストール
reinstall:パッケージを再インストール
downgrade:パッケージをダウングレード
erase:パッケージを削除
update:システムのパッケージを更新
update-minimal:「重要な更新」だけを更新
upgrade:不要になったパッケージを考慮しながらパッケージを更新
distribution-synchronization:最新の利用可能なバージョンへインストール済みパッケージを同期
localinstall:パッケージファイル(RPMファイル)を指定してインストール
localupdate:パッケージファイル(RPMファイル)を指定してアップデート

●情報関係のコマンド
info:パッケージもしくはパッケージグループの詳細を表示
list:パッケージグループの一覧を表示
deplist:パッケージの依存性の一覧を表示
groups:パッケージグループの情報を表示
search:指定した文字列でパッケージの詳細を検索
provides:ファイルなどを指定して、該当するファイルを提供するパッケージを検索
repolist:ソフトウェアリポジトリの構成を表示
version:ホストが利用できるリポジトリのバージョンを表示

●メンテナンス関係のコマンド・その他
check:rpmデータベースの問題を確認
check-update:更新に利用できるパッケージを確認
clean:キャッシュデータを削除
shell:対話型のシェル(yumシェル)を実行
updateinfo:リポジトリの更新情報を表示

yumの主なオプション

-y(--assumeyes):全ての問い合わせに「yes」で応答したものとして実行
--assumeno:全ての問い合わせに「no」で応答したものとして実行
-t(--tolerant):エラーを黙認
-R(--randomwait) 分:最大の待ち時間を指定
-c 構成ファイル:構成ファイルを指定
--installroot=場所:インストール先を指定
--downloaddir=場所:ダウンロード先を指定
--downloadonly:ダウンロードだけを行う
-C(--cacheonly):パッケージの情報をダウンロードせずキャッシュだけを使用
-x(--exclude) パッケージ:除外するパッケージを指定する(ワイルドカードも使用可能)
--color=指定:出力メッセージを色付きにするかどうかを「always」「auto」「never」のいずれかで指定
-q(--quiet):実行時にメッセージを出力しない
-v(--verbose):詳しいメッセージを出力

dnf

「dnf」は、Red Hat系のLinuxディストリビューションで使われている“RPMパッケージ”を扱うためのパッケージ管理コマンド

dnf [オプション] コマンド [パッケージ名など]

指定したパッケージを更新
# dnf upgrade <パッケージ名>
「bash」パッケージを更新
# dnf upgrade bash
名前が「git」から始まるパッケージを更新
# dnf upgrade git*
指定したグループのパッケージを更新
# dnf group upgrade  <グループ名>
システムにインストールされているパッケージを全て更新
# dnf upgrade

dnfの主なコマンド

●パッケージ操作関係
install:パッケージをインストール(既にインストールされていた場合は更新する)
reinstall:パッケージを再インストール
downgrade:パッケージをダウングレード
erase:パッケージを削除
remove:パッケージを依存関係のあるパッケージとともに削除
autoremove:依存関係のためにインストールされていた不要なパッケージを削除
update:システムのパッケージを更新
upgrade-minimal:不具合の修正や機能追加、セキュリティ対応など「重要な更新」だけを更新
distro-sync:最新の利用可能なバージョンへインストール済みパッケージを同期
mark install:指定したパッケージを手動でインストールしたものとする(autoremoveの対象外となることが利点、「dnf mark remove パッケージ名」でマークを削除)

●情報関係のコマンド
info:パッケージもしくはパッケージグループの詳細を表示
list:パッケージグループの一覧を表示
deplist:パッケージの依存性の一覧を表示
group:パッケージグループの情報を表示
search:指定した文字列でパッケージの詳細を検索
provides:ファイルなどを指定して、該当するファイルを提供するパッケージを検索
repolist:ソフトウェアリポジトリの構成を表示

●メンテナンス関係/その他
makecache:パッケージリストを格納したデータベース(リポメタデータ)をダウンロードし、キャッシュを作成/更新
check:ローカルのパッケージデータベースに問題がないかどうか確認
check-update:更新に利用できるパッケージを確認
clean:キャッシュデータを削除
shell:対話型のシェル(DNFシェル)を実行
updateinfo:リポジトリの更新情報を表示
history:パッケージのインストールや削除の履歴を表示

dnfの主なオプション

●dnfの主なオプション
-y(--assumeyes):全ての問い合わせに「yes」で応答したものとして実行
--assumeno:全ての問い合わせに「no」で応答したものとして実行
-C(--cacheonly):パッケージの情報を全くダウンロードせずに、キャッシュだけを使用
--refresh:コマンド実行前にパッケージ情報のキャッシュを強制的に更新
-R(--randomwait) 分:最大の待ち時間を指定
-c 構成ファイル:構成ファイルを指定
--enablerepo リポジトリID:指定したリポジトリを有効にする
--disablerepo リポジトリID:指定したリポジトリを無効にする
--repo リポジトリID:指定したリポジトリだけを有効にする(複数ある場合は「--repo」「--repoid」を複数回使用する)
--repoid リポジトリID:--repoと同じ
--nodocs:ドキュメントをインストールしない
--allowerasing:依存関係を解決するためにインストール済みパッケージの削除を許可
--installroot=場所:インストール先を指定
--downloaddir=場所:ダウンロード先を指定
--downloadonly:ダウンロードだけを行う
-x(--exclude) パッケージ:除外するパッケージを指定する(ワイルドカードも使用可能)
--showduplicates:dnfのサブコマンド「info」「search」で重複しているものも表示
--color=指定:出力メッセージを色付きにするかどうかを「always」「auto」「never」のいずれかで指定
-q(--quiet):実行時にメッセージを出力しない
-v(--verbose):詳しいメッセージを出力

apt

aptコマンドは、Debian系のディストリビューションに使われているパッケージ管理用のコマンド

apt [オプション] コマンド [パッケージ名やコマンド用オプションなど]

aptの主なコマンド

●パッケージの検索と操作
list:パッケージ一覧を表示
search キーワード:パッケージの説明文からキーワードを検索して該当するパッケージを表示
show:指定したパッケージの情報を表示
install:指定したパッケージをインストール
remove:指定したパッケージを削除

●設定とシステムメンテナンス
edit-sources:sources.listファイル(パッケージのダウンロード元などを指定するファイル)を編集
update:パッケージのインデックスファイルを更新
upgrade:インストール済みのパッケージをまとめて更新
full-upgrade:upgradeと同様だが、更新に伴って使用できなくなるパッケージを削除するなどの調整も行う

aptの主なオプション

-c=設定ファイル:使用する設定ファイルを指定(デフォルトの設定ファイルの後に読み込まれる)
-o=設定オプション:設定オプションを指定

dpkgコマンド

「dpkg」とはdebianのパッケージである「deb」ファイルを取り扱うコマンド

dpkg [オプション] アクション

パッケージをインストール
# dpkg -i <アーカイブ名>
パッケージを削除
# dpkg -r <パッケージ名>
パッケージを設定ファイル含め完全に削除
# dpkg -P <パッケージ名>
パターンにマッチするパッケージを一覧表示、なにも指定しないとインストールされているパッケージ一覧表示
# dpkg -l もしくはパターン

dpkgの主なアクション

-i (-install):パッケージをインストール
-r (--remove):設定ファイルを残してパッケージをアンインストール
-R (--purge):ディレクトリ内を再起的に処理

インストールコマンドの違い

「rpmとはパッケージ個々」であり「yumはrpmを管理するマネージャ」
ネット上から拾ってきたパッケージに対して「CentOSではrpm」で「Ubuntuではdpkg」
「dnfはCentOS 7が採用しているyumの後継となるコマンド」

rpm(個々のパッケージを扱う)
・管理はパッケージ個々単位であり依存関係は自動解決されない
◎パッケージ単位での管理となるので「rpm」など「.rpm」ファイルを指定する。
・個々の細かいファイル情報も参照できる
◎リポジトリに依存しない
・個々で管理するときはrpmコマンドを使用する
・依存関係を自動解決させたいのなら、yumリポジトリに投入する必要がある

yum(リポジトリから依存関係を含めて管理する)
◎基本的にリポジトリの中のrpmを統合管理しており依存関係を自動解決
・インストール時は基本的に「yum search」でヒットする名前を指定すればよい
・リポジトリ上に存在しているインストールしていないパッケージの検索や情報閲覧が可能
・ディストリビューション内のパッケージのアップデートもyumを使用する
・Python 2とPython 3の両対応ではなくPython 2でしか動かない

dnf
・yumと同じサブコマンド、オプションを使用可能
・yumの後継となるパッケージ管理ツール
・「/etc/yum.repos.d」ディレクトリを使用

用語集

・リポジトリ:パッケージの提供元
・パッケージ:関連する様々な要素を一つにまとめたもの

7
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
10