Trzy pytania oddzielają argument o wersji od dochodzenia w sprawie funkcji: który komponent powinien dostarczać opcję, która wersja tego komponentu jest rzeczywiście zainstalowana i co na ten temat mówi jego dziennik zmian. Numer wtyczki sam nie odpowiada na żadne z nich. Kuszaca skrótowa droga, porównanie skróconej wersji z minimum z poradnika, zawodzi, ponieważ łańcuchy wersji dystrybucji nie są liczbami dziesiętnymi. Zdecyduj, co porównujesz, zanim to porównasz.

Opcja może żyć w NetworkManagerze, w jego wtyczce VPN, w silniku bazowym lub w osobnym interfejsie pulpitu. To cztery projekty z czterema historiami wydań.

Cztery komponenty, cztery historie wydań

Widoczny edytor to zwykle wtyczka, a wtyczka wywołuje silnik, taki jak binarium OpenVPN lub implementacja WireGuard. Sam NetworkManager dostarcza model połączenia, a interfejs pulpitu może dodać własne pola na wierzchu. Funkcja może pojawić się w którymkolwiek z nich, a aktualizacja jednego nie aktualizuje pozostałych. Nowszy silnik nie jest dowodem, że zainstalowany edytor potrafi zaimportować opcję, którą silnik obsługuje.

Zacznij od objawu: czy pole brakuje w oknie dialogowym, czy jest nieobecne po imporcie, czy jest, ale jest ignorowane? Te obserwacje wskazują na różne komponenty i wymagają różnych dowodów.

Rozłóż wersję, zanim ją porównasz

Polityka pakietów Debiana definiuje format jako epoch, wersję upstream i rewizję pakowania. Najpierw porównuje się epoch, potem część upstream, potem rewizję, według własnych reguł porządkowania menedżera pakietów, a nie arytmetyki dziesiętnej czy zwykłego sortowania alfabetycznego. Tilda sortuje się przed wszystkim, także przed końcem tej części, i tak kandydat do wydania poprzedza wydanie finalne. To właśnie osobne czytanie części czyni porównanie sensownym.

Nie wymyślaj reguły przeliczeniowej dla jakiegoś innego schematu, w którym 0.8.999 wygląda blisko 0.9. Bliskość cyfr nie jest dowodem na temat zawartości.

Zapytaj, co jest zainstalowane i co by było

apt-cache policy podaje zainstalowaną wersję, kandydata i repozytorium, z którego pochodzi każdy z nich, dla każdego wskazanego pakietu. Czytaj to zarówno dla silnika, jak i wtyczki, i zapisuj pełne łańcuchy zamiast form skróconych. Lokalne metadane mogą być nieaktualne, a wersja kandydująca nie dowodzi, że działający proces wczytał tę kompilację. Jeśli usługa nie została zrestartowana po aktualizacji, plik na dysku i obserwowane zachowanie mogą się różnić.

Następnie przeczytaj odpowiedni dziennik zmian. Rewizja pakowania może nieść łatki bez przyjmowania nowego numeru upstream, i to jest dokładnie ten przypadek, w którym wersja wygląda na niezmienioną, a zachowanie się różni.

Udowodnij opcję w komponencie, który ją posiada

W przypadku problemu z importem sprawdź obsługiwane pola zainstalowanej wtyczki i zapisany wynik, a nie tylko okno dialogowe. Etykieta, natywne pole danych i argument silnika mogą być trzema przedstawieniami jednego ustawienia, a powodzenie importu pliku nic nie mówi o tym, czy każda dyrektywa przetrwała. Nazwij funkcję precyzyjnie: na przykład akceptacja tej dyrektywy z zachowaniem jej znaczenia dla uwierzytelniania.

Jeśli obsługiwana kompilacja dla tego wydania nie ma integracji, wybierz zatwierdzoną ścieżkę aktualizacji lub innego klienta. Mieszanie repozytorium innego wydania albo stosowanie zarchiwizowanej łatki źródłowej, by podnieść widoczny numer, wymienia argument o wersji na nieobsługiwany system.

Użyteczny raport wymienia dystrybucję, pełne wersje pakietów, właściciela aktywnego połączenia, wymaganą opcję i zaobserwowane zapisane zachowanie. To pytanie, które można odtworzyć.

Powiązane artykuły