یک رشته نسخه وجود یک ویژگی افزونه VPN را اثبات نمیکند
شماره بسته فهرست ویژگی نیست. epoch، upstream و revision را تجزیه کنید، بررسی کنید چه نصب است، سپس گزینه را همانجا که زندگی میکند اثبات کنید.
سه پرسش بحث نسخه را از بررسی ویژگی جدا میکند: کدام مؤلفه باید گزینه را فراهم کند، کدام نسخه از آن مؤلفه واقعاً نصب است، و تاریخچه تغییراتش در این باره چه میگوید. شماره یک افزونه بهتنهایی به هیچیک پاسخ نمیدهد. میانبر وسوسهانگیز، یعنی مقایسه نسخه کوتاهشده با حداقلی از یک آموزش، شکست میخورد چون رشتههای نسخه توزیعها اعشار نیستند. پیش از مقایسه تصمیم بگیرید چه چیزی را مقایسه میکنید.
گزینه ممکن است در NetworkManager، در افزونه VPN آن، در موتور زیرین یا در یک رابط دسکتاپ جداگانه زندگی کند. اینها چهار پروژه با چهار تاریخ انتشارند.
چهار مؤلفه، چهار تاریخ انتشار
ویرایشگری که میبینید معمولاً یک افزونه است و افزونه موتوری مانند باینری OpenVPN یا پیادهسازی WireGuard را فرا میخواند. خود NetworkManager مدل اتصال را فراهم میکند و رابط دسکتاپ میتواند فیلدهای خودش را روی آن بیفزاید. یک ویژگی میتواند در هر یک از آنها ظاهر شود و ارتقای یکی بقیه را ارتقا نمیدهد. موتور تازهتر شواهدی نیست بر اینکه ویرایشگر نصبشده میتواند گزینهای را که موتور پشتیبانی میکند وارد کند.
از نشانه شروع کنید: آیا فیلد از گفتگو غایب است، پس از ورود مفقود است، یا هست ولی نادیده گرفته میشود؟ این مشاهدات به مؤلفههای متفاوتی اشاره دارند و شواهد متفاوتی میخواهند.
پیش از مقایسه، نسخه را تجزیه کنید
سیاست بسته Debian قالب را epoch، نسخه upstream و بازنگری بستهبندی تعریف میکند. نخست epoch مقایسه میشود، سپس بخش upstream، سپس بازنگری، با قواعد مرتبسازی خود مدیر بسته و نه حساب اعشاری یا مرتبسازی الفبایی ساده. تیلدا پیش از همه چیز مرتب میشود، از جمله پیش از پایان آن بخش، و اینگونه یک نامزد انتشار پیش از انتشار نهایی میآید. خواندن جداگانه بخشها همان چیزی است که مقایسه را معنادار میکند.
قاعده تبدیل برای طرح دیگری نسازید که در آن 0.8.999 نزدیک به 0.9 به نظر میرسد. نزدیکی ارقام شواهدی درباره محتوا نیست.
بپرسید چه نصب است و چه چیزی میبود
apt-cache policy نسخه نصبشده، نامزد و مخزنی که هر یک از آنها میآید را برای هر بستهای که نام میبرید گزارش میکند. آن را هم برای موتور و هم برای افزونه بخوانید و رشتههای کامل را بهجای شکلهای کوتاه ثبت کنید. فراداده محلی میتواند کهنه باشد و نسخه نامزد اثبات نمیکند که فرایندی در حال اجرا آن ساخت را بارگذاری کرده است. اگر سرویسی از زمان ارتقا دوباره راهاندازی نشده باشد، فایل روی دیسک و رفتاری که مشاهده میکنید میتوانند ناسازگار باشند.
سپس تاریخچه تغییرات مطابق را بخوانید. بازنگری بستهبندی میتواند وصلههایی را حمل کند بدون پذیرش شماره upstream جدید، و دقیقاً همین حالت است که نسخه بیتغییر به نظر میرسد و رفتار تفاوت دارد.
گزینه را در مؤلفه مالک اثبات کنید
برای مشکل ورود، فیلدهای پشتیبانیشده افزونه نصبشده و نتیجه ذخیرهشده را بررسی کنید نه فقط گفتگو. برچسب، فیلد داده بومی و آرگومان موتور میتوانند سه بازنمایی از یک تنظیم باشند، و موفقیت در ورود یک فایل چیزی درباره بقای هر دستور نمیگوید. ویژگی را دقیق نام ببرید: مثلاً پذیرش این دستور با حفظ معنای احراز هویت آن.
اگر ساخت پشتیبانیشده برای آن انتشار فاقد یکپارچهسازی است، مسیر بهروزرسانی تأییدشده یا کارخواه دیگری برگزینید. آمیختن مخزن انتشار دیگر، یا اعمال وصله منبع بایگانیشده برای بالا بردن یک شماره قابل مشاهده، بحث نسخه را با سامانهای پشتیبانینشده معاوضه میکند.
گزارش سودمند توزیع، نسخههای کامل بسته، مالک اتصال فعال، گزینه لازم و رفتار ذخیرهشده مشاهدهشده را نام میبرد. این پرسشی قابل بازتولید است.