Įdiegiate tiekėjo paketą, komanda grąžina nulį, bet VPN programos vis dar nėra. Taip atsitinka, kai įdiegtas paketas sukonfigūravo saugyklą, o ne pateikė klientą, ir skirtumas matomas tame, ką jis paliko diske. Ar reikia abiejų ir kokia tvarka, priklauso nuo trijų sąlygų, o ne nuo tiekėjo pavadinimo. Toliau pateiktas sprendimas šaltinio paruošimą, metaduomenų atnaujinimą ir programos įdiegimą laiko atskirais veiksmais su atskirais įrodymais.

Ką iš tikrųjų keičia kiekvienas paketas

Saugyklos konfigūracijos paketas įrašo APT šaltinio įrašą, importuoja parašo raktą, kuriuo tas įrašas pasitiki, ir baigia darbą. Jo turinys yra keli failai po /etc/apt ir raktų rinkinys, o vykdyti nieko nėra. Kliento paketas pateikia tarnybą arba darbalaukio programą, jos bibliotekas ir priklausomybes, ir būtent šis objektas atsiduria meniu arba systemd bloke.

Failų vardai, besibaigiantys -release, rodo pirmąjį tipą, tačiau priesaga yra susitarimas, o ne garantija. Patikimas teiginys apie paketo vaidmenį yra jo failų sąrašas ir priklausomybės, ir abu įskaitomi prieš ką nors įdiegiant. Tiekėjas, kuris perdirba savo pakavimą, išlaiko tą patį failo vardą ir keičia turinį, todėl atsakymas, nukopijuotas iš dvejų metų senumo gijos, gali apibūdinti paketą, kurio nebėra. Perskaitykite dabartines tiekėjo instrukcijas jūsų vykdomam leidimui, tada patikrinkite, ką paketas deklaruoja.

Iš to skilimo kyla trys etapai: užregistruokite šaltinį, atnaujinkite jo tiekiamus metaduomenis, tada įdiekite programą pagal pavadinimą. Debian ir Ubuntu diegimo vadovas laiko juos atskirai, todėl kliento prašoma vėlesniame žingsnyje, o ne paketo, kuris paruošė šaltinį.

Trys sąlygos, lemiančios tvarką

Pirmoji sąlyga yra ar tiekėjas skelbia saugyklą būtent jūsų platinimo leidimui. Šaltinio eilutė, sukurta vienam rinkiniui, gali būti išspręsta pagal kito rinkinio priklausomybes ir įdiegti mišinį, kurio niekas neišbandė.

Antroji yra ar jūsų platinime klientas jau yra. Kai yra, platinimo paketas seka jūsų leidimo bibliotekų perėjimus ir saugos atnaujinimus, o tiekėjo paketas gali judėti greičiau ir atsinešti savo bendrų bibliotekų kopijas.

Trečioji yra kokių funkcijų jums iš tikrųjų reikia. Tiekėjo rinkinys gali pateikti naujesnį protokolo įgyvendinimą arba darbalaukio integraciją, kurios jūsų platinimas nesupakavo, ir tai yra tikra priežastis priimti antrą šaltinį. Jei platinimo rinkinys padengia jūsų naudojimą, trečiosios šalies saugyklos pridėjimas nuperka atnaujinimo darbo ir dar vienus pasitikėjimo santykius už labai nedaug.

Išspręskite šiuos tris atsakymus prieš atsirandant šaltinio eilutei, nes vėliau ją pašalinti reiškia išvalyti paketą ir jo raktą. Kai jie išspręsti, seka tiekėjo kelyje nėra pasirinkimas: šaltinis pirmas, metaduomenys antras, programa trečia, niekada atvirkščiai.

Patikrinkite, ką paliko leidimo paketas

Prieš įdiegdami ką nors kita, skaitykite failų sąrašą, o ne aprašymą. Debian šeimos sistemose paketo manifestas atsako, ką jis sukonfigūravo ir kur atsidūrė raktas.

dpkg -L proton-vpn-release | grep -E 'apt|keyring'
apt-cache policy proton-vpn-gnome-desktop
grep -r protonvpn /etc/apt/sources.list.d/

Pirmoji eilutė rodo šaltinio failą ir raktų rinkinio kelią, o antroji praneša, kokią versiją gali pasiūlyti sukonfigūruoti šaltiniai. Jei apt-cache policy nieko nespausdina kliento pavadinimui, metaduomenų atnaujinimas neįvyko arba šaltinis nukreiptas į kitą rinkinį. Trečioji patvirtina, kad įrašas yra ten, kur APT iš tikrųjų skaito.

Suderinkite raktų rinkinio kelią su signed-by= lauku šaltinio eilutėje. Netinkamame kataloge esantis raktas sukelia neautentifikuoto šaltinio klaidą, ir tai yra kita gedimas nei neprieinamas paketas.

Priklausomybės gedimą traktuokite kaip atskirą etapą

Parsisiųsto .deb įdiegimas su dpkg -i nieko neišsprendžia: jis tikrina priklausomybes, praneša, ko trūksta, ir palieka paketą pusiau sukonfigūruotą. Tai numatytas elgesys, o ne sugadintas atsisiuntimas.

Tada apt --fix-broken install paprašo APT nuoseklios būsenos iš turimų šaltinių. APT nežino, kokio VPN norėjote, ir jo planas gali pašalinti paketus, kad patenkintų rastą apribojimą. Perskaitykite siūlomą operaciją prieš atsakydami taip, ir sustokite, jei pašalinimai paliečia tai, ko jums reikia. Remonto kartojimas neskaitant plano yra kelias, kuriuo maža priklausomybės spraga tampa darbalaukiu, kuris nebeįsijungia.

Išsaugokite pirmą prasmingą paketų tvarkyklės pranešimą ir suklasifikuokite jį prieš veikdami. Nepasirašyta saugykla, paketas, kurio sukonfigūruoti šaltiniai neturi, versijų konfliktas ir klientas, kuris įsijungia ir miršta, yra keturi skirtingi gedimai.

Tikrinkite programą, o ne saugyklą

Patvirtinkite, kad klientas pasiekė įdiegtą būseną, tada patvirtinkite, kad programa įsijungia. dpkg-query -W -f='${Status} ${Version}' proton-vpn-gnome-desktop turėtų pranešti install ok installed su versija, o paleidimo gedimas po to yra programos, o ne pakavimo problema.

Užrašykite saugyklos savininką ir programos paketą kaip atskirus objektus, kad vėlesnis pašalinimas paimtų tinkamą ir paliktų kitą nepaliestą. Kai tiekėjas keičia savo vadovą, šaltinio įrašas yra tai, ką skaitote iš naujo; kliento pavadinimas yra tai, ką įdiegiate iš naujo.

Susiję straipsniai