22.

apt upgrade パッケージの更新

編集

apt upgrade は、Debian / Ubuntu 系 Linux ディストリビューションでインストール済みのパッケージを更新するコマンドです。前段で apt update を実行し、リポジトリのパッケージ情報を最新化してから使うのが定石です。

基本構文

sudo apt update
sudo apt upgrade
sudo apt upgrade -y   # 確認を省略

upgrade コマンドの種類

コマンド動作
sudo apt updateパッケージリストの更新 (実体は変更しない)
sudo apt upgradeインストール済みパッケージを安全に更新。削除・新規追加は行わない
sudo apt full-upgrade依存関係の都合で削除・追加が必要な更新も実施 (旧 dist-upgrade)
sudo apt-get dist-upgrade旧コマンド。full-upgrade 相当
sudo apt autoremove不要になった依存パッケージを削除
sudo apt autoclean古いキャッシュを削除

主なオプション

オプション用途
-y確認プロンプトを自動で「Yes」
--dry-run実際には実行せず、何が起きるかだけ表示
--with-new-pkgsカーネル更新等で新規パッケージが必要な場合に許可 (Ubuntu 20.04+ で apt upgrade の既定挙動)
--only-upgrade新規インストールせず、既に入っているもののみ
-V更新するパッケージの新旧バージョンを表示
パッケージ名特定パッケージのみ更新 (例: sudo apt upgrade openssl)

典型的な運用フロー

  1. sudo apt update でリポジトリ情報を最新化
  2. apt list --upgradable で対象一覧を確認
  3. sudo apt upgrade または sudo apt full-upgrade で適用
  4. 必要に応じて sudo apt autoremove で不要パッケージ削除
  5. カーネル・サービスが更新されたら再起動 (sudo reboot) または対象サービスの再起動

upgrade と full-upgrade の違い

項目apt upgradeapt full-upgrade
パッケージ更新
新規パッケージのインストール必要なら○ (Ubuntu 20.04+)
既存パッケージの削除×○ (依存関係解決のため必要なら)
OS メジャー版アップグレード不可可 (実際は do-release-upgrade を推奨)

セキュリティアップデートのみ実施したい場合

# セキュリティ関連のみ無人で更新 (Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

# 強制的に1回だけ実行
sudo unattended-upgrade -d

うまく更新できない時の対処

症状対処
「保留されているパッケージ」があるsudo apt full-upgrade で依存解決を許可
「リポジトリの GPG キーが無い」apt-key / signed-by 形式でキー導入
「Hash sum mismatch」ミラー一時不具合 → 数分後再試行 / sudo rm /var/lib/apt/lists/* && sudo apt update
「dpkg は中断された」sudo dpkg --configure -a → 再度 apt upgrade
「ディスク容量不足」sudo apt clean でキャッシュ削除、不要パッケージ削除

運用上の注意

  • 本番サーバでは事前に --dry-run や検証環境で挙動確認
  • カーネル更新時は再起動が必要。サービス可用性を考慮
  • apt upgrade -y を盲目的に使わない。重要パッケージ (DB, Web) は変更内容を確認
  • 長期サポート (LTS) 版を選んでおくと、互換性破壊が少ない
  • OS メジャー版の上げは apt full-upgrade ではなく do-release-upgrade を使う
  • クラウドの AMI / イメージ更新時は、起動後に apt update && apt upgrade をしてからスナップショット化が安全

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ls ファイル/ディレクトリ一覧表示
  2. sudo ユーザー指定
  3. cron/crontab ジョブの自動実行と登録方法
  4. wget http通信によるファイルダウンロード
  5. rm ファイル/ディレクトリ削除
  6. pwd カレントディレクトリの表示
  7. cd ディレクトリの移動
  8. ./configure
  9. make
  10. make install
  11. unzip ファイルの解凍
  12. mv ファイル/ディレクトリの移動および名称変更
  13. mkdir ディレクトリの作成
  14. touch 空ファイルの新規作成
  15. vi テキストディタの使用
  16. find ファイル/ディレクトリ検索
  17. grep 文字列の検索
  18. tail ファイルの末尾表示
  19. curl HTTP通信によるリクエスト
  20. nslookup ドメインのIP解決
  21. apt update パッケージリストの情報を更新
  22. apt upgrade パッケージの更新
  23. ln リンク/ショートカットの作成と削除
  24. rsync ファイル/ディレクトリの同期
  25. ssh リモートとの暗号化通信
  26. scp sshを利用したファイルのコピー
  27. unzip zip ファイルを解凍する
  28. cp ファイル/ディレクトリのコピー
  29. diffファイルの差分抽出
  30. fdisk ハードディスクに対する操作
  31. lsblk デバイスをツリー状で表示する
  32. kill プロセスを終了させる
  33. zip ファイルやディレクトリをzip形式に圧縮する
  34. host ドメインからIPアドレスを確認
  35. chmod 権限の変更
  36. ip IPアドレスの確認
  37. chown ファイル/ディレクトリ所有者の変更
  38. chgrp ファイル/ディレクトリのグループ情報の変更
  39. nohupと'&' プログラムのバックグラウンド実行(ssh接続時)
  40. lsof 開いているポート番号の確認
  41. tar ファイルの圧縮と解凍
  42. file ファイルの種類を表示
  43. cat ファイルの中身を表示
  44. head ファイルの先頭部分を表示
  45. wc 行数/単語数/文字数を確認
  46. shutdown システムのシャットダウンと再起動
  47. ps プロセスの確認
  48. which コマンドの絶対パスを調べる
  49. yum RedHat系ディストリビューションの管理
  50. mount ファイルシステムのマウント
  51. 特定フォルダ以下の特定拡張子のファイルを再帰的に削除する方法
  52. 特定のフォルダとそのサブフォルダ内にある特定のファイル名のファイルを再帰的に削除