Een versiestring bewijst geen functie van een VPN-plugin
Een pakketnummer is geen functielijst. Ontleed de epoch, upstream en revisie, controleer wat er is geïnstalleerd en bewijs daarna de optie waar hij leeft.
Drie vragen scheiden een versieargument van een functieonderzoek: welke component de optie hoort te leveren, welke versie van die component werkelijk is geïnstalleerd, en wat het changelog daarover zegt. Het nummer van een plugin alleen beantwoordt geen van alle. De verleidelijke kortere weg, een verkorte versie vergelijken met een minimum uit een handleiding, mislukt omdat versiestringen van distributies geen decimalen zijn. Bepaal wat je vergelijkt voordat je het vergelijkt.
De optie kan leven in NetworkManager, in de VPN-plugin daarvan, in de onderliggende engine of in een aparte desktopfrontend. Dat zijn vier projecten met vier releasegeschiedenissen.
Vier componenten, vier releasegeschiedenissen
De editor die je ziet is meestal een plugin, en de plugin roept een engine aan zoals het OpenVPN-binary of een WireGuard-implementatie. NetworkManager zelf levert het verbindingsmodel, en een desktopfrontend kan er eigen velden bovenop zetten. Een functie kan in elk daarvan voorkomen, en het upgraden van één upgradet de andere niet. Een nieuwere engine is geen bewijs dat de geïnstalleerde editor een optie kan importeren die de engine ondersteunt.
Begin bij het symptoom: ontbreekt het veld in de dialoog, is het afwezig na import, of is het aanwezig maar wordt het genegeerd? Die observaties wijzen op verschillende componenten en vragen om verschillend bewijs.
Ontleed de versie voordat je hem vergelijkt
Het pakketbeleid van Debian definieert het formaat als epoch, upstream-versie en pakketrevisie. Eerst wordt de epoch vergeleken, dan het upstream-deel, dan de revisie, volgens de eigen sorteervolgorde van de pakketbeheerder en niet volgens decimale rekenkunde of een gewone alfabetische sortering. Een tilde sorteert vóór alles, ook vóór het einde van dat deel, en zo gaat een releasekandidaat vooraf aan de definitieve release. Het apart lezen van de delen is wat een vergelijking zinvol maakt.
Verzin geen omrekenregel voor een of ander ander schema waarin 0.8.999 dicht bij 0.9 lijkt. De nabijheid van cijfers is geen bewijs over de inhoud.
Vraag wat er is geïnstalleerd en wat het zou zijn
apt-cache policy meldt de geïnstalleerde versie, de kandidaat en de repository waar elk van komt, voor elk pakket dat je noemt. Lees het voor zowel de engine als de plugin, en noteer volledige strings in plaats van verkorte vormen. Lokale metadata kan verouderd zijn, en een kandidaatversie bewijst niet dat een draaiend proces die build heeft geladen. Als een dienst sinds de upgrade niet opnieuw is gestart, kunnen het bestand op schijf en het gedrag dat je waarneemt van elkaar afwijken.
Lees daarna het bijbehorende changelog. Een pakketrevisie kan patches bevatten zonder een nieuw upstream-nummer over te nemen, en dat is precies het geval waarin de versie ongewijzigd lijkt en het gedrag verschilt.
Bewijs de optie in de component die hem bezit
Voor een importprobleem: onderzoek de ondersteunde velden van de geïnstalleerde plugin en het opgeslagen resultaat in plaats van alleen de dialoog. Een label, een oorspronkelijk gegevensveld en een engine-argument kunnen drie weergaven van één instelling zijn, en een geslaagde bestandsimport zegt niets over of elke richtlijn heeft overleefd. Benoem de functie precies: bijvoorbeeld het accepteren van deze richtlijn met behoud van de betekenis voor authenticatie.
Als de ondersteunde build voor die release de integratie mist, kies een goedgekeurd updatepad of een andere client. Het mengen van de repository van een andere release, of het toepassen van een gearchiveerde bronpatch om een zichtbaar nummer te verhogen, ruilt een versieargument in voor een niet-ondersteund systeem.
Een bruikbaar rapport noemt de distributie, de volledige pakketversies, de eigenaar van de actieve verbinding, de vereiste optie en het waargenomen opgeslagen gedrag. Dat is een reproduceerbare vraag.