apt / apt-get コマンド|Debian・Ubuntu でパッケージを管理する完全ガイド

コマンドリファレンス

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

apt と apt-get の違い

aptapt-get はどちらも Debian/Ubuntu 系のパッケージ管理ツールですが、用途が異なります

比較項目aptapt-get
主な用途人間が手動で操作する場面向けスクリプト・自動化・CI/CD 向け
プログレスバーあり(カラー表示)なし(テキストのみ)
出力の安定性バージョン間で変わる可能性がある後方互換性が保証されている
登場時期Ubuntu 16.04 以降(比較的新しい)古くからある安定したインターフェイス
コマンド例apt install nginxapt-get install nginx

使い分けのポイント

  • ターミナルで手動操作するときは apt が便利(視認性が高い)
  • シェルスクリプトや Dockerfile では apt-get を推奨(出力形式が安定)
  • 検索・情報表示には apt-cache コマンドも引き続き使われる(apt-cache searchapt-cache policy など)

構文(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?

sudo を使う理由:root 権限とパッケージ管理

apt / apt-get でパッケージをインストール・削除・更新するには root 権限が必要です。Ubuntu では直接 root ログインを禁止し、代わりに sudo を使って一時的に root 権限を取得するのが標準的な運用です。

よく使う sudo + apt のパターン

# リポジトリ索引の更新(root権限が必要)
sudo apt update

# パッケージのインストール(root権限が必要)
sudo apt install curl

# -y で確認プロンプトをスキップ(CI/CD や自動化でよく使う)
sudo apt -y install nginx

sudo を先頭に付けると、そのコマンドだけ管理者権限で実行されます。パスワード入力後、一定時間(デフォルト15分)はキャッシュされ、再入力が不要になります。

sudoers とは

sudoers とは、どのユーザーが sudo を使えるかを定義する設定ファイル/etc/sudoers)およびその仕組みのことです。

# sudoers ファイルの安全な編集方法(必ずvisudoを使うこと)
sudo visudo

sudoers の主な注意点:

  • 直接編集しない: /etc/sudoersnanovi で直接編集するのは危険。構文エラーで sudo が使えなくなることがある。必ず sudo visudo を使う(保存前に構文チェックが走る)。
  • Ubuntu のデフォルト設定: インストール時に作成したユーザーは sudo グループに自動追加され、sudo が使える状態になっている。追加ユーザーに権限を付与するには sudo usermod -aG sudo ユーザー名 を実行する。
  • NOPASSWD 設定の注意: NOPASSWD: ALL を設定するとパスワードなしで sudo 実行できるが、セキュリティリスクが高い。CI/CD 専用ユーザーに限定するなど、範囲を絞って使うこと。
  • 追加設定は /etc/sudoers.d/: /etc/sudoers 本体ではなく、/etc/sudoers.d/ ディレクトリに別ファイルで追記するのが現代的な流儀。

関連コマンド

  • sudo : 一時的に管理者権限でコマンドを実行する。Ubuntu / Linux での権限管理の基本。
  • 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玄をフォローする

コメント