openfortivpn .deb เก่าเหมาะกับ Raspberry Pi ของคุณหรือไม่?
.deb armhf ที่เก็บถาวรได้ล็อกเวอร์ชันที่ Pi ของคุณอาจไม่ตรงอีกต่อไป ตรวจสอบเวอร์ชันระบบปฏิบัติการ สถาปัตยกรรมแพ็กเกจ และแหล่งอัปเดตก่อนติดตั้ง
คำตอบในฟอรัมให้ชื่อไฟล์แบบเต็มมา และชื่อนั้นดูเหมือนทางแก้: .deb ตัวเดียว คำสั่งเดียว จบ แต่สิ่งที่สตริงนั้นเข้ารหัสจริง ๆ คือเวอร์ชันแพ็กเกจ สถาปัตยกรรม CPU และชุดดิสทริบิวชันที่มันถูกสร้างขึ้นเทียบด้วยในวันที่ใครคนหนึ่งเขียนโพสต์ ไม่มีสักอย่างในสามสิ่งนั้นที่อธิบายบอร์ดบนโต๊ะของคุณโดยอัตโนมัติ ไฟล์ดาวน์โหลดเก่าคือภาพรวมสถานะของเครื่องหนึ่งเครื่อง ไม่ใช่แผนติดตั้งสำหรับเครื่องของคุณ
สิ่งที่ชื่อไฟล์ล็อกไว้อย่างเงียบ ๆ
อ่านชื่ออย่าง openfortivpn_1.17.0-1_armhf.deb จากขวาไปซ้าย ส่วนต่อท้ายคือสถาปัตยกรรมที่ไบนารีถูกคอมไพล์มา ฟิลด์กลางคือ revision ของ upstream และการแพ็กเกจ และฟิลด์ที่สี่โดยนัยคือชุดไลบรารีของชุดที่มันถูกสร้างขึ้น
ในการติดตั้ง Raspberry Pi OS แบบ 64 บิต สถาปัตยกรรมระบบคือ arm64 ดังนั้น dpkg -i จะปฏิเสธแพ็กเกจ armhf เพราะสถาปัตยกรรมไม่ตรงกัน แม้ในที่ที่ multiarch ทำให้ติดตั้งได้ ไบนารีก็คาดหวังเวอร์ชันไลบรารีจากรุ่นที่มันถูกสร้างขึ้นเทียบด้วย และระบบฐานที่ใหม่กว่าอาจไม่จัดหาให้แล้ว ผลลัพธ์คือแพ็กเกจที่ติดตั้งแล้วซึ่ง ไฟล์เรียกทำงานเริ่มไม่ขึ้น และนี่คือความล้มเหลวที่คนมักตีความผิดว่าเป็นตัวไคลเอนต์เองที่เสีย
การที่บอร์ดเป็นอุปกรณ์ ARM ไม่ได้ทำให้แพ็กเกจ ARM เหมาะสม สถาปัตยกรรมเป็นแกนหนึ่ง รุ่นและ ABI เป็นอีกสองแกน และมันล้มเหลวแยกจากกัน
ถามดิสทริบิวชันก่อนขอลิงก์ดาวน์โหลด
ทุกช่องทางที่ได้รับการดูแลสามารถบอกคุณได้ว่าตอนนี้จะติดตั้งอะไร รันคำสั่งบนเครื่องเป้าหมาย ด้วยรีโพซิทอรีที่มันใช้จริง ก่อนพิจารณาการถ่ายโอนไฟล์ใด ๆ
cat /etc/os-release
dpkg --print-architecture
apt-cache policy openfortivpnบรรทัดผู้สมัครที่มีเวอร์ชันและชื่อรีโพซิทอรีหมายความว่าดิสทริบิวชันมีบิลด์สำหรับระบบนี้อยู่แล้ว การไม่มีผู้สมัคร หรือผู้สมัครมาจากชุดที่คุณไม่ได้ตั้งใจจะใช้ เป็นข้อมูลเกี่ยวกับแหล่งที่มาของคุณ ไม่ใช่เกี่ยวกับว่าซอฟต์แวร์มีอยู่ที่ใดที่หนึ่ง
ถ้าการรีเฟรชเมทาดาทาล้มเหลว ให้แยกความล้มเหลวนั้นออกจากคำถามเรื่องแพ็กเกจ การแปลงชื่อ การขนส่งรีโพซิทอรี ลายเซ็น Release ที่หายไป และชุดที่สิ้นสุดอายุการใช้งาน ล้วนทำให้ apt update พังก่อนที่ไคลเอนต์จะเข้ามาเกี่ยวข้อง การแก้แหล่งที่มาเป็นงานที่ต่างจากการเลือกไคลเอนต์ VPN และการผสมทั้งสองเข้าด้วยกันคือวิธีที่ผู้คนลงเอยด้วยการชี้ระบบปัจจุบันไปยังรุ่นที่ล้าสมัย
apt ตรวจสอบอะไร และไฟล์ที่ดาวน์โหลดมาไม่ได้อะไร
การติดตั้งปกติเป็นไปตามห่วงโซ่ลายเซ็น: คลังเก็บลงลายเซ็นในดัชนีของตน ดัชนีมีแฮชของแต่ละแพ็กเกจ และแพ็กเกจต้องตรงกัน เอกสารอ้างอิงการพิสูจน์ตัวตนของคลังเก็บ แยกห่วงโซ่นั้นออกจากแนวคิดการตรวจสอบลายเซ็นที่แนบมากับไฟล์แต่ละไฟล์
ไฟล์ที่บันทึกจากลิงก์ HTTP เก่าไม่มีสิ่งใดในนั้นเลย มันมาถึงโดยไม่มีตัวตนของรีโพซิทอรี ไม่ได้รับการอัปเดตเมื่อดิสทริบิวชันแพตช์ไคลเอนต์ และไม่มีอะไรบันทึกว่าใครรับผิดชอบในการแทนที่มัน นั่นยังอาจเป็นทางเลือกที่ชอบธรรมสำหรับผู้ดูแลระบบที่มีอาร์ติแฟกต์แบบล็อกไว้ แต่ทางเลือกนั้นต้องมาพร้อมเจ้าของ เช็กซัมที่บันทึกไว้ที่ใดที่หนึ่ง และแผนสำหรับการอัปเดตความปลอดภัยครั้งถัดไป
การระงับข้อผิดพลาดลายเซ็นหรือปิดการตรวจสอบ TLS เพื่อให้คำแนะนำเก่ายังใช้งานได้ เป็นการลบส่วนเดียวของกระบวนการที่กำลังตรวจสอบอะไรบางอย่าง ให้กู้คืนการตรวจสอบที่ล้มเหลวแทน
ติดตั้งไคลเอนต์ แล้วดีบักการเชื่อมต่อแยกต่างหาก
เมื่อมีผู้สมัครที่ได้รับการดูแล ให้ติดตั้งผ่านทรานแซกชันที่ตรวจทานตามปกติ และให้ตัวจัดการแพ็กเกจบันทึกว่ามันทำอะไร
ถ้าการติดตั้งต้องการบิลด์จาก upstream จริง ๆ ให้ทำตามคำแนะนำการบิลด์ปัจจุบันของโปรเจกต์ และปฏิบัติต่อมันเป็นซอฟต์แวร์ที่คุณดูแลอยู่ตอนนี้: แพ็กเกจสำหรับพัฒนา pkg-config ส่วนหัวไลบรารี TLS และเดมอน PPP เป็น dependency จริง และขั้นตอนการถอนที่คุณจะต้องใช้ในภายหลังก็เช่นกัน
การติดตั้งเป็นเพียงขั้นตอนซอฟต์แวร์ในเครื่องเท่านั้น เกตเวย์ต้องยอมรับโปรโตคอลและขั้นตอนการพิสูจน์ตัวตนของไคลเอนต์ ไคลเอนต์ต้องเชื่อถือใบรับรองที่เกตเวย์นำเสนอ และอุโมงค์ต้องมีชั้น PPP ที่ทำงานได้พร้อมเส้นทางและเจ้าของตัวแก้ไขชื่อ การทำธุรกรรมแพ็กเกจให้เสร็จไม่พิสูจน์อะไรเกี่ยวกับว่าเกตเวย์ยอมรับบัญชีหรือช่วงส่วนตัวเข้าถึงได้หรือไม่ ทดสอบแต่ละชั้นตรงจุดที่มันพัง แทนที่จะรันตัวติดตั้งซ้ำ
แผนที่ควรแทนที่ชื่อไฟล์เก่า
เขียนอัตลักษณ์แพลตฟอร์มก่อน: รุ่นระบบปฏิบัติการ สถาปัตยกรรม และรายการแหล่งที่มาที่ใช้ จากนั้นระบุสถานที่ที่ได้รับอนุญาตซึ่งแพ็กเกจมาจาก ไม่ว่าจะเป็นรีโพซิทอรีดิสทริบิวชัน รีโพซิทอรีผู้จำหน่ายที่มีคีย์ล็อกไว้ หรือบิลด์ที่คุณคอมไพล์และแพ็กเกจเอง
สุดท้าย ระบุผู้ดูแลและเส้นทางการอัปเดต Pi ที่รันไคลเอนต์ที่ไม่มีใครเป็นเจ้าของจะทำงานต่อไปจนถึงการอัปเดตไลบรารีครั้งแรก แล้วใครบางคนที่มีปัญหาเดียวกันจะพบกระทู้ฟอรัมเดิมอีกครั้ง
ความเชื่อที่แก้ไขแล้วนั้นเรียบง่ายพอที่จะพูดในบรรทัดเดียว: แพ็กเกจเก่าเป็นหลักฐานว่าไคลเอนต์เคยถูกสร้างและทำงานได้ ไม่ใช่หลักฐานว่าจะติดตั้งบนบอร์ดของคุณคืนนี้ ตรวจสอบทั้งสามแกน แล้วเลือกช่องทางที่คุณอัปเดตต่อไปได้