Miért nem hozza vissza az új VPN-parancsikon az elveszett beállításokat
Az indító eldönti, hogyan indul egy program, nem azt, hogy hol tartja a beállításait. Hasonlítsa össze a futtatható fájl, a felhasználó és a konfiguráció környezetét, mielőtt az ikont hibáztatja.
Hiányzó menübejegyzések és eltűnő beállítások ugyanazzal a reflexszel javíthatók, pedig nem összefüggő problémák. Az egyik asztali integráció, a másik az alkalmazás állapota, és egy új ikon önmagában egyiket sem változtatja meg. A kettő szétválasztása egy kísérletbe kerül, és megmagyarázza a téma körüli zavar nagy részét. Az indító elindít egy programot; a program dönti el, mire emlékszik.
Két munka, amely csak egynek látszik
Az asztali integráció azt jelenti, hogy a környezet megtalál egy futtatható fájlt, nevet és ikont jelenít meg, és átadja a megfelelő argumentumokat. Az alkalmazás állapota azt jelenti, hogy a program tartós helyre ír egy profilt, és a következő indításkor visszaolvassa. Egyik sem feltételezi a másikat, ezért egy működő parancsikon elindíthat egy klienst, amely mindent elfelejtett.
Módosítson egy ártalmatlan megjelenítési beállítást az alkalmazás saját vezérlőivel, majd zárja be és ugyanúgy nyissa meg újra. Ha a beállítás visszatér, a tartós tárolás működik, és a fennmaradó panasz az ablak megtalálásáról szól, nem az adatok mentéséről. Ha eltűnik, a parancsikon elterelés, és az igazi kérdés az, hol tartja a fájljait az a folyamat. Egyszerre egy beállítást teszteljen, mert a jelszót újra kérő kliens talán inkább véd egy titkot, mint elveszít egy konfigurációt.
Hasonlítsa össze az indítás bemeneteit újratelepítés előtt
Kezdje az asztali bejegyzésnél, és olvassa el, mit tesz valójában, mert a menüből indítás nem automatikusan ugyanaz a folyamatkörnyezet, mint a terminálból indítás. A fontos kulcsok a Exec, a Path és közvetve a munkamenet által biztosított környezet. Egy burkoló szkript a Exec alatt beállíthat egy változót, könyvtárat válthat, vagy meghívhat egy kiemelt segédet, amelyet a menü soha nem mutat. Az újratelepítés azokat a fájlokat cseréli le, amelyekkel az alkalmazás már rendelkezett, és ez ritkán az a változó, amely megváltozott.
grep -h '^Exec=' ~/.local/share/applications/*.desktop
desktop-file-validate ~/.local/share/applications/client.desktop
Nézze meg a ~/.local/share/applications alatti fájlt a /usr/share/applications alatti előtt, mert a felhasználói másolat eltakarja a rendszer másolatát. Futtassa a desktop-file-validate parancsot, amikor a bejegyzés rosszul viselkedik, és keressen elavult másolatot, amely még egy eltávolított útvonalra mutat. Az érvénytelen felhasználói másolatot a legtöbb asztal továbbra is előnyben részesíti, így egy hibás fájl eltávolíthatja a bejegyzést a menüből, miközben a csomag fájlja érvényes marad. Ezután futtassa ugyanazt a parancsot kézzel, és hasonlítsa össze, mit ad a két indítás.
Hol él valójában egy beállítás
Azok az alkalmazások, amelyek követik az XDG alapkönyvtár-szabályokat, a konfigurációt a $XDG_CONFIG_HOME alá, a tartós állapotot a $XDG_STATE_HOME alá, az eldobható adatokat pedig a $XDG_CACHE_HOME alá teszik, és alapértelmezésként a ~/.config, a ~/.local/state és a ~/.cache könyvtárat használják, ha ezek a változók nincsenek beállítva. A három szerep, nem ígéret, ezért egy adott VPN-termék egészen mást dokumentálhat. A szállító saját dokumentációjának olvasása jobb, mint egy útvonalat könyvtárnévből kitalálni. Ha a dokumentáció szűkszavú, figyelje a folyamatot a fájlrendszer helyett.
A fájlmegnyitásokra szűrt nyomkövetés megmutatja minden konfigurációs útvonalat, amelyet a kliens kipróbál, beleértve azt is, amelyet kilépéskor ír. Futtassa ugyanazzal a felhasználóval és ugyanabban a környezetben, majd hasonlítsa össze ezeket az útvonalakat a várt könyvtárakkal.
strace -f -e trace=openat,stat -o /tmp/vpn.log vpn-client
A titkoknak és a profiloknak különböző tulajdonosaik vannak
A mentett profil és a mentett hitelesítő adat külön objektumok, gyakran külön tárolóval. Az egyik konfigurációs fájlban élhet, míg a másik egy munkamenetenként nyíló kulcstartóban ül, így a jelszót újra kérő kliens talán csak azt teszi, amire tervezték. A profil törlése a kérés megállítására az az út, ahogyan az emberek elveszítenek egy működő konfigurációt.
A kiemelt indítások tovább bonyolítják ezt, mert a sudo vagy egy PolicyKit-segéd útján történő indítás másik saját könyvtárat és ezáltal másik konfigurációkészletet mutathat. A tulajdonjogot azon a konkrét fájlon javítsa, amelyet az alkalmazás dokumentál, ne rekurzívan az egész saját könyvtáron, majd döntse el, melyik identitás birtokolja a profilt a továbbiakban, és tartsa a jövőbeli indításokat ehhez igazodva.
Mit mondhat el az ikon és mit nem
Egy ikon azt bizonyítja, hogy egy indítófájl feloldható, és semmi többet. A kapcsolat állapota a kliensé, ezért az egyetlen megbízható ellenőrzés a felület, az útvonal vagy a kliens saját állapotkimenete. Egy el nem indult tálcatálca-alkalmazás működő alagutat tűnhet töröttnek mutatni, míg egy elavult alkalmazás egy töröttet rendben lévőnek. Tesztelje a kapcsolatot és az indítót külön, majd jegyezze fel, melyiket javította valójában.
Ha mindkettő törött volt, álljon ellen a kísértésnek, hogy a javítást egyetlen változásként kezelje. Javítsa a bejegyzést, erősítse meg az indítást, majd erősítse meg az alagutat, és jegyezze fel minden lépés eredményét. Ez a feljegyzés teszi a következő elveszett beállításokról szóló jelentést diagnosztizálhatóvá ahelyett, hogy ennek megismétlése lenne, és ez mondja meg a következő embernek, melyik fél volt valódi a problémából.