نگهداشتن 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 و اتصال مجدد را تأیید کنید. تونلی که یک بار بالا میآید با تونلی که تعلیق، تغییر شبکه و راهاندازی مجدد را تحمل میکند یکی نیست. شواهد خرابی را برای گزارش باگ نگه دارید: نسخههای بسته، بخشهایی از ژورنال، ساختار نمایه بدون اسرار. هرگز کلیدهای خصوصی یا اعتبارنامهها را برای کاملترکردن گزارش پیوست نکنید.
سابقه چه چیزی باید داشته باشد
تصمیم را در چهار سطر بنویسید: چه چیزی دچار رگرسیون شد، چه چیزی نگه داشته یا تغییر کرد، مالک وضعیت موقت کیست و چه چیزی آن را برمیدارد. تأییدی را که انجام دادید اضافه کنید، چون مهندس بعدی آن را تکرار خواهد کرد.
نگهداشتن با تاریخ خروج، مرز بازگردانی مدیریتشده است. نگهداشتن بدون آن، تنزل توضیحدادهنشدهای است که بیصدا بخشی از زیرساخت شده است.