はじめに
Linuxサーバーの運用保守において、意図しない自動更新によるサービスの互換性崩壊を防いだり、不要になったライブラリ群を安全にクリーンアップしたりするスキルは欠かせません。本記事では、Ubuntu環境で重宝する apt-mark を取り上げ、特定ソフトウェアの更新をロックする「保留(hold)」の設定や、自動・手動インストールのフラグ制御手法を実践形式で解説します。本番環境の可用性を高めるパッケージ制御の勘所を掴みましょう。
アップデート対象からの除外:hold と showhold によるバージョン固定
まずは検証環境を整えるため、sudo apt-get update -qq && sudo apt-get install -y curl を実行してリポジトリ情報を同期し、検証対象となる curl をセットアップします。

特定のソフトウェアを現行バージョンにとどめたい場合は、sudo apt-mark hold curl を発行します。これにより、後日システム全体に対して apt upgrade を実行した際にも、該当パッケージが更新対象から自動的に除外されます。
⚙️ [主要サブコマンド解説]
hold : 対象パッケージを保留フラグに指定し、一括アップデート時の更新をブロックします。unhold : 保留指定を解除し、通常のアップグレードサイクルへ復帰させます。showhold : 現在更新ロックが適用されているパッケージの一覧を表示します。auto : 指定パッケージを「依存関係として導入された自動インストール」属性へ切り替えます。manual : 管理者が意図して導入した「手動インストール」属性を付与します。showauto : システム内の自動インストール対象パッケージをリストアップします。showmanual : 手動で明示的に導入されたパッケージの一覧を出力します。

設定が正しく反映されたか確かめるには、apt-mark showhold を使用します。
実行結果に curl がリストアップされていれば、意図しないバージョンアップの抑止設定が正常に有効化されています。

更新ロックの解除:unhold による通常更新への復帰
互換性テストが完了してバージョンアップが可能になった段階では、sudo apt-mark unhold curl を用いて保護設定を解除します。
ターミナル上に Canceled hold on curl. と出力されれば、通常の更新対象へと安全に復元されています。

保留状態が残っていないかを apt-mark showhold で再チェックします。
出力結果が空行であれば、先ほど指定したロック設定が完全に外れていることが確認できます。

インストール属性の切り替え:markauto と unmarkauto を用いた依存関係の最適化
不要パッケージの自動削除(apt autoremove)を適切に機能させるため、インストールの属性フラグを制御してみましょう。ここでは検証用として sudo apt-get install -y jq で jq を導入します。

導入後、sudo apt-mark markauto jq を実行すると、該当ソフトウェアのステータスが「手動導入」から「他ツールの依存関係による自動導入」へと変更されます。
この属性にしておくことで、将来的に親パッケージを削除した際、連動してガベージコレクションの対象に含めることが可能になります。

属性の変更状況を追跡するには apt-mark showauto jq を実行します。
ターミナルに jq が返答されれば、自動導入フラグへの書き換えが成立しています。

一方、勝手な自動削除を防いで恒久的に残したいコンポーネントには、sudo apt-mark unmarkauto jq を指定して手動インストール状態へ引き戻します。
これにより、依存元の有無に関わらず apt autoremove でクリーンアップされる心配がなくなります。

復元状態の検証には apt-mark showmanual jq を叩きます。
出力にパッケージ名が表示されれば、手動管理対象として安全に保護されていることが実証されます。

導入済みパッケージの棚卸し:インストール属性の一括監査
現状のシステム構成を俯瞰するため、apt-mark showmanual | head -n 10 を実行して手動インストールされた主要コンポーネントを先頭10件抽出します。
ベース環境のコアユーティリティや、先にセットアップした curl などが管理者導入分としてしっかり識別されている様子が把握できます。

続けて apt-mark showauto | head -n 10 を走らせ、依存関係としてバックグラウンドで導入されたコンポーネントの上位10件を確認します。
各種共有ライブラリやランタイムが自動管理フラグを維持している構造が読み取れます。

apt-mark を使いこなすことで、不測のアップデート事故を未然に防ぎつつ、不要になった依存ファイルを無駄なく整理できる強固なLinux環境が構築できます。
システムの安定稼働に向けて、状況に応じたきめ細やかなパッケージ管理をぜひ現場で実践してみてください。