Skip to content

Linuxコマンド(パッケージ管理)のチートシート

inoue.h edited this page Sep 11, 2023 · 6 revisions

Home > Software > ソフトウエア開発・PC管理のメモ帳 > this page (このページ)


Linuxシステムのパッケージ管理を行うコマンドを個人的にメモしたものです



Table of Contents

パッケージ管理(yum)

パッケージ名の指定は、ワイルドカード文字 '*' が利用可能。

新規パッケージのインストール
 yum install [パッケージ名1] [パッケージ名2] ...
パッケージのアップデート
 yum update [パッケージ名1] [パッケージ名2] ...

全パッケージのアップデート

 yum update
既存パッケージの削除
 yum remove [パッケージ名1] [パッケージ名2] ...
パッケージ情報の表示
指定したパッケージの情報を表示
 yum info [パッケージ名]

指定した文字列をパッケージ名や説明に含むパッケージの表示

 yum search [検索文字列]

インストール済みのパッケージ一覧を表示

 yum list installed

指定したファイルを含むパッケージの検索

 yum provides '*/ファイル名'

全てのパッケージ一覧を表示

 yum list
yumデータベースのフラッシュ操作
 yum clean all
 yum clean dbcache
 yum clean metadata

開発環境(ライブラリのインストール)

開発環境の基本機能をインストール

 yum groupinstall "Development Tools"

指定したパッケージに必要なライブラリをすべてインストール

 yum-builddep PACKAGENAME.src.rpm

パッケージ管理(rpm)

実行中の表示は -v オプション。さらに詳しいオプションは -vv オプション。
操作実施せず、テストメッセージのみは --test オプション。
依存関係チェックを行わない --nodeps オプション。

新規パッケージのインストール
インストール
 rpm -i [パッケージファイル名] または rpm --install [パッケージファイル名]
 rpm -ivh [パッケージファイル名]

-h:インストール時に"#####"のようなグラフを表示する。

既存パッケージのアップデート
既存パッケージのみのアップデート
 rpm -F [パッケージファイル名]

既存パッケージをアップデート。未インストールの場合は、新規インストールする

 rpm -U [パッケージファイル名]

既存パッケージを強制アップデートする場合は

 rpm -U --force [パッケージファイル名]
既存パッケージの削除
 rpm -e [パッケージ名] または rpm --erase [パッケージ名]
既存パッケージの表示
インストール済みパッケージの一覧
 rpm -qa または rpm -q -a

パッケージがインストールされた日時を表示

 rpm -q --last [パッケージ名]

特定のファイルをインストールしたパッケージの表示

 rpm -qf [フルパスのファイル名] または rpm -q -f [フルパスのファイル名]
 例:rpm -qf /etc/samba/smb.conf

パッケージのバージョンアップ履歴を全て表示する

 rpm -q --changelog [パッケージ名]
 例:rpm -q --changelog samba

パッケージに含まれるファイル一覧

 rpm -q -l [パッケージ名]

パッケージに含まれる設定ファイル一覧

 rpm -q -c [パッケージ名]

そのパッケージが依存しているパッケージを表示

 rpm -q -R [パッケージ名]
 例:rpm -q -R parted

そのパッケージが依存されているパッケージを表示

 rpm -q --provides [パッケージ名]

インストール済みパッケージの改変状態表示

 rpm -V -v [パッケージ名]
   ↓
 ........ c /etc/rc.d/init.d/smb

属性比較結果、属性マーク、ファイル名の順に表示される。 属性比較結果は、"........"が改変無しで、改変ありの場合、S:サイズ、5:MD5、U:所有者、T:時刻、… と表示される。 属性マークは、パッケージで指定されている属性で、c:config、d:document、r:readme、…など。

rpmデータベースのフラッシュ操作
 rpm --rebuilddb -vv

パッケージ管理(apt)

CLIに特化したapt-getコマンド、ターミナルアプリ上でインタラクティブなプログレス表示等ができるaptコマンド。どちらを使ってもよい

パッケージリストの更新
 apt-get update
パッケージの追加(インストール)
 apt-get install [パッケージ名]

パッケージのダウンロード(インストールしない)

 apt-get download [パッケージ名]
パッケージのアップデート
 apt-get upgrade

「パッケージの保留」が出た場合、依存関係をチェックしてからアップグレードを行う

 apt-get -s dist-upgrade
 apt-get dist-upgrade
既存パッケージの削除
 apt-get remove [パッケージ名]
パッケージ情報の表示
指定されたパッケージの概要説明
 apt-cache show [パッケージ名]

指定されたパッケージの依存関係を詳細に表示 パッケージの検索(--names-onlyで説明文を検索対象から除外)

 apt-cache search [キーワード1] [キーワード2] ...
 apt-cache --names-only search [キーワード1] [キーワード2] ...

指定したファイルを含むパッケージの検索

 apt-file search 'ファイル名'

更新履歴の表示

 apt-get changelog [パッケージ名]
キャッシュ操作
依存関係の再チェック
 apt-get check
ソースコードをカレントディレクトリにダウンロード
 apt-get source [パッケージ名]
ソースコードのビルドに必要な依存パッケージを一括追加
 apt-get build-dep [パッケージ名]
リポジトリの追加
 add-apt-repository [リポジトリ名]
 apt-get update

例:add-apt-repository ppa:test/sample_repository

aptリポジトリ

リポジトリは /etc/apt/sources.list および /etc/apt/sources.list.d/*.list に次のような形で格納されている

 deb http://jp.archive.ubuntu.com/ubuntu/ jammy main restricted
 deb-src http://jp.archive.ubuntu.com/ubuntu/ jammy main multiverse restricted universe

現在認識している全てのリポジトリを列挙(簡易的に…)

 grep -r --include '*.list' '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/ | awk '{print $2, $3, $4, $5}'

/etc/apt/sources.list に任意のリポジトリ行を追加する

 wget -nc https://example.com/path/to/repo.key
 sudo apt-key add repo.key
 sudo apt-add-repository 'deb https://example.com/path/to/ xxenial main'

/etc/apt/sources.list にPPAのリポジトリ行を追加する

 sudo apt-add-repository ppa:DEVELOPPER_NAME/PPA_NAME

/etc/apt/sources.list からPPAのリポジトリ行を削除する

 sudo add-apt-repository --remove ppa:DEVELOPPER_NAME/PPA_NAME

開発環境(ライブラリのインストール)

開発環境の基本機能をインストール

 apt-get install build-essential

指定したパッケージに必要なライブラリをすべてインストール

 apt-get build-dep [PACKAGENAME]

パッケージ管理(snap)

パッケージの追加(インストール)
 snap install [パッケージ名]

stable/beta/candidateチャンネルをインストールする場合(※stableはチャンネル指定しなくてもデフォルトのインストール対象だが、betaチャンネルやcandidateチャンネルをインストールする場合は、明確に指定する必要がある)

 snap install [パッケージ名] --stable
 snap install [パッケージ名] --beta
 snap install [パッケージ名] --channel=beta
 snap install [パッケージ名] --candidate
 snap install [パッケージ名] --channel=candidate

ソフトウエアの隔離(制限)を行わずにパッケージをインストールする

 snap install [パッケージ名] --classic
パッケージのアンインストール
 snap remove [パッケージ名]

revisionを指定してパッケージを削除する(snap list --allでdisabledとされたものを削除するときなど)

 snap remove [パッケージ名] --revision=123456

disabledの全てのパッケージを削除する

 snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do sudo snap remove "$snapname" --revision="$revision"; done
パッケージの有効化と無効化
 snap enable [パッケージ名]
 snap disable [パッケージ名]
パッケージのアップデート
snapでインストールしたパッケージは自動でアップデートされるが、手動でアップデートする場合は
 snap refresh [パッケージ名]

すべてのパッケージをアップデートする

 snap refresh

アップデートできるパッケージの一覧を表示

 snap refresh --list

自動アップデートの設定(指定時間、○時間間隔)

 snap set system refresh.timer=03:00
 snap set system refresh.timer=00:00~24:00/6

現在のアップデート間隔の表示

 snap refresh --time
インストール済みのパッケージ一覧
 snap list

無効化されたものも含めたすべてのパッケージ一覧

 snap list --all
パッケージ情報の表示(検索)
 snap search [パッケージ名]
 snap find [パッケージ名]

パッケージ管理(dpkg)

debパッケージの追加(依存パッケージは自動的には解決されない)
 dpkg -i [パッケージ名]
パッケージの削除(/etc 以下の設定ファイルは残す)
 dpkg -r [パッケージ名]
パッケージの削除(設定ファイルも含め、根こそぎ削除)
 dpkg --purge [パッケージ名]
インストール済みパッケージ名一覧
 dpkg -l
 dpkg -l [パッケージ名]
インストール済みパッケージで展開されるファイル名一覧
 dpkg -L [パッケージ名]

指定したパッケージファイルで展開されるファイル名一覧(未インストールでもOK)

 dpkg --contents [パッケージファイル名]
パッケージの内容(説明)を表示
 dpkg-deb -I [パッケージファイル名]
特定のファイルが含まれるパッケージを検索表示
 dpkg -S [ファイル名]
ソースコードのビルド
 dpkg-buildpackage
『未解決の依存関係です。'apt --fix-broken install' を実行…』を消去する
保留されているパッケージ(インストールに失敗しているパッケージ)を表示する
 dpkg --audit

保留されているパッケージを削除する

 dpkg --remove --force-remove-reinstreq [パッケージ名]
パッケージを作成する
controlファイルを作成
 equivs-control [新規作成するコントロールファイル名]

controlファイルを編集(最低限、次の項目は編集する)

 Section: misc
 Priority: optional
 Standards-Version: 1.0.0   ← バージョン番号を指定
 Package: dummy-test-package   ← パッケージ名
 Description: dummy test package   ← 1行説明文
  dummy test pakage   ← この行より下(1文字インデント)は複数行説明文
  .
  made with equivs-control and equivs-build

パッケージをビルド

 equivs-build

Perl, CPAN

モジュールの追加(cpanシェル内での実行)
 install [モジュール名]
アップデート可能なモジュールの一覧(cpanシェル内での実行)
 r
 r [モジュール名]
モジュールのアップデート(cpanシェル内での実行)
 upgrade
 upgrade [モジュール名]

モジュールの検索パス表示

 perl -e 'print join("\n",@INC)'
モジュールの検索(cpanシェル内での実行)
 i /検索するキーワード/
 m /モジュール名/
インストール済みのモジュール一覧表示
 find `perl -e 'print "@INC"'` -name '*.pm' -print
または
 perl -MExtUtils::Installed -e '$inst=ExtUtils::Installed->new();print $_."\n" for $inst->modules'
インストールされているモジュール一覧表示(バージョン番号付き)
 perl -MExtUtils::Installed -e '$inst=ExtUtils::Installed->new();print $_." (ver ".$inst->version($_).")\n" for $inst->modules'
特定モジュールのインストール ディレクトリの表示
 find `perl -e 'print "@INC"'` -name 'モジュール名.pm' -print
モジュール一覧をインストール日時と共に一覧表示
 grep Module `perldoc -l perllocal`
 perldoc -tT perllocal
ローカルのPerlモジュールをインストールする(ソースコードのディレクトリでビルド、インストール)
 perl ./Makefile.PL
 make
 sudo make test
 sudo make install