Một chuỗi phiên bản không chứng minh một tính năng của plugin VPN
Số gói không phải danh sách tính năng. Phân tích epoch, upstream và revision, kiểm tra những gì đã cài, rồi chứng minh tùy chọn ngay tại nơi nó sống.
Ba câu hỏi tách một lập luận về phiên bản khỏi một cuộc điều tra tính năng: thành phần nào được cho là cung cấp tùy chọn, phiên bản nào của thành phần đó thực sự được cài, và changelog của nó nói gì về điều đó. Chỉ số của plugin không trả lời được câu nào. Lối tắt hấp dẫn, so sánh một phiên bản rút gọn với mức tối thiểu trong hướng dẫn, thất bại vì chuỗi phiên bản của các bản phân phối không phải số thập phân. Hãy quyết định bạn đang so sánh gì trước khi so sánh.
Tùy chọn có thể sống trong NetworkManager, trong plugin VPN của nó, trong engine bên dưới, hoặc trong một frontend máy tính để bàn riêng. Đó là bốn dự án với bốn lịch sử phát hành.
Bốn thành phần, bốn lịch sử phát hành
Trình biên tập bạn thấy thường là một plugin, và plugin gọi một engine như tệp nhị phân OpenVPN hoặc bản triển khai WireGuard. Bản thân NetworkManager cung cấp mô hình kết nối, và frontend máy tính để bàn có thể thêm các trường riêng bên trên. Một tính năng có thể xuất hiện ở bất kỳ thành phần nào, và nâng cấp một thành phần không nâng cấp các thành phần khác. Engine mới hơn không phải bằng chứng rằng trình biên tập đã cài có thể nhập một tùy chọn mà engine hỗ trợ.
Bắt đầu từ triệu chứng: trường có thiếu trong hộp thoại, có vắng sau khi nhập, hay có nhưng bị bỏ qua? Những quan sát đó chỉ vào các thành phần khác nhau và cần bằng chứng khác nhau.
Phân tích phiên bản trước khi so sánh nó
Chính sách gói của Debian định nghĩa định dạng là epoch, phiên bản upstream và revision đóng gói. Epoch được so sánh trước, rồi phần upstream, rồi revision, theo quy tắc sắp xếp của chính trình quản lý gói chứ không phải số học thập phân hay sắp xếp chữ cái đơn thuần. Dấu ngã được sắp trước mọi thứ, kể cả trước phần cuối của đoạn đó, và đó là cách một ứng viên phát hành đứng trước bản phát hành cuối. Chính việc đọc riêng từng phần làm cho so sánh có ý nghĩa.
Đừng bịa ra quy tắc chuyển đổi cho một sơ đồ khác nơi 0.8.999 trông gần với 0.9. Sự gần nhau của các chữ số không phải bằng chứng về nội dung.
Hỏi cái gì đã cài và cái gì sẽ là
apt-cache policy báo cáo phiên bản đã cài, ứng viên và kho chứa mà mỗi thứ đến từ đó, cho mọi gói bạn nêu tên. Hãy đọc nó cho cả engine và plugin, và ghi lại chuỗi đầy đủ thay vì dạng rút gọn. Siêu dữ liệu cục bộ có thể đã cũ, và phiên bản ứng viên không chứng minh rằng một tiến trình đang chạy đã nạp bản dựng đó. Nếu một dịch vụ chưa được khởi động lại kể từ khi nâng cấp, tệp trên đĩa và hành vi bạn quan sát có thể không khớp nhau.
Sau đó đọc changelog tương ứng. Một revision đóng gói có thể mang các bản vá mà không áp dụng số upstream mới, và đó chính là trường hợp phiên bản trông không đổi nhưng hành vi lại khác.
Chứng minh tùy chọn trong thành phần sở hữu nó
Với sự cố nhập, hãy kiểm tra các trường được hỗ trợ của plugin đã cài và kết quả đã lưu thay vì chỉ hộp thoại. Nhãn, trường dữ liệu gốc và đối số engine có thể là ba cách biểu diễn của một cài đặt, và việc nhập một tệp thành công không nói gì về việc mọi chỉ thị có sống sót hay không. Hãy gọi tên tính năng chính xác: ví dụ, chấp nhận chỉ thị này trong khi giữ nguyên ý nghĩa xác thực của nó.
Nếu bản dựng được hỗ trợ cho bản phát hành đó thiếu tích hợp, hãy chọn một đường cập nhật được phê duyệt hoặc một ứng dụng khác. Trộn kho chứa của bản phát hành khác, hoặc áp dụng một bản vá mã nguồn đã lưu trữ để nâng một con số hiển thị, đánh đổi lập luận về phiên bản lấy một hệ thống không được hỗ trợ.
Một báo cáo hữu ích nêu tên bản phân phối, phiên bản đầy đủ của gói, chủ sở hữu kết nối đang hoạt động, tùy chọn cần thiết và hành vi đã lưu quan sát được. Đó là một câu hỏi có thể tái tạo.