Una stringa di versione non dimostra una funzione del plugin VPN
Un numero di pacchetto non è un elenco di funzioni. Analizzate l'epoch, l'upstream e la revisione, verificate cosa è installato, poi dimostrate l'opzione dove vive.
Tre domande separano un'argomentazione sulla versione da un'indagine su una funzione: quale componente dovrebbe fornire l'opzione, quale versione di quel componente è realmente installata e cosa dice il suo changelog al riguardo. Il numero di un plugin da solo non risponde a nessuna di esse. La scorciatoia tentante, confrontare una versione abbreviata con il minimo di un tutorial, fallisce perché le stringhe di versione delle distribuzioni non sono decimali. Decidete cosa state confrontando prima di confrontarlo.
L'opzione può vivere in NetworkManager, nel suo plugin VPN, nel motore sottostante o in un frontend desktop separato. Sono quattro progetti con quattro storie di rilascio.
Quattro componenti, quattro storie di rilascio
L'editor che vedete è di solito un plugin, e il plugin chiama un motore come il binario OpenVPN o un'implementazione WireGuard. NetworkManager stesso fornisce il modello di connessione, e un frontend desktop può aggiungere i propri campi sopra. Una funzione può comparire in qualsiasi di essi, e aggiornarne uno non aggiorna gli altri. Un motore più recente non è prova che l'editor installato possa importare un'opzione supportata dal motore.
Partite dal sintomo: il campo manca dalla finestra di dialogo, è assente dopo l'importazione o è presente ma ignorato? Queste osservazioni indicano componenti diversi e richiedono prove diverse.
Analizzate la versione prima di confrontarla
La politica dei pacchetti di Debian definisce il formato come epoch, versione upstream e revisione di pacchettizzazione. Si confronta prima l'epoch, poi la parte upstream, poi la revisione, secondo le regole di ordinamento del gestore di pacchetti stesso e non l'aritmetica decimale o un semplice ordinamento alfabetico. La tilde si ordina prima di tutto, compresa la fine di quella parte, ed è così che un candidato al rilascio precede il rilascio finale. È la lettura separata delle parti che rende significativo un confronto.
Non inventate una regola di conversione per qualche altro schema in cui 0.8.999 sembri vicino a 0.9. La vicinanza delle cifre non è prova sul contenuto.
Chiedete cosa è installato e cosa sarebbe
apt-cache policy riporta la versione installata, il candidato e il repository da cui proviene ciascuno, per ogni pacchetto che nominate. Leggetelo sia per il motore sia per il plugin, e annotate stringhe complete invece di forme abbreviate. I metadati locali possono essere obsoleti, e una versione candidata non dimostra che un processo in esecuzione abbia caricato quella build. Se un servizio non è stato riavviato dall'aggiornamento, il file su disco e il comportamento che osservate possono discordare.
Poi leggete il changelog corrispondente. Una revisione di pacchettizzazione può portare patch senza adottare un nuovo numero upstream, ed è esattamente il caso in cui la versione sembra invariata e il comportamento differisce.
Dimostrate l'opzione nel componente proprietario
Per un problema di importazione, ispezionate i campi supportati del plugin installato e il risultato salvato invece del solo dialogo. Un'etichetta, un campo dati nativo e un argomento del motore possono essere tre rappresentazioni di un'unica impostazione, e il successo nell'importare un file non dice nulla sulla sopravvivenza di ogni direttiva. Nominate la funzione con precisione: per esempio, accettare questa direttiva preservandone il significato per l'autenticazione.
Se la build supportata per quella versione manca dell'integrazione, scegliete un percorso di aggiornamento approvato o un client diverso. Mescolare il repository di un'altra versione, o applicare una patch sorgente archiviata per alzare un numero visibile, scambia un'argomentazione sulla versione con un sistema non supportato.
Un rapporto utile nomina la distribuzione, le versioni complete dei pacchetti, il proprietario della connessione attiva, l'opzione richiesta e il comportamento salvato osservato. Questa è una domanda riproducibile.