Sebuah jawaban di forum memberi Anda nama berkas lengkap, dan namanya tampak seperti solusinya: satu .deb, satu perintah, selesai. Yang sebenarnya dikodekan oleh string itu adalah versi paket, arsitektur CPU, dan rangkaian distribusi yang menjadi dasar pembuatannya pada hari seseorang menulis postingan tersebut. Tidak satu pun dari ketiganya secara otomatis menggambarkan papan yang ada di meja Anda. Unduhan lama itu adalah cuplikan situasi satu mesin, bukan rencana pemasangan untuk mesin Anda.

Apa yang diam-diam dikunci oleh nama berkas

Bacalah nama seperti openfortivpn_1.17.0-1_armhf.deb dari kanan ke kiri. Akhiran adalah arsitektur tempat biner dikompilasi, bidang tengah adalah revisi upstream dan pengemasan, dan bidang keempat yang tersirat adalah kumpulan pustaka dari rangkaian tempat ia dibangun.

Pada pemasangan Raspberry Pi OS 64-bit, arsitektur sistem adalah arm64, sehingga dpkg -i menolak paket armhf karena ketidakcocokan arsitektur. Bahkan ketika multiarch memungkinkan pemasangan, biner mengharapkan versi pustaka dari rilis yang menjadi dasar pembuatannya, dan sistem dasar yang lebih baru mungkin tidak lagi menyediakannya. Hasilnya adalah paket terpasang yang berkas eksekutabelnya tidak dapat dimulai, dan itulah kegagalan yang biasanya disalahartikan orang sebagai kliennya sendiri yang rusak.

Papan yang merupakan perangkat ARM tidak membuat paket ARM menjadi sesuai. Arsitektur adalah satu sumbu; rilis dan ABI adalah dua sumbu lainnya, dan keduanya gagal secara independen.

Tanyakan kepada distribusi sebelum meminta tautan unduhan

Setiap kanal yang terpelihara dapat memberi tahu Anda apa yang akan dipasangnya saat ini. Jalankan kueri pada mesin target, dengan repositori yang benar-benar digunakannya, sebelum mempertimbangkan pemindahan berkas apa pun.

cat /etc/os-release
dpkg --print-architecture
apt-cache policy openfortivpn

Baris kandidat dengan versi dan nama repositori berarti distribusi sudah memiliki build untuk sistem ini. Tidak ada kandidat, atau kandidat dari rangkaian yang tidak Anda maksudkan untuk digunakan, adalah informasi tentang sumber Anda, bukan tentang apakah perangkat lunak itu ada di suatu tempat.

Jika penyegaran metadata gagal, pisahkan kegagalan itu dari pertanyaan paket. Resolusi nama, transportasi repositori, tanda tangan Release yang hilang, dan rangkaian yang sudah habis masa pakainya semuanya merusak apt update sebelum klien terlibat. Memperbaiki sumber adalah tugas berbeda dari memilih klien VPN, dan mencampur keduanya adalah cara orang akhirnya mengarahkan sistem terkini ke rilis usang.

Apa yang diverifikasi apt, dan apa yang tidak didapat berkas unduhan

Pemasangan normal mengikuti rantai tanda tangan: arsip menandatangani indeksnya, indeks membawa hash untuk setiap paket, dan paket harus cocok. referensi autentikasi arsip memisahkan rantai itu dari gagasan memeriksa tanda tangan yang dilekatkan pada setiap berkas individual.

Berkas yang disimpan dari tautan HTTP lama tidak memiliki semua itu. Ia datang tanpa identitas repositori, tidak diperbarui saat distribusi menambal klien, dan tidak ada yang mencatat siapa yang bertanggung jawab menggantinya. Itu masih bisa menjadi pilihan yang sah bagi administrator dengan artefak terkunci, tetapi pilihan itu harus disertai pemilik, checksum yang dicatat di suatu tempat, dan rencana untuk pembaruan keamanan berikutnya.

Menekan galat tanda tangan atau menonaktifkan verifikasi TLS agar instruksi lama tetap berjalan menghapus satu-satunya bagian proses yang memeriksa apa pun. Pulihkan pemeriksaan yang gagal itu.

Pasang klien, lalu debug koneksi secara terpisah

Ketika kandidat terpelihara ada, pasang melalui transaksi tertinjau yang normal dan biarkan manajer paket mencatat apa yang dilakukannya.

Jika penerapan benar-benar membutuhkan build dari upstream, ikuti instruksi build proyek yang berlaku saat ini dan perlakukan sebagai perangkat lunak yang kini Anda pelihara: paket pengembangan, pkg-config, header pustaka TLS, dan daemon PPP adalah dependensi nyata, begitu pula prosedur penghapusan yang akan Anda butuhkan nanti.

Pemasangan hanyalah tahap perangkat lunak lokal. Gateway harus menerima protokol dan alur autentikasi klien, klien harus memercayai sertifikat yang disajikan gateway, dan terowongan membutuhkan lapisan PPP yang berfungsi plus rute dan pemilik resolver. Transaksi paket yang selesai tidak membuktikan apa pun tentang apakah gateway menerima akun atau apakah rentang privat dapat dijangkau. Uji setiap lapisan di tempat ia rusak alih-alih menjalankan ulang penginstal.

Rencana yang seharusnya menggantikan nama berkas lama

Tuliskan identitas platform terlebih dahulu: rilis OS, arsitektur, dan daftar sumber yang digunakan. Lalu sebutkan tempat resmi asal paket, baik itu repositori distribusi, repositori vendor dengan kunci terkunci, atau build yang Anda kompilasi dan kemas sendiri.

Terakhir, sebutkan pemelihara dan jalur pembaruan. Pi yang menjalankan klien yang tidak dimiliki siapa pun akan terus bekerja sampai pembaruan pustaka pertama, dan kemudian orang dengan masalah yang sama akan menemukan utas forum yang sama lagi.

Keyakinan yang dikoreksi cukup sederhana untuk dinyatakan dalam satu baris: paket lama adalah bukti bahwa klien pernah dibangun dan berjalan, bukan bukti bahwa ia akan terpasang di papan Anda malam ini. Periksa ketiga sumbu, lalu pilih kanal yang dapat terus Anda perbarui.

Artikel terkait