Mengapa pintasan VPN baru tidak memulihkan pengaturan yang hilang
Peluncur menentukan bagaimana program dimulai, bukan di mana ia menyimpan preferensinya. Bandingkan konteks berkas eksekusi, pengguna, dan konfigurasi sebelum menyalahkan ikon.
Entri menu yang hilang dan preferensi yang lenyap diperbaiki dengan refleks yang sama, padahal keduanya masalah yang tidak berhubungan. Satu soal integrasi desktop, yang lain soal status aplikasi, dan ikon baru tidak mengubah keduanya dengan sendirinya. Memisahkan keduanya butuh satu percobaan dan menjelaskan sebagian besar kebingungan yang orang bawa ke topik ini. Peluncur memulai program; programlah yang memutuskan apa yang diingatnya.
Dua pekerjaan yang hanya tampak satu
Integrasi desktop berarti lingkungan dapat menemukan berkas eksekusi, menampilkan nama dan ikon, serta meneruskan argumen yang tepat. Status aplikasi berarti program menulis profil di tempat yang tahan lama dan membacanya lagi pada peluncuran berikutnya. Tidak satu pun mengharuskan yang lain, karena itu pintasan yang berfungsi bisa meluncurkan klien yang sudah melupakan segalanya.
Ubah satu preferensi tampilan yang tidak berbahaya melalui kontrol aplikasi itu sendiri, lalu tutup dan buka lagi dengan cara yang sama. Jika preferensi kembali, penyimpanan bekerja dan keluhan yang tersisa soal menemukan jendela, bukan soal menyimpan data. Jika hilang, pintasan itu pengalih perhatian dan pertanyaan sebenarnya adalah di mana proses itu menyimpan berkasnya. Uji satu preferensi setiap kali, karena klien yang meminta kata sandi lagi mungkin sedang melindungi rahasia, bukan kehilangan konfigurasi.
Bandingkan masukan peluncuran sebelum memasang ulang
Mulai dari entri desktop dan baca apa yang sebenarnya dilakukannya, karena peluncuran dari menu tidak otomatis merupakan lingkungan proses yang sama dengan peluncuran dari terminal. Kunci yang penting adalah Exec, Path, dan secara tidak langsung lingkungan yang disediakan sesi. Skrip pembungkus di Exec dapat menetapkan variabel, mengubah direktori, atau memanggil pembantu berhak istimewa yang tidak pernah ditampilkan menu. Memasang ulang mengganti berkas yang sudah dimiliki aplikasi, dan itu jarang menjadi variabel yang berubah.
grep -h '^Exec=' ~/.local/share/applications/*.desktop
desktop-file-validate ~/.local/share/applications/client.desktop
Lihat berkas di ~/.local/share/applications sebelum yang ada di /usr/share/applications, karena salinan pengguna menutupi salinan sistem. Jalankan desktop-file-validate ketika entri berperilaku buruk, dan cari salinan basi yang masih menunjuk ke jalur yang sudah dihapus. Salinan pengguna yang tidak valid masih lebih disukai sebagian besar desktop, sehingga berkas rusak dapat menghapus entri dari menu sementara berkas milik paket tetap valid. Setelah itu jalankan perintah yang sama dengan tangan dan bandingkan apa yang dihasilkan kedua peluncuran.
Di mana preferensi sebenarnya hidup
Aplikasi yang mengikuti aturan direktori dasar XDG menaruh konfigurasi di bawah $XDG_CONFIG_HOME, status tahan lama di bawah $XDG_STATE_HOME, dan data sekali pakai di bawah $XDG_CACHE_HOME, dengan ~/.config, ~/.local/state, dan ~/.cache sebagai bawaan ketika variabel itu tidak ditetapkan. Ketiganya adalah peran, bukan janji, jadi produk VPN tertentu bisa mendokumentasikan hal yang sama sekali berbeda. Membaca dokumentasi vendor itu sendiri lebih baik daripada menebak jalur dari nama direktori. Ketika dokumentasinya tipis, amati prosesnya, bukan sistem berkasnya.
Jejak yang disaring ke pembukaan berkas memperlihatkan setiap jalur konfigurasi yang dicoba klien, termasuk jalur yang ditulisnya saat keluar. Jalankan sebagai pengguna yang sama dengan lingkungan yang sama, lalu bandingkan jalur itu dengan direktori yang Anda harapkan.
strace -f -e trace=openat,stat -o /tmp/vpn.log vpn-client
Rahasia dan profil punya pemilik berbeda
Profil tersimpan dan kredensial tersimpan adalah objek terpisah, sering dengan penyimpanan terpisah. Yang satu bisa hidup di berkas konfigurasi sementara yang lain duduk di keyring yang terbuka per sesi, jadi klien yang meminta kata sandi lagi mungkin hanya melakukan apa yang memang dirancang untuknya. Menghapus profil untuk menghentikan permintaan itulah cara orang kehilangan konfigurasi yang berfungsi.
Peluncuran dengan hak istimewa menambah kerumitan, karena peluncuran melalui sudo atau pembantu PolicyKit dapat menampilkan direktori rumah yang berbeda dan karena itu kumpulan konfigurasi yang berbeda. Perbaiki kepemilikan pada berkas tertentu yang didokumentasikan aplikasi, bukan secara rekursif di seluruh direktori rumah, lalu putuskan identitas mana yang harus memiliki profil itu selanjutnya dan jaga peluncuran berikutnya tetap konsisten dengannya.
Apa yang bisa dan tidak bisa dikatakan ikon
Ikon membuktikan bahwa berkas peluncur dapat diselesaikan, tidak lebih. Status koneksi milik klien, jadi satu-satunya pemeriksaan yang andal adalah antarmuka, rute, atau keluaran status klien itu sendiri. Applet baki yang gagal mulai dapat membuat terowongan yang bekerja tampak rusak, sementara applet basi dapat membuat yang rusak tampak baik. Uji koneksi dan peluncurnya secara terpisah, lalu tuliskan mana yang benar-benar Anda perbaiki.
Jika keduanya rusak, tahan diri dari memperlakukan perbaikan sebagai satu perubahan. Perbaiki entrinya, pastikan peluncurannya, lalu pastikan terowongannya, dan catat hasil setiap langkah. Catatan itulah yang membuat laporan pengaturan hilang berikutnya dapat didiagnosis alih-alih menjadi pengulangan laporan ini, dan itu juga yang memberi tahu orang berikutnya separuh masalah mana yang nyata.