لماذا يُظهر apt-cache حالة «مثبَّت (لا شيء)» لحزمة VPN لديك
تعني عبارة «مثبَّت (لا شيء)» أن حزمة VPN غير مثبَّتة، لا أنها مفقودة. اقرأ سطري المرشَّح والتثبيت والمعمارية قبل تعديل المصادر.
حزمة VPN تُبلِّغ عن Installed: (none) ليست مفقودة؛ إنها ببساطة غير مثبَّتة. السطر الذي يحدد ما إذا كان يمكنك تثبيتها هو Candidate، وهو ما يستخرجه APT من الفهارس واسم السلسلة suite والمعمارية وأي قواعد تثبيت pinning نافذة. معظم التقارير عن حزمة VPN اختفت تبيّن أنها مشكلة مرشَّح لا مشكلة تغليف. اقرأ السطرين قبل أن تمسّ أي مدخل من مدخلات المصادر.
أفحص المرشَّح أولًا لأنه يكلّف أمرًا واحدًا ويستبعد نصف التخمينات المعتادة.
ما يقوله لك مخرَج apt-cache policy
يقرأ apt-cache policy ذاكرة الحزم المحلية، لا الشبكة. ويطبع النسخة المثبَّتة والنسخة المرشَّحة وجدولًا بكل فهرس يعرض الحزمة مع الأولوية المرفقة به.
apt-cache policy openvpn
apt-cache madison openvpn
apt list -a network-manager-openvpnالمرشَّح هو النسخة التي سيختارها APT الآن. ويسرد madison ما يعرضه كل مصدر مع أولويته، وهكذا تكتشف حزمة موجودة في فهرس لكنها تخسر منافسة التثبيت. ويوثّق دليل apt-cache كليهما كقراءتين لذاكرة الكاش، لذا لا يُثبت أيٌّ منهما أن المرآة قابلة للوصول في هذه اللحظة.
إذا كان سطر المرشَّح فارغًا أو يعرض (none)، فلا شيء في المصادر المهيّأة مؤهَّل لهذا النظام كما هو مهيّأ.
أربعة أسباب لاختفاء المرشَّح
عمليًا يكون السبب دائمًا تقريبًا واحدًا من أربعة أمور، ولكل منها إصلاح مختلف.
يجب أن يطابق اسم السلسلة في مصادرك التوزيعة التي بُنيت لها الحزمة. فنظام Debian bookworm الموجَّه إلى مرآة trixie، أو إصدار Ubuntu أُعيدت تسميته في ملف sources.list.d أثناء ترقية، لا يحلّ شيئًا لحزم موجودة في السلسلة الأخرى فقط. قارن lsb_release -cs بحقل السلسلة في كل مدخل.
لا يرى APT إلا الحزم المبنية للمعماريات التي يعرفها dpkg. فحاوية 32 بت أو صورة arm64 أو تثبيت Raspberry Pi يطلب حزمة تُشحن لـ amd64 فقط يحصل على مرشَّح فارغ بدل رسالة خطأ. ويخبرك dpkg --print-architecture وdpkg --print-foreign-architectures بالمجموعة التي أنت فيها فعليًا.
المكوّنات مهمة أيضًا. فحزمة في contrib أو non-free تكون غير مرئية عندما يكون main وحده مُمكَّنًا، وسلوك universe في Ubuntu هو نفسه. الفهرس موجود والحزمة فيه؛ لكن قائمة المكوّنات الممكَّنة لديك لا تشمله.
التثبيت pinning هو السبب الصامت. فملف في /etc/apt/preferences.d يمكن أن يحصر حزمة تحت عتبة التثبيت، فيختفي مرشَّح جيد تمامًا من المخرَج بينما لا يزال الفهرس يسرده. ولأن policy يطبع الأولويات بجانب كل مصدر، فإن الحزمة التي يحمل كل مصدر لها رقم تثبيت منخفض هي الدليل.
الفهارس القديمة تبدو كحزم مفقودة
ذاكرة الكاش لقطة. فإذا فشل آخر apt update على فهرس واحد، تستمر الاستعلامات في الإجابة من النسخة الأقدم، وقد لا تكون الحزمة التي تتوقعها في تلك النسخة.
يطبع apt update أخطاء لكل فهرس، فاقرأها بدل التمرير مباشرة إلى السطر الأخير.
التحديث الذي يفشل بسبب خطأ توقيع أو ملف إصدار منتهٍ أو مرآة غير قابلة للوصول يُبقي الفهرس السابق في مكانه. هذا تصميم معقول، لأنه يحفظ ذاكرة كاش عاملة عندما تنقطع المرآة قليلًا. الأثر الجانبي أن بحثًا قد ينجح بينما المستودع غير متصل. ويعني أيضًا أن غياب حزمة لا يُثبت شيئًا حتى تعرف متى جُلب الفهرس آخر مرة. افحص تواريخ الملفات تحت /var/lib/apt/lists قبل أن تلوم اسم الحزمة.
سمِّ الحزمة التي تحتاجها فعلًا
OpenVPN هو خادم خفي daemon، والأجزاء التي يريدها الناس عادةً حزم منفصلة.
المحرّك وإضافة NetworkManager ومحرّر سطح المكتب ثلاث حزم بثلاثة أسماء، وللإضافة نسخة GTK يختلف اسمها بين التوزيعات. ويطابق apt-cache search --names-only openvpn الأسماء والأسماء المقدَّمة بدل الأوصاف، وهذا ما تريده عندما تعرف تقريبًا اسم الشيء.
إذا كان الاسم مجهولًا حقًا، فابحث في الأوصاف مرة واحدة ثم ارجع إلى الأسماء الدقيقة. لا تُضِف لاحقة -gui مستعارة من توزيعة أخرى وتستنتج أن الحزمة لم تعد موجودة.
غيّر المصادر أخيرًا، ثم تحقّق من العملية
إضافة مستودع تغيّر من يورّد تحديثاتك، لذا تنتمي إلى نهاية التحقيق لا بدايته.
قبل ذلك، أكّد الإصدار والمعمارية والمكوّن وحالة التثبيت. اكتب أي الأربعة فحصت، حتى لا يعيد الشخص التالي المسح. إذا كانت الأربعة صحيحة والمرشَّح ما زال مفقودًا، فالاستنتاج الصادق أن هذا الإصدار لا يشحن تلك الحزمة. الخيارات المتبقية هي backport أو حزمة مورّد أو إصدار مدعوم مختلف، وكل منها خيار مقصود لا تخمين.
عندما يظهر المرشَّح فعلًا، حاكِ قبل أن تنفّذ: يعرض apt-get install --simulate مع اسم الحزمة ما سيُسحب وما سيُزال. يبقى توفّر الحزمة والتثبيت ونفق عامل ثلاث مراحل منفصلة، ولا يزال النفق يحتاج إلى ملفه الشخصي وبيانات اعتماده ومساره وDNS قبل أن يحمل حركة.