Entri menu yang hilang dan keutamaan yang lenyap dibaiki dengan refleks yang sama, sedangkan kedua-duanya masalah yang tidak berkaitan. Satu ialah integrasi desktop, satu lagi keadaan aplikasi, dan ikon baharu tidak mengubah mana-mana daripadanya dengan sendirinya. Memisahkan kedua-duanya memerlukan satu eksperimen dan menjelaskan sebahagian besar kekeliruan yang dibawa orang ke topik ini. Pelancar memulakan program; program yang menentukan apa yang diingatnya.

Dua kerja yang hanya kelihatan satu

Integrasi desktop bermaksud persekitaran boleh mencari fail boleh laku, memaparkan nama dan ikon serta menyampaikan hujah yang betul. Keadaan aplikasi bermaksud program menulis profil di tempat yang tahan lama dan membacanya semula pada permulaan seterusnya. Kedua-duanya tidak semestinya mengandaikan satu sama lain, sebab itu pintasan yang berfungsi boleh melancarkan klien yang telah lupa segala-galanya.

Tukar satu keutamaan paparan yang tidak berbahaya melalui kawalan aplikasi itu sendiri, kemudian tutup dan buka semula dengan cara yang sama. Jika keutamaan itu kembali, ketekalan berfungsi dan baki aduan adalah tentang mencari tetingkap, bukan menyimpan data. Jika ia hilang, pintasan itu pengalih perhatian dan soalan sebenar ialah di mana proses itu menyimpan failnya. Uji satu keutamaan pada satu masa, kerana klien yang meminta semula kata laluan mungkin sedang melindungi rahsia dan bukan kehilangan konfigurasi.

Bandingkan input pelancaran sebelum memasang semula

Mulakan pada entri desktop dan baca apa yang sebenarnya dilakukannya, kerana pelancaran dari menu tidak semestinya persekitaran proses yang sama seperti pelancaran dari terminal. Kunci yang penting ialah Exec, Path dan secara tidak langsung persekitaran yang disediakan sesi. Skrip pembalut dalam Exec boleh menetapkan pemboleh ubah, menukar direktori atau memanggil pembantu istimewa yang tidak pernah ditunjukkan oleh menu. Memasang semula menggantikan fail yang sudah dimiliki aplikasi, dan itu jarang menjadi pemboleh ubah yang berubah.

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

Lihat fail di bawah ~/.local/share/applications sebelum yang ada di /usr/share/applications, kerana salinan pengguna menutupi salinan sistem. Jalankan desktop-file-validate apabila entri itu berkelakuan buruk, dan cari salinan lapuk yang masih menunjuk ke laluan yang telah dibuang. Salinan pengguna yang tidak sah masih diutamakan oleh kebanyakan desktop, jadi fail yang rosak boleh membuang entri daripada menu sementara fail pakej kekal sah. Selepas itu jalankan perintah yang sama secara manual dan bandingkan apa yang dihasilkan oleh kedua-dua pelancaran.

Di mana keutamaan sebenarnya hidup

Aplikasi yang mengikut peraturan direktori asas XDG meletakkan konfigurasi di bawah $XDG_CONFIG_HOME, keadaan tahan lama di bawah $XDG_STATE_HOME dan data sekali guna di bawah $XDG_CACHE_HOME, dan menggunakan ~/.config, ~/.local/state serta ~/.cache secara lalai apabila pemboleh ubah itu tidak ditetapkan. Ketiga-tiganya ialah peranan, bukan janji, jadi produk VPN tertentu boleh mendokumenkan sesuatu yang sama sekali berbeza. Membaca dokumentasi vendor itu sendiri lebih baik daripada meneka laluan daripada nama direktori. Apabila dokumentasinya nipis, perhatikan prosesnya dan bukan sistem fail.

Jejak yang ditapis kepada pembukaan fail menunjukkan setiap laluan konfigurasi yang dicuba klien, termasuk laluan yang ditulisnya semasa keluar. Jalankan sebagai pengguna yang sama dengan persekitaran yang sama, kemudian bandingkan laluan itu dengan direktori yang anda jangkakan.

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

Rahsia dan profil mempunyai pemilik berbeza

Profil tersimpan dan kelayakan tersimpan ialah objek berasingan, selalunya dengan storan berasingan. Satu boleh hidup dalam fail konfigurasi manakala yang lain duduk dalam gelang kunci yang dibuka setiap sesi, jadi klien yang meminta semula kata laluan mungkin hanya melakukan apa yang direka untuknya. Menghapuskan profil untuk menghentikan gesaan itulah cara orang kehilangan konfigurasi yang berfungsi.

Pelancaran istimewa menjadikan ini lebih rumit, kerana pelancaran melalui sudo atau pembantu PolicyKit boleh memaparkan direktori rumah yang berbeza dan seterusnya set konfigurasi yang berbeza. Betulkan pemilikan pada fail tertentu yang didokumenkan oleh aplikasi dan bukan secara rekursif merentas direktori rumah, kemudian tentukan identiti mana yang patut memiliki profil itu selepas ini dan kekalkan pelancaran masa depan selaras dengannya.

Apa yang boleh dan tidak boleh diberitahu oleh ikon

Ikon membuktikan bahawa fail pelancar dapat diselesaikan, tidak lebih daripada itu. Keadaan sambungan milik klien, jadi satu-satunya pemeriksaan yang boleh dipercayai ialah antara muka, laluan atau keluaran status klien itu sendiri. Applet dulang yang gagal dimulakan boleh membuat terowong yang berfungsi kelihatan rosak, manakala applet lapuk boleh membuat yang rosak kelihatan baik. Uji sambungan dan pelancar secara berasingan, kemudian catat yang mana sebenarnya anda baiki.

Jika kedua-duanya rosak, tahan diri daripada menganggap pembaikan itu satu perubahan. Baiki entri, sahkan pelancaran, kemudian sahkan terowong, dan catat hasil setiap langkah. Catatan itulah yang menjadikan laporan tetapan hilang yang seterusnya boleh didiagnosis dan bukan pengulangan laporan ini, dan ia juga memberitahu orang seterusnya separuh masalah mana yang benar-benar wujud.

Artikel berkaitan