APTの保留か更新経路か:VPNクライアントを巻き戻す
VPNクライアントのリグレッション後に、パッケージの一時保留と前向きな修正を比較します。保留が何を凍結し、何を無視し、どう解除するかを含みます。
クライアントの更新でトンネルが壊れ、古いバージョンは動き続ける。そこには明らかな二つの対処法が残る。一つはパッケージをその場に留めて修正を待つ。もう一つは直ちにサポートされた構成へ進む。両者は同じほど安全ではなく、どちらも出口のない保守戦略である。選ぶ前に、実際に何を凍結するのかで比べるべきだ。
一つのリグレッションに対する二つの対処
パッケージを保留すると、動作しているバージョンが入ったままになり、APTがそれを動かせなくなる。時間を稼ぎ、利用者をつないだままにし、根本の不具合には手を付けない。前へ進むとは、リグレッションを修正するサポート版を見つけるか、接続の担当をディストリビューションが今も保守しているものに替えることだ。前者より手間はかかるが、居座るリスクを取り除ける。
選択は、決める前に持っておくべき三つの事実にかかっている。どの部品がリグレッションしたか、修正版が存在するか、一時的な状態をどれだけ許容できるか。
どちらを選ぶ前に障害を特定する
NetworkManagerのコア更新、VPNプラグインの更新、リゾルバ補助のリグレッションは、利用者の席からは同じに見えるが、巻き戻しの候補は異なる。正確なパッケージ、バージョン、最初の新しいエラーを記録する。
apt-cache policy network-manager network-manager-openvpn
dpkg -l | grep -E 'network-manager|openvpn|wireguard'
一覧を更新していなければパッケージのメタデータは古いことがある。手がかりとして読み、実際に入っているバージョンと突き合わせる。フォーラムの投稿から対象バージョンを取ってはいけない。別リリースの同じバージョン文字列が別の依存関係を抱えていることがある。
保留が何を覆うか比べる
保留はパッケージの自動インストール、更新、削除を止める。しかし依存関係は凍結せず、接続を直しもせず、古いバイナリを安全にもしない。その隙間こそが比較のすべてだ。リグレッションがクライアントのリンクするライブラリから来たなら、ライブラリが動き続ける間、クライアントを保留しても何も変わらない。
sudo apt-get -s install network-manager=1.42.4-1
apt-mark showhold
まずダウングレードをシミュレーションし、提案された変更を最後まで読む。デスクトップが必要とする依存関係を外すダウングレードは別の事故であり、シミュレーションはそれを見つける最も安い場所だ。保留が本当に正しい一時的な境界なら、担当者、理由、解除条件を備えた決定として書く。担当者のいない保留は、誰も触れない恒久的なインフラになる。
出口の経路を比べる
前向きな経路は、ディストリビューションかベンダーの修正を、独立した接続で検証してから適用するものだ。これによりシステムはサポートされた更新の流れにとどまり、露出が閉じる。移行の経路は、クライアントかホストを、ディストリビューションが今も保守するものに置き換える。手間は増えるが、リグレッションした部品にその系列の修正版がない場合、しばしば唯一の正直な答えだ。
sudo apt-mark unhold network-manager
sudo apt update
sudo apt full-upgrade
どの出口を選んでも、完了と宣言する前に、正確なプロファイル、認証経路、ルート、DNSの挙動、再接続を検証する。一度だけ上がるトンネルは、サスペンド、ネットワーク変更、再起動を耐えるトンネルとは違う。障害の証拠はバグ報告のために残す。パッケージのバージョン、ジャーナルの抜粋、秘密を除いたプロファイル構造。報告を完全にするために秘密鍵や資格情報を添付してはいけない。
記録に含めるべきもの
決定を四行で書く。何がリグレッションしたか、何を保留または変更したか、一時的な状態の担当は誰か、何がそれを解除するか。実行した検証も加える。次のエンジニアがそれを繰り返すからだ。
解除日のある保留は、管理された巻き戻しの境界だ。解除日のない保留は、いつの間にかインフラの一部になった説明のつかないダウングレードである。