سؤال كيفية تثبيت الحزم .deb المحلية مع apt-get


هل هناك طريقة لتثبيت مخزن الحزم على HD الخاص بك مع apt-get ، مثل apt-get install ./package.deb؟

إن لم يكن ، كيفية التعامل مع التبعيات بطريقة سهلة للغاية؟


129
2017-10-07 08:02


الأصل




الأجوبة:


عادة أفعل dpkg -i <deb file>، سوف تفشل قائلة أنها تحتاج إلى تبعيات. بعد ذلك عندما تفعل apt-get update سيقول في النهاية شيء مثل "التبعيات جاهزة للتثبيت" أعتقد أنه ينصح باستخدامها apt-get install -f.

بمجرد القيام بذلك ، وأنا استخدم dpkg -i مرة أخرى.

عملت بشكل جيد بالنسبة لي السنوات القليلة الماضية.

تحرير: النظر إلى أبعد قليلا ، على ما يبدو أداة تسمى gdebi يمكن القيام بذلك gdebi [deb file].


111
2017-10-07 08:19



شكرا فعلت الشيء نفسه من قبل "خطأ" dpkg ثم apt-get install -f وعملت. - Louis
gdebi يعمل لي ، وأبسط ما رأيته حتى الآن. - ctrl-alt-delor


إن Sirex لديها صواب أكثر أو أقل ، لكن إجابته غير واضحة. لقد قمت للتو بحل هذا ، لذا إليك ما قمت به:

sudo dpkg -i /path/to/filename.deb

إذا فشل هذا مع رسالة حول الحزمة اعتماداً على شيء غير مثبت ، يمكنك إصلاحه إذا قمت بتشغيل

sudo apt-get -f install

سيقوم هذا بتثبيت التبعيات (على افتراض أنها متوفرة في repos يعرف النظام الخاص بك) والحزمة التي كنت تطلبها في الأصل لتثبيت ('f' هو خيار 'fix' و 'y' هو 'تحمل yes to prompt' أو "لا تسألني إن كان الأمر على ما يرام ، فقط قم بتثبيته بالفعل" - مفيد جدا للتثبيتات الصامتة المكتوبة. على النظام الذي كنت فيه ، لم تكن هناك حاجة لتشغيل dpkg مرة أخرى (Ubuntu واضح 10.04).

وجدت أنه من المثير للاهتمام أنه إذا تركت -f عند تشغيل sudo apt-get install، سيتم إدراج الحزمة الخاصة بك على أنه غير مكوّن بسبب تبعية لم يتم حلها بالإضافة إلى اقتراح اقتراح: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

تصحيح:

إذا كنت تريد التثبيت دون الاضطرار إلى الإجابة عن "y" على جميع الأسئلة ، يمكنك إضافة y المعدل كما تم تضمينه في الأصل: sudo apt-get -fy install. ومع ذلك ، أشار أحد المعلقين إلى أن apt تقترح أحيانًا أن تقوم بإلغاء تثبيت بيئة سطح المكتب بالكامل. كنت أقوم بهذا العمل في VM ولم يكن لدي هذا القلق ، ولكن تم تحديث هذه الوظيفة لتعكس كونها أكثر حذراً.


54
2018-01-16 20:21



إذا كان لدي جميع ملفات الحزم بالفعل في دليل ، فهل هناك طريقة لإخبار أن هذا مستودع جديد ، لذلك لن أضطر إلى تثبيت أي شيء بدون تبعيات؟ - Berry Tsakala
أنا آسف ، لكني لا أعرف. أود أن أقترح طرح سؤال آخر على أعلى مستوى. - Akrikos
مجنون غريب أن هذا مطلوب. على raspian ، وهذا يتطلب sudo (لكل dpkg و apt-get): sudo dpkg -i mypackages.debوما إلى ذلك - Brent Faust
Rubistro الوصول الجذر أنه مطلوب على جميع الأنظمة. أعتقد أن الإجابات افترضت أن الأوامر يتم تنفيذها بواسطة الجذر (على سبيل المثال من غلاف الجذر التفاعلي ، أو البرنامج النصي الذي ينفذ كجذر). - Amos Shapira
لأنك تملك الخير ، افعل ليس أضف ال -y اختيار. من الشائع تمامًا أن تقترح عليك ، على سبيل المثال ، إلغاء تثبيت بيئة سطح المكتب بالكامل إذا حاولت ذلك باستخدام الحزمة الخاطئة في الوقت الخطأ (على الأقل في دبيان). - oseiskar


يمكنك أيضًا تثبيت ملف .deb باستخدام gdebi.Run الأوامر التالية لتثبيت gdebi ،

sudo apt-get install gdebi-core

تثبيت حزم .deb مع gdebi ،

sudo gdebi /path/to/filename.deb

انها أيضا تثبيت التبعيات.


46
2018-01-07 17:58



لاحظ أن gdebi يأخذ فقط وسيطة واحدة و بصمت يسقط الباقي على الأرض. هذا يعني أنك إذا كنت تقوم بتثبيت عدة دفاتر في نفس الوقت (ربما لأنهم يعتمدون على بعضهم البعض) ، فستحتاج إلى تصميمها بعناية gdebi الأوامر التي تسمح لهم لتثبيت. imo هذا النصف يهزم الغرض من gdebi ، ولكن قد لا تزال تجد أنه مفيد لملف واحد - Anthony Sottile
بعد ذلك find -name *.deb -exec gdebi {} \; - jjmontes
jjmontes التي سوف تعمل فقط إذا كانت الاعتمادات المتبادلة في الترتيب الأبجدي الذي كنت الرهان نادرة جدا - Anthony Sottile
تابعت هذا freesoftwaremagazine.com/articles/... (كان يجب أن يكون الريبو المحلي على / var / www / html / debs) وظل متشابكًا يحاول التنزيل من بعيد عن طريق الإنترنت ، لذا عمل gdebi بشكل رائع مع الريبو المحلي! أيضا ، يجب أن تكون الملفات .deb chmod +r *.deb - Aquarius Power


نعم ، الأمر الذي اقترحته صحيح.

sudo apt-get install ./package.deb

سيقوم بتثبيت الحزمة التي حصلت عليها من مصدر آخر غير APT وفي نفس الوقت استخدام قدرات APT لحل تبعياتها تلقائيًا. لسوء الحظ ، هذا apt-get الميزة غير موثقة في صفحة رجل.

نرى https://askubuntu.com/a/769542/250300 للتفاصيل.


15
2017-08-26 07:13



هذا يجب أن يكون الجواب المقبول. - Peter