Atsakymas forume pateikia visą failo pavadinimą, ir pavadinimas atrodo kaip sprendimas: vienas .deb, viena komanda, baigta. Tai, ką ši eilutė iš tikrųjų užkoduoja, yra paketo versija, CPU architektūra ir distribucijos rinkinys, prieš kurį jis buvo sukompiliuotas tą dieną, kai kas nors parašė įrašą. Nė vienas iš tų trijų automatiškai neapibūdina lentos ant jūsų stalo. Senas atsisiuntimas yra vienos mašinos situacijos momentinė kopija, o ne jūsų diegimo planas.

Ką failo pavadinimas tyliai užfiksuoja

Skaitykite tokį pavadinimą kaip openfortivpn_1.17.0-1_armhf.deb iš dešinės į kairę. Priesaga yra architektūra, kuriai buvo sukompiliuotas dvejetainis failas, vidurinis laukas yra upstream ir pakavimo revizija, o numanomas ketvirtas laukas yra to rinkinio bibliotekų rinkinys, kuriame jis buvo sukurtas.

64 bitų Raspberry Pi OS diegime sistemos architektūra yra arm64, todėl dpkg -i atmeta armhf paketą dėl architektūros neatitikimo. Net kai multiarch leidžia diegimą, dvejetainis failas tikisi bibliotekų versijų iš leidimo, prieš kurį buvo sukompiliuotas, o naujesnė bazinė sistema jų gali nebetiekti. Rezultatas yra įdiegtas paketas, kurio vykdomasis failas nepasileidžia, ir tai yra gedimas, kurį žmonės paprastai klaidingai priskiria pačiam klientui.

Tai, kad lenta yra ARM įrenginys, nepadaro ARM paketo tinkamu. Architektūra yra viena ašis; leidimas ir ABI yra kitos dvi, ir jos nepavyksta nepriklausomai.

Paklauskite distribucijos, prieš prašydami atsisiuntimo nuorodos

Kiekvienas prižiūrimas kanalas gali pasakyti, ką jis įdiegtų dabar. Paleiskite užklausą tikslinėje mašinoje su saugyklomis, kurias ji iš tikrųjų naudoja, prieš svarstydami bet kokį failų perdavimą.

cat /etc/os-release
dpkg --print-architecture
apt-cache policy openfortivpn

Kandidato eilutė su versija ir saugyklos pavadinimu reiškia, kad distribucija jau turi šios sistemos kompiliaciją. Kandidato nebuvimas arba kandidatas iš rinkinio, kurio neketinote naudoti, yra informacija apie jūsų šaltinius, o ne apie tai, kad programinė įranga kažkur egzistuoja.

Jei metaduomenų atnaujinimas nepavyksta, laikykite tą gedimą atskirai nuo paketo klausimo. Vardų sprendimas, saugyklų transportavimas, trūkstamas Release parašas ir gyvavimo pabaigoje esantis rinkinys visi sulaužo apt update, kol klientas dar net neįtrauktas. Šaltinių taisymas yra kita užduotis nei VPN kliento pasirinkimas, o abiejų maišymas yra būdas, kuriuo žmonės nukreipia dabartinę sistemą į pasenusį leidimą.

Ką apt patikrina ir ko atsisiųstas failas negauna

Normalus diegimas seka parašų grandine: archyvas pasirašo savo indeksą, indeksas turi kiekvieno paketo maišas, o paketas turi atitikti. archyvo autentifikavimo nuoroda atskiria tą grandinę nuo idėjos tikrinti parašą, pridėtą prie kiekvieno atskiro failo.

Faile, išsaugotame iš senos HTTP nuorodos, nieko to nėra. Jis ateina be saugyklos tapatybės, jis neatnaujinamas, kai distribucija pataiso klientą, ir niekas neužrašo, kas atsakingas už jo pakeitimą. Tai vis dar gali būti teisėtas pasirinkimas administratoriui su užfiksuotu artefaktu, bet pasirinkimas turi ateiti su savininku, kažkur užrašyta kontroline suma ir planu kitam saugumo atnaujinimui.

Parašo klaidų slopinimas arba TLS patikros išjungimas, kad senas nurodymas veiktų toliau, pašalina vienintelę proceso dalį, kuri ką nors tikrino. Vietoj to atkurkite nepavykusią patikrą.

Įdiekite klientą, tada derinkite ryšį atskirai

Kai egzistuoja prižiūrimas kandidatas, įdiekite jį įprasta peržiūrėta transakcija ir leiskite paketų tvarkyklei užrašyti, ką ji padarė.

Jei diegimui tikrai reikia upstream kompiliacijos, vadovaukitės dabartinėmis projekto kompiliavimo instrukcijomis ir traktuokite ją kaip programinę įrangą, kurią dabar prižiūrite: kūrimo paketai, pkg-config, TLS bibliotekos antraštės ir PPP demonas yra tikros priklausomybės, taip pat ir pašalinimo procedūra, kurios prireiks vėliau.

Diegimas yra tik vietinė programinės įrangos stadija. Tinklas turi priimti kliento protokolą ir autentifikavimo srautą, klientas turi pasitikėti sertifikatu, kurį pateikia tinklas, o tuneliui reikia veikiančio PPP sluoksnio bei maršrutų ir resolverio savininko. Užbaigta paketo transakcija nieko neįrodo apie tai, ar tinklas priima paskyrą, ar privatus diapazonas pasiekiamas. Testuokite kiekvieną sluoksnį ten, kur jis lūžta, o ne iš naujo paleiskite diegimo programą.

Planas, kuris turėtų pakeisti seną failo pavadinimą

Pirmiausia užrašykite platformos tapatybę: OS leidimą, architektūrą ir naudojamų šaltinių sąrašą. Tada įvardykite leistiną vietą, iš kurios ateina paketas, ar tai būtų distribucijos saugykla, tiekėjo saugykla su užfiksuotu raktu, ar kompiliacija, kurią patys kompiliuojate ir pakuojate.

Galiausiai įvardykite prižiūrėtoją ir atnaujinimo kelią. Pi, kuriame veikia klientas, kurio niekas nevaldo, veiks iki pirmo bibliotekos atnaujinimo, o tada tą pačią forumo temą vėl suras kas nors su ta pačia problema.

Pataisytas įsitikinimas yra pakankamai paprastas, kad jį būtų galima pasakyti viena eilute: senas paketas yra įrodymas, kad klientas kadaise buvo sukompiliuotas ir veikė, o ne įrodymas, kad jis šįvakar bus įdiegtas jūsų lentoje. Patikrinkite tris ašis, tada pasirinkite kanalą, kurį galite toliau atnaujinti.

Susiję straipsniai