تحتاج إلى عميل VPN للوصول إلى الشبكة التي توفّر حزمه عادةً، وهي دائرة صغيرة أنيقة. تنزيل حزمة OpenVPN DEB واحدة على جهاز آخر ينتهي عادةً بتبعية ناقصة ثانية، ثم ثالثة، ثم أمسية كاملة في مطاردة إصدارات المكتبات. البديل هو أن تترك الجهاز المنفصل يعلن، بمصطلحاته هو، ما يحتاجه مدير الحزم لديه. كل ما يلي ينبع من هذا الانقلاب في من يسأل.

في أنظمة عائلة Debian تجري تلك المحادثة عبر apt-offline، وهو سير عمل قائم على الطلب والإرجاع. ويجب أن تكون بيئة تشغيله موجودة على الجهاز الهدف أولًا، مثبّتة من وسائط معتمدة أو من إجراء تمهيدي آخر يديره مسؤول، لأن أي أداة لا تستطيع أن تُقلع بنفسها من لا شيء.

ابدأ من حالة حزم الهدف، لا من حالة الجهاز المساعد

سجّل إصدار توزيعة الهدف ومعمارية مساحة المستخدم ومصادر الحزم المضبوطة قبل أي شيء آخر. هذه الحقائق الثلاث تحدّد أي تنفيذ VPN وأي تكامل سطح مكتب مناسب، وهي الحقائق التي لا يستطيع جهاز مساعد متصل أن يقدّمها.

الجهاز المساعد ينزّل الملفات؛ وهو لا يصبح خط الأساس للتبعيات. الحاسوب المحمول الأحدث الذي لديه OpenVPN مثبّتًا لديه حالة حزم مختلفة تمامًا عن الهدف، لذا فإن نجاحه لا يثبت شيئًا عمّا يمكن للهدف قبوله.

قرّر أيضًا ما تريده فعلًا. محرّك VPN، ومكوّن خدمة NetworkManager، ومحرّر رسومي هي حزم منفصلة، والاختيار الصحيح يعتمد على الإصدار وعلى كيفية إدارة المستخدم للاتصال. الخادم بلا واجهة يحتاج المحرّك وملف تهيئة؛ وسطح المكتب يحتاج المكوّن الذي يتيح لإعدادات الشبكة لديه امتلاك النفق. وطلب المجموعة الخاطئة ينتج تثبيتًا ينجح واتصالًا لا يستطيع أحد بدءه.

رحلتان ذهابًا وإيابًا، بهذا الترتيب

يفصل الدليل ثلاث عمليات: إنشاء طلب على النظام المنفصل، والتنزيل على جهاز مساعد متصل، والاستيراد مرة أخرى على الهدف. حدّث بيانات تعريف مستودع الهدف قبل طلب الحزم، لأن طلب الحزمة يُبنى من تلك البيانات التعريفية، والفهارس القديمة تنتج طلبات لا يستطيع الجهاز المساعد تلبيتها.

على الهدف، يكتب أمر إداري بالصيغة apt-offline set vpn-meta.sig --update طلب التحديث. انقل ذلك الملف إلى الجهاز المتصل ونزّل حزمة مجمّعة بالأمر apt-offline get vpn-meta.sig --bundle vpn-meta.zip. أعد الحزمة المجمّعة واستوردها على الهدف بالأمر apt-offline install vpn-meta.zip، بصفتك مسؤولًا مرة أخرى.

الآن أنشئ طلب الحزمة من البيانات التعريفية المحدّثة، مثلًا apt-offline set vpn-deps.sig --install-packages openvpn، وكرّر الرحلة باسم حزمة مجمّعة جديد. أبقِ كل طلب مقترنًا بالحزمة التي أنتجها؛ فالحزمة المبنية على بيانات تعريف أقدم ليست الطلب نفسه، حتى عندما تبدو أسماء الملفات قابلة للتبادل.

أضف حزم التكامل فقط عندما يحتاجها التصميم

إذا كان من المفترض أن يدير سطح المكتب النفق عبر إعدادات الشبكة فيه، فإن الطلب يحتاج المكوّن المطابق إلى جانب المحرّك. ضمّن أسماء الحزم المحدّدة التي يوفّرها إصدارك بدلًا من قائمة متذكّرة من توزيعة أخرى، وأنشئ طلبًا جديدًا كلما تغيّرت القائمة. وتثبيت الإصدارات يستحق تفكيرًا أيضًا: فحزمة مبنية لإصدار أحدث قد تلبّي الاسم وتفشل مع ذلك عند التشغيل. وهنا تصبح مجموعة ثابتة من أربع حزم عبئًا، لأن القائمة الصحيحة خاصية من خصائص الهدف ولا يستطيع حسابها إلا الهدف.

وهنا أيضًا تصبح مجموعة ثابتة من أربع حزم عبئًا. القائمة الصحيحة خاصية من خصائص الهدف، والهدف هو الجهاز الوحيد الذي يمكنه حسابها بشكل صحيح.

استيراد حزمة مجمّعة ليس تثبيتًا لـ VPN

على الرغم من الاسم، تضع عملية التثبيت بيانات APT في بيئة إدارة الحزم. وهي لا تنفّذ معاملة الحزم. أكمل وراجع تثبيت APT الفعلي على الهدف من البيانات الموفّرة محليًا، واقرأ المخرجات بدلًا من افتراض أن نجاح ملف ZIP يعني أن البرنامج موجود.

إذا كان ذلك التعامل لا يزال يطلب ملفات غير متاحة، فاحتفظ بالتبعية الناقصة المحدّدة أو بخطأ المستودع وأنشئ الطلب التالي منه. لا تستبدل حزمة DEB من إصدار مختلف، ولا تعطّل فحوص المجموع الاختباري أو مصادقة المستودع لفرض المرور. يحذّر الدليل صراحةً من تخطّي التحقق من الملفات المنزّلة، ولسبب وجيه: فالحزمة غير المتحقّق منها نتيجة أسوأ من تثبيت فاشل.

الحزم ليست إلا النصف الأول

تثبيت البرنامج منفصل عن الحصول على نقطة النهاية المعتمدة والملف الشخصي ومادة الثقة وبيانات الاعتماد، وقد يكون لكل من هذه تسليمه المضبوط الخاص. ومجموعة حزم عاملة بلا ملف شخصي صالح لا تتصل بشيء.

ثم أبقِ مسار النقل دون اتصال حيًّا للتحديثات المستقبلية. اعتبار أول اتصال ناجح نهاية للصيانة يعني أن تحديث الأمان التالي ينتظر حتى يستطيع شخص ما بسيارة أن يزور، وهكذا تتأخر شبكة دون اتصال بهدوء سنوات.

مقالات ذات صلة