Trūkstošie izvēlnes ieraksti un pazūdošās preferences tiek labotas ar to pašu refleksu, lai gan tās ir nesaistītas problēmas. Viena ir darbvirsmas integrācija, otra ir lietotnes stāvoklis, un jauna ikona pati par sevi nemaina nevienu no tām. To nošķiršana prasa vienu eksperimentu un izskaidro lielāko daļu apjukuma, ko cilvēki ienes šajā tēmā. Palaidējs palaiž programmu; programma izlemj, ko tā atceras.

Divi darbi, kas tikai izskatās kā viens

Darbvirsmas integrācija nozīmē, ka vide spēj atrast izpildāmo failu, parādīt nosaukumu un ikonu un nodot pareizos argumentus. Lietotnes stāvoklis nozīmē, ka programma ieraksta profilu noturīgā vietā un nākamajā palaidē nolasa to atpakaļ. Neviens neizriet no otra, tāpēc strādājošs īsceļš var palaist klientu, kas visu ir aizmirsis.

Nomainiet vienu nekaitīgu attēlojuma preferenci, izmantojot pašas lietotnes vadīklas, pēc tam aizveriet un atveriet to pašā veidā. Ja preference atgriežas, noturība strādā, un atlikušā sūdzība ir par loga atrašanu, nevis datu saglabāšanu. Ja tā pazūd, īsceļš ir uzmanības novēršana, un īstais jautājums ir, kur šis process glabā savus failus. Pārbaudiet vienu preferenci vienlaikus, jo klients, kas atkal prasa paroli, varbūt sargā noslēpumu, nevis zaudē konfigurāciju.

Salīdziniet palaišanas ievades pirms pārinstalēšanas

Sāciet ar darbvirsmas ierakstu un izlasiet, ko tas faktiski dara, jo palaišana no izvēlnes nav automātiski tā pati procesa vide kā palaišana no termināļa. Svarīgās atslēgas ir Exec, Path un netieši vide, ko nodrošina sesija. Aptinēja skripts failā Exec var iestatīt mainīgo, mainīt direktoriju vai izsaukt privilēģizētu palīgu, ko izvēlne nekad nerāda. Pārinstalēšana aizstāj failus, kas lietotnei jau bija, un tas reti ir mainīgais, kas mainījās.

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

Apskatiet failu zem ~/.local/share/applications pirms tā, kas ir /usr/share/applications, jo lietotāja kopija aizēno sistēmas kopiju. Palaidiet desktop-file-validate, kad ieraksts uzvedas nepareizi, un meklējiet novecojušu kopiju, kas joprojām norāda uz noņemtu ceļu. Lielākā daļa darbvirsmju joprojām dod priekšroku nederīgai lietotāja kopijai, tāpēc bojāts fails var noņemt ierakstu no izvēlnes, kamēr pakotnes fails paliek derīgs. Tad palaidiet to pašu komandu ar roku un salīdziniet, ko dod abas palaišanas.

Kur preference patiešām dzīvo

Lietotnes, kas ievēro XDG bāzes direktoriju noteikumus, ievieto konfigurāciju zem $XDG_CONFIG_HOME, noturīgo stāvokli zem $XDG_STATE_HOME un vienreizlietojamos datus zem $XDG_CACHE_HOME, un izmanto ~/.config, ~/.local/state un ~/.cache pēc noklusējuma, kad šie mainīgie nav iestatīti. Šie trīs ir lomas, nevis solījumi, tāpēc konkrēts VPN produkts var dokumentēt ko pavisam citu. Piegādātāja paša dokumentācijas lasīšana ir labāka par ceļa minēšanu no direktorijas nosaukuma. Kad dokumentācija ir plāna, vērojiet procesu, nevis failu sistēmu.

Pēdas, kas filtrētas pēc failu atvēršanas, parāda katru konfigurācijas ceļu, ko klients mēģina, tostarp to, ko tas ieraksta izejot. Palaidiet to kā tas pats lietotājs tajā pašā vidē, tad salīdziniet šos ceļus ar direktorijām, kuras gaidījāt.

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

Noslēpumiem un profiliem ir dažādi īpašnieki

Saglabāts profils un saglabāti akreditācijas dati ir atsevišķi objekti, bieži ar atsevišķu glabātuvi. Viens var dzīvot konfigurācijas failā, kamēr otrs sēž atslēgu saišķī, kas atslēdzas katrai sesijai, tāpēc klients, kas atkal prasa paroli, varbūt vienkārši dara to, kam tas ir paredzēts. Profila dzēšana, lai apturētu uzvedni, ir veids, kā cilvēki zaudē strādājošu konfigurāciju.

Privilēģizētas palaišanas to vēl vairāk sarežģī, jo palaišana ar sudo vai PolicyKit palīgu var parādīt citu mājas direktoriju un tādējādi citu konfigurācijas kopu. Labojiet īpašumtiesības konkrētajā failā, ko lietotne dokumentē, nevis rekursīvi visā mājas direktorijā, tad izlemiet, kurai identitātei turpmāk jāpieder profilam, un turiet turpmākās palaišanas ar to saskaņotas.

Ko ikona var pateikt un ko ne

Ikona pierāda, ka palaidēja fails atrisinās, un neko vairāk. Savienojuma stāvoklis pieder klientam, tāpēc vienīgā uzticamā pārbaude ir saskarne, maršruts vai paša klienta statusa izvade. Teknes lietotne, kas netika palaista, var likt strādājošam tunelim izskatīties bojātam, kamēr novecojusi lietotne var likt bojātam izskatīties kārtībā. Pārbaudiet savienojumu un palaidēju atsevišķi, tad pierakstiet, kuru no tiem tiešām salabojāt.

Ja abi bija bojāti, pretstatieties kārdinājumam uzskatīt labošanu par vienu izmaiņu. Salabojiet ierakstu, apstipriniet palaišanu, tad apstipriniet tuneli un pierakstiet katra soļa rezultātu. Tieši šis pieraksts padara nākamo ziņojumu par pazaudētiem iestatījumiem diagnosticējamu, nevis šī atkārtojumu, un tas arī pasaka nākamajam cilvēkam, kura problēmas puse bija īsta.

Saistītie raksti