Kolme kysymystä erottaa versioväitteen ominaisuuden tutkimisesta: minkä komponentin pitäisi tarjota valinta, mikä sen komponentin versio on todella asennettu ja mitä sen muutosloki kertoo siitä. Liitännäisen numero yksinään ei vastaa yhteenkään niistä. Houkutteleva oikotie, lyhennetyn version vertaaminen oppaan minimiin, epäonnistuu, koska jakelujen versiomerkkijonot eivät ole desimaalilukuja. Päätä, mitä vertaat, ennen kuin vertaat.

Valinta voi elää NetworkManagerissa, sen VPN-liitännäisessä, taustalla olevassa moottorissa tai erillisessä työpöytäkäyttöliittymässä. Ne ovat neljä projektia ja neljä julkaisuhistoriaa.

Neljä komponenttia, neljä julkaisuhistoriaa

Näkemäsi editori on yleensä liitännäinen, ja liitännäinen kutsuu moottoria, kuten OpenVPN-binääriä tai WireGuard-toteutusta. NetworkManager itse tarjoaa yhteyksien mallin, ja työpöytäkäyttöliittymä voi lisätä omat kenttänsä sen päälle. Ominaisuus voi esiintyä missä tahansa niistä, eikä yhden päivittäminen päivitä muita. Uudempi moottori ei ole todiste siitä, että asennettu editori voi tuoda valinnan, jota moottori tukee.

Aloita oireesta: puuttuuko kenttä valintaikkunasta, puuttuuko se tuonnin jälkeen vai onko se olemassa mutta jätetään huomiotta? Nuo havainnot viittaavat eri komponentteihin ja vaativat erilaisia todisteita.

Jäsennä versio ennen sen vertaamista

Debianin pakettikäytäntö määrittelee muodon epochiksi, upstream-versioksi ja paketointirevisioksi. Ensin verrataan epochia, sitten upstream-osaa, sitten revisiota, paketinhallinnan omien järjestyssääntöjen mukaan eikä desimaaliaritmetiikalla tai tavallisella aakkosjärjestyksellä. Tilde järjestyy ennen kaikkea, myös tuon osan loppua ennen, ja näin julkaisuehdokas edeltää lopullista julkaisua. Osien erillinen lukeminen on se, mikä tekee vertailusta mielekkään.

Älä keksi muunnossääntöä jollekin muulle kaavalle, jossa 0.8.999 näyttää läheiseltä 0.9:tä. Numeroiden läheisyys ei ole todiste sisällöstä.

Kysy, mitä on asennettu ja mitä olisi

apt-cache policy raportoi asennetun version, ehdokkaan ja varaston, josta kukin tulee, jokaisesta nimeämästäsi paketista. Lue se sekä moottorille että liitännäiselle ja kirjaa täydelliset merkkijonot lyhennettyjen muotojen sijaan. Paikalliset metatiedot voivat olla vanhentuneita, eikä ehdokasversio todista, että käynnissä oleva prosessi on ladannut kyseisen buildin. Jos palvelua ei ole käynnistetty uudelleen päivityksen jälkeen, levyllä oleva tiedosto ja havaitsemasi käyttäytyminen voivat olla ristiriidassa.

Lue sitten vastaava muutosloki. Paketointirevisio voi kantaa paikkauksia ottamatta uutta upstream-numeroa, ja juuri silloin versio näyttää muuttumattomalta ja käyttäytyminen eroaa.

Todista valinta omistavassa komponentissa

Tuontiongelmassa tarkastele asennetun liitännäisen tuettuja kenttiä ja tallennettua tulosta pelkän valintaikkunan sijaan. Tunniste, natiivi datakenttä ja moottorin argumentti voivat olla yhden asetuksen kolme esitystä, eikä tiedoston tuonnin onnistuminen kerro mitään siitä, selvisikö jokainen direktiivi. Nimeä ominaisuus täsmällisesti: esimerkiksi tämän direktiivin hyväksyminen säilyttäen sen todentamiseen liittyvä merkitys.

Jos kyseisen julkaisun tuettu build ei sisällä integraatiota, valitse hyväksytty päivityspolku tai toinen asiakasohjelma. Toisen julkaisun varaston sekoittaminen tai arkistoidun lähdekoodipaikkauksen soveltaminen näkyvän numeron nostamiseksi vaihtaa versioväitteen tukemattomaan järjestelmään.

Hyödyllinen raportti nimeää jakelun, täydet pakettiversiot, aktiivisen yhteyden omistajan, vaaditun valinnan ja havaitun tallennetun käyttäytymisen. Se on toistettavissa oleva kysymys.

Aiheeseen liittyvät artikkelit