Linuxコマンド(パッケージ管理)のチートシート
Home > Software > ソフトウエア開発・PC管理のメモ帳 > this page (このページ)
Linuxシステムのパッケージ管理を行うコマンドを個人的にメモしたものです
パッケージ名の指定は、ワイルドカード文字 '*' が利用可能。
- 新規パッケージのインストール
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
実行中の表示は -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
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
リポジトリは /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 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 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 [パッケージ名]
- 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 [パッケージ名]
- パッケージを作成する
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
- モジュールの追加(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