apt – Debian/Ubuntu系でパッケージを検索・更新・インストールする

検索・探索

apt は Debian/Ubuntu 系ディストリビューションのパッケージ管理コマンドです。
パッケージの検索・情報表示・更新(update/upgrade)・インストール/削除を一貫して実行できます。
実務では「まず apt updateapt install PKG」という流れで利用し、定期的に upgradeautoremove を行います。

構文(Syntax)

apt [GLOBAL_OPTIONS] COMMAND [ARGS]

# 主なコマンド(例)
apt update                     # リポジトリの索引を更新
apt upgrade                    # 既存パッケージを更新(削除は基本しない)
apt full-upgrade               # 依存関係再解決を伴う更新(削除/置換の可能性あり)
apt install PKG...             # インストール
apt remove PKG...              # 削除(設定ファイルは残す)
apt purge PKG...               # 完全削除(設定も削除)
apt autoremove                 # 不要になった依存パッケージを削除
apt search PATTERN             # 検索
apt show PKG                   # 詳細情報
apt list [--installed|--upgradable|-a PKG]  # 一覧/候補表示
apt policy [PKG]               # バージョン候補・ピン留め状況
apt edit-sources               # sources.list を編集($EDITOR)
  • 注意: スクリプト用途は apt-get/apt-cache を推奨(apt は対話者向けで出力が安定保証されません)。

主なオプション一覧

オプション説明使用例
-y, --assume-yesすべての問いに自動で「Yes」sudo apt -y upgrade
-s, --simulate変更せずにシミュレート(ドライラン)apt -s install nginx
-d, --download-onlyダウンロードのみ、適用しないapt -d install nginx
--no-install-recommends推奨パッケージを入れない(最小構成)sudo apt install --no-install-recommends nginx
--reinstall既に入っていても再インストールsudo apt install --reinstall ca-certificates
-V, --verbose-versionsバージョン番号を詳細表示apt -V list --upgradable
-q, --quietログを静かに(段階的に静音化)apt -q update
-t RELEASE目標リリース(ポケット)を指定sudo apt -t noble-updates install openssl
-o KEY=VAL一時的に設定を上書き(高度)sudo apt -o Dpkg::Options::="--force-confnew" upgrade
--fix-broken依存関係の破損を修復sudo apt --fix-broken install

オプションの有効性はコマンドによって異なります。詳細は man apt を参照。

実行例

基本の更新とアップグレード

説明: まず索引を更新し、更新可能なパッケージを適用します。
コマンド:

sudo apt update
sudo apt upgrade

出力例(抜粋):

Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
...
The following packages will be upgraded:
  openssl libc6 ...

パッケージを検索・情報確認してからインストール

説明: search で候補を探し、show で詳細を確認して導入します。
コマンド:

apt search ripgrep
apt show ripgrep | sed -n '1,10p'
sudo apt install ripgrep

出力例(抜粋):

ripgrep/noble 14.x amd64
  recursively searches directories for a regex pattern

推奨を省いて最小インストール

説明: サーバー最小構成などで余計な依存を避けます。
コマンド:

sudo apt install --no-install-recommends nginx

削除・完全削除と不要依存の掃除

説明: 設定を残す削除と、設定ごと消す完全削除、その後のクリーンアップ。
コマンド:

sudo apt remove nginx
sudo apt purge nginx
sudo apt autoremove

エラー例:sudo なしでインストール

説明: 権限がないとロックファイルにアクセスできず失敗します。
コマンド:

apt install htop

出力例(例):

E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

関連コマンド

  • apt-get : スクリプト向けの安定したインターフェイス(install, download, source 等)。
  • apt-cache : 旧来の検索/情報取得(search, policy, madison 等)。
  • dpkg : ローカルのパッケージ操作(インストール済み一覧、.deb の直接操作)。
  • add-apt-repository : PPA/追加リポジトリの登録(software-properties-common パッケージ)。
  • apt-mark : 自動/手動インストール属性、hold(固定)設定。
  • apt-key : 署名鍵管理の旧方式(非推奨signed-by= とキーチェーンファイルの利用を推奨)。

備考

  • 権限: インストールや更新は通常 root 権限が必要(sudo を使用)。
  • aptapt-get: apt は対話者向けで出力が変わる可能性あり。自動化/CIapt-get(および apt-cache)を推奨。
  • upgradefull-upgrade: upgrade は削除を伴わない更新、full-upgrade は依存関係再解決のため削除/置換があり得る。大幅更新時は後者を検討。
  • 索引ファイル: apt update を行わないと最新候補が見えません。ミラー変更直後は特に実施を。
  • リポジトリ設定: /etc/apt/sources.list/etc/apt/sources.list.d/*.list。鍵は /usr/share/keyrings/*.gpgsigned-by= で紐付ける方法が現行ベストプラクティス。
  • キャッシュ: 取得済み .deb/var/cache/apt/archives/ に保存。apt clean(全削除)/apt autoclean(古いもののみ)で削除可能。
  • アーキテクチャ指定: PKG:arch 形式で指定可(例: libc6:i386)。必要に応じ dpkg --add-architecture i386 を実行。
  • 対象OS: Debian/Ubuntu 互換。RHEL/Fedora 系では dnf/yum を使用。

参考

  • manページ: man 8 apt, man 8 apt-get, man 8 apt-cache, man 5 sources.list
  • Debian/Ubuntu 公式ドキュメント(APT ユーザーズガイド、SourcesList、パッケージ署名と signed-by の利用)
  • man 8 apt-key(非推奨事項の注記)
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント