Nedostajući unosi u meniju i postavke koje nestaju popravljaju se istim refleksom, a to su nepovezani problemi. Jedno je integracija s radnom površinom, drugo je stanje aplikacije, a nova ikona sama po sebi ne mijenja nijedno od toga. Razdvajanje to dvoje traži jedan eksperiment i objašnjava većinu zabune koju ljudi donose u ovu temu. Pokretač pokreće program; program odlučuje šta pamti.

Dva posla koja samo izgledaju kao jedan

Integracija s radnom površinom znači da okruženje može pronaći izvršnu datoteku, prikazati naziv i ikonu i proslijediti ispravne argumente. Stanje aplikacije znači da program zapisuje profil na trajno mjesto i čita ga pri sljedećem pokretanju. Nijedno ne podrazumijeva drugo, zato ispravna prečica može pokrenuti klijenta koji je sve zaboravio.

Promijenite jednu bezopasnu postavku prikaza kroz vlastite kontrole aplikacije, zatim je zatvorite i ponovo otvorite na isti način. Ako se postavka vrati, trajno čuvanje radi, a preostala primjedba odnosi se na pronalaženje prozora, a ne na čuvanje podataka. Ako nestane, prečica je odvraćanje pažnje, a pravo pitanje je gdje taj proces drži svoje datoteke. Testirajte jednu postavku po jednu, jer klijent koji ponovo traži lozinku možda čuva tajnu, a ne gubi konfiguraciju.

Usporedite ulazne podatke pokretanja prije ponovne instalacije

Pođite od unosa na radnoj površini i pročitajte šta ona zapravo radi, jer pokretanje iz menija nije automatski isto procesno okruženje kao pokretanje iz terminala. Ključevi koji su važni su Exec, Path i, posredno, okruženje koje sesija pruža. Skripta omotača u Exec može postaviti varijablu, promijeniti direktorij ili pozvati privilegovanog pomoćnika koji meni nikada ne prikazuje. Ponovna instalacija zamjenjuje datoteke koje je aplikacija već imala, a to je rijetko varijabla koja se promijenila.

grep -h '^Exec=' ~/.local/share/applications/*.desktop
desktop-file-validate ~/.local/share/applications/client.desktop

Pogledajte datoteku u ~/.local/share/applications prije one u /usr/share/applications, jer korisnička kopija zasjenjuje sistemsku. Pokrenite desktop-file-validate kada se unos ponaša loše i potražite zastarjelu kopiju koja još pokazuje na uklonjenu putanju. Nevažeća korisnička kopija još je omiljena na većini radnih površina, pa neispravna datoteka može ukloniti unos iz menija dok datoteka iz paketa ostaje valjana. Zatim pokrenite istu naredbu ručno i usporedite što daju dva pokretanja.

Gdje postavka zapravo živi

Aplikacije koje slijede pravila osnovnih direktorija XDG stavljaju konfiguraciju u $XDG_CONFIG_HOME, trajno stanje u $XDG_STATE_HOME, a odbacive podatke u $XDG_CACHE_HOME, uz zadane vrijednosti ~/.config, ~/.local/state i ~/.cache kada te varijable nisu postavljene. Ta tri su uloge, a ne obećanja, pa određeni VPN proizvod može dokumentirati nešto sasvim drugo. Čitanje vlastite dokumentacije dobavljača bolje je od nagađanja putanje iz naziva direktorija. Kada je dokumentacija oskudna, promatrajte proces umjesto datotečnog sustava.

Praćenje filtrirano na otvaranje datoteka pokazuje svaku putanju konfiguracije koju klijent pokušava, uključujući onu koju upisuje pri izlasku. Pokrenite ga kao isti korisnik s istim okruženjem, zatim usporedite te putanje s direktorijima koje ste očekivali.

strace -f -e trace=openat,stat -o /tmp/vpn.log vpn-client

Tajne i profili imaju različite vlasnike

Spremljeni profil i spremljena vjerodajnica odvojeni su objekti, često s odvojenim pohranom. Jedno može živjeti u konfiguracijskoj datoteci dok drugo sjedi u privjesku ključeva koji se otključava po sesiji, pa klijent koji ponovo traži lozinku možda jednostavno radi ono za što je napravljen. Brisanje profila da bi se zaustavio upit način je na koji ljudi izgube radnu konfiguraciju.

Privilegovana pokretanja dodatno kompliciraju stvar, jer pokretanje putem sudo ili pomoćnika PolicyKit može prikazati drugi matični direktorij i time drugi skup konfiguracije. Ispravite vlasništvo na konkretnoj datoteci koju aplikacija dokumentira, a ne rekurzivno po cijelom matičnom direktoriju, zatim odlučite koji identitet treba posjedovati profil ubuduće i držite buduća pokretanja u skladu s tim.

Što vam ikona može i ne može reći

Ikona dokazuje da se datoteka pokretača razrješava i ništa više. Stanje veze pripada klijentu, pa je jedina pouzdana provjera sučelje, ruta ili vlastiti izlaz statusa klijenta. Aplet u sistemskoj traci koji se nije pokrenuo može učiniti ispravan tunel neispravnim, dok zastario aplet može učiniti neispravan tunel ispravnim. Testirajte vezu i pokretač odvojeno, zatim zapišite što ste zapravo popravili.

Ako je oboje bilo neispravno, oduprite se tome da popravak tretirate kao jednu promjenu. Ispravite unos, potvrdite pokretanje, zatim potvrdite tunel i zabilježite rezultat svakog koraka. Taj zapis čini sljedeće izvješće o izgubljenim postavkama dijagnostičkim umjesto ponavljanjem ovoga, a ujedno govori sljedećoj osobi koja je polovica problema bila stvarna.

Povezani članci