Instruktioner som namnger en specifik OpenVPN-utgåva kodar vanligtvis en funktion, och versionsnumret är bara en ersättning för den. När du läser dem kan distributionen leverera något nyare än den namngivna versionen och ändå sakna den integration du behöver, eller leverera något äldre som redan täcker kravet. Att behandla numret som målet ger repositoryändringar som inte löser något. Att behandla det som ett symtom på ett krav ger ett mycket mindre beslut.

Tre frågor skiljer de två: vilken implementation, vilken basutgåva och vem som äger uppdateringarna.

Ett versionsnummer är inte ett funktionskrav

Fråga vad anslutningen behöver innan du frågar vilket paket som tillhandahåller det. En profil kan kräva ett chiffer, ett TLS-läge, en autentiseringsplugin eller ett administrationsgränssnitt, och vilket som helst av dem kan saknas i ett bygge som rapporterar en tillfredsställande versionsträng. Omvänt kan ett något äldre bygge implementera allt som profilen använder. Versionsträngen är en sammanfattning skriven av den som paketerar, inte en funktionslista.

Klarlägg om instruktionen betyder 'den här funktionen eller nyare' eller 'exakt det här bygget testades'. De två svaren leder till olika repon.

Kodnamnet måste matcha basutgåvan

Repon styrs av distributionens kodnamn, och en derivatas utgivningsnamn är inte dess bas kodnamn. Läs /etc/os-release för VERSION_CODENAME och ID_LIKE, och bekräfta vilken basutgåva derivatan följer. Ett gammalt svar som kopplade en skrivbordsutgåva till ett Ubuntu-kodnamn säger ingenting om nästa. Att gissa kodnamnet är hur ett system till slut hämtar paket byggda mot ett annat C-bibliotek.

Kontrollera vad pakethanteraren redan erbjuder med apt-cache policy openvpn innan du lägger till något. Om den installerade kandidaten uppfyller kravet försvinner repofrågan.

Vad ett uppströmsrepo faktiskt binder sig till

En uppströmskanal publicerar byggen för specifika basutgåvor, och dess instruktioner parar en repolinje med en signeringsnyckel och ett kodnamn som stöds. Dessa delar är inte platshållare att ersätta med vilket kodnamn du råkar känna till. Beroenden löses mot den utgåva som bygget riktade sig mot, så ett paket som installeras rent kan fortfarande förstöra orelaterad programvara som delar ett bibliotek.

Läs repoguiden för den implementation du valde, och följ dess aktuella kompatibilitetstabell i stället för en kopia från en äldre blogg.

Att installera är inte att integrera

Att ersätta openvpn-binären lägger inte till en saknad NetworkManager-plugin, en importdialog eller en skrivbordsredigerare. De bor i separata paket som network-manager-openvpn och dess skrivbordsmotsvarighet, och de har sin egen versionsrelation till klientbiblioteket. OpenVPN 3 Linux är ännu en annan implementation, med sin egen sessions- och konfigurationsmodell, så dess paket är inte direkta ersättningar för ett 2.x-profilflöde.

Bestäm vilken komponent som äger den körande tunneln innan du installerar något. Två hanterare på en värd ger samma dubbeltunnel-förvirring som två klienter.

Skriv ned de tre besluten

Registrera implementationen, basutgåvan och uppdateringsägaren, och notera vilken av dem som förväntas ändras. Den registreringen är vad en framtida uppgradering läser när repolinjen slutar fungera efter en distributionsutgåva. Utan den upprepar nästa person kodnamnsgissningen med ett nyare nummer.

Om basutgåvan inte längre stöds av kanalen du behöver är svaret en plattformsmigrering, inte ett repo från tre utgåvor sedan.

Relaterade artiklar