سؤال كيفية ترك `dpkg -i` تثبيت التبعيات بالنسبة لي؟


قل ، لدي foo-1.2.3.deb الذي يعتمد على perl و python، ومع ذلك ، تشغيل الأمر:

dpkg -i ./foo-1.2.3.deb

لن تثبيت هذه التبعيات. لذلك يجب علي apt-get install perl python باليد.

كيف تصنع dpkg -i تثبيت هذه التبعيات بالنسبة لي تلقائيا؟


260
2018-05-04 13:11


الأصل


ممكن نسخة من كيفية جلب التبعيات المفقودة تلقائيا عند تثبيت البرنامج من .deb؟ - pd12
@ pd12: الصيحة للمراجع الدائرية! :-د - David Foerster
لقد قررت أن أقوم بربط كل منهما ومعرفة أيهما سيختار. - pd12
إنه لأمر مدهش أنه في عام 2016 ، أ لا يزال التثبيت الرسومي .deb بصمت دون إخبار المستخدم بأي شيء عن تبعيات مفقودة. - Dan Dascalescu


الأجوبة:


بعد استخدام dpkgساعدني تشغيل الأمر التالي في تثبيت الاعتماديات المطلوبة:

sudo apt-get -f install

في كل شيء ، يجب أن تبدو المحطة الطرفية كالتالي:

$ sudo dpkg -i package_with_unsatisfied_dependencies.deb
dpkg: dependency problems prevent ... 
[additional messages]

$ sudo apt-get -f install
[apt messages]
Setting up [dependency]...
Setting up package_with_unsatisfied_dependencies...

تنويه الخط حول Setting up package_with_unsatisfied_dependencies. هذه إصلاحات (ويكمل) تركيب package_with_unsatisfied_dependencies.deb.


348
2018-05-04 15:38



يجب أن أركض sudo dpkg -i mypackage.deb مرة أخرى ؟ - Muhammad Gelbana
بعد تشغيل sudo apt-get -f install تم تثبيت كل ما عندي من حزمة والاعتمادية لها. جري sudo dpkg -i my_package.deb غير ضروري وسيقوم فقط بتثبيت الحزمة مرة أخرى. - Gus E
بعد الأعمال على Ubuntu 14.04: sudo dpkg -i package.deb; sudo apt-get -f install; sudo dpkg -i package.deb. الأول dpkg -i تشغيل تبعيات علامات ، apt-get -f install يثبت التبعيات المطلوبة والثانية dpkg -iيثبت بنجاح الحزمة. لاحظ أن apt-get install -f هو أمر مختلف تماما. - Mikko Rantalainen
ysth لا ، لا تفعل dpkg -i --force. التي من شأنها فرض تثبيت حزمة مكسورة! جري dpkg /بدون/ --force سيجعل الإدخال الضروري في قاعدة بيانات الحزمة بحيث apt-get -f install سوف نفعل الشيء الصحيح. - Brian A. Henning
Lotharyx: لا أستطيع أن أحاول ذلك الآن ، ولكن لم أكن أعتقد أن dpkg بدون استخدام القوة (التي تفشل بسبب التبعيات المفقودة) من شأنه أن يجعل إدخال في قاعدة البيانات الحزمة - ysth


يمكنك تثبيت gdebi-coreوهو إصدار سطر الأوامر لمثبت حزمة GDebi من الإصدار 10.04 والإصدارات السابقة. في الإصدارات الأحدث من Ubuntu ، يتم استخدام مركز البرامج لتثبيت debs ، التي لا تحتوي على سطر أوامر مكافئ.

لتثبيت حزمة deb باستخدام gdebi ، فقط قم بتشغيل:

sudo gdebi my_package_1.0.deb

108
2018-05-04 14:47





جي ديبي

gdebi يثبت حزمة deb وتوابعها. لاستخدامها تشغيل:

sudo gdebi package.deb

في الإصدارات الأحدث من Ubuntu ، لا يتم تثبيت هذا بشكل افتراضي ، لذلك ستحتاج إلى تثبيته من المستودعات.

نرى man gdebi للحصول على قائمة كاملة بالخيارات.

gdebi هو سطر الأوامر المكافئ للأداة الرسومية لنفس الاسم الذي اعتاد أن يتم تضمينه افتراضيًا في Ubuntu. الأمر للأداة الرسومية هو gdebi-gtk ولديها وظائف مشابهة:

gdebi-gtk


35
2018-05-04 16:56



gdebi-gtk لن تظهر deps المطلوبة (الإصدار لدي هنا على الأقل ، ويبدو وكأنه خطأ) ، ولكن سطر الأوامر سوف! إذا كان لدينا جهاز آخر مع الحزم يمكننا استخدامه dpkg-repack على ذلك على أساس قائمة الإعراب من هذا :) - Aquarius Power


بدءًا من apt 1.1 (متوفر في Xenial (16.04) ، امتداد) apt install يسمح أيضًا بالملفات المحلية:

sudo apt install ./foo-1.2.3.deb

أكثر بساطة ونظافة.

شاهد الافراج عن الاعلان


27
2017-07-05 09:23



حان الوقت هذا متاح - Mike
هذا الحل لم ينجح. كل ما حدث كان قائمة من الأخطاء. - Billy S
BillyS يؤسفني سماع أنه لم ينجح معك ، ولكن بدون استخدام إصدار التوزيعة الذي تستخدمه والأخطاء التي حصلت عليها ، فهذا غير قابل للتنفيذ على الإطلاق. - textshell
لم يعمل الأمر بالنسبة لي ولكن apt ./install foo-1.2.3.deb عمل. - Cenk Alti
تم تصحيح الأمر ، والتعليقات الواردة أعلاه تشير إلى الإصدار السابق للإجابة التي فاتت الضرورة ./ أو الطريق - Zanna


جري

sudo apt-get install -f

بعد تثبيت حزمة مع dpkg قد يحل النكسات المكسورة (على الأقل رجل apt-get say so ...). تحديث سوء عندما سأفعل ذلك.


18
2018-05-04 13:17



يجب أن أركض sudo dpkg -i mypackage.deb مرة أخرى ؟ - Muhammad Gelbana
apt-get -f install يعمل ، ولكن apt-get install -f ليس هو نفسه. - 200_success


لا يحتوي dpkg على دعم التبعية. هناك طريقة حوله ولكن ذلك يتطلب منك إنشاء قاعدة بيانات محلية (وبالتالي تعرف بالفعل التبعيات) وتعتبر قديمة (...).

هل يجب أن يكون سطر الأوامر؟ (تثبيت الخادم؟) إذا كان الأمر كذلك لديك أيضا نظرة على apt-get -f ولكن كن حذرا: حل التبعيات بعد التثبيت يمكن أن ينتهي بك الأمر مع نظام مكسور.

جي ديبي (واجهة المستخدم الرسومية) تستخدم لتكون قادرة على القيام بذلك ولكن حصلت على استبدال مع USC.

كيف قمت بتنزيل .deb. بعض ميزات 11.04 الجديدة هي معالجة .deb التي تم تنزيلها من موقع ويب: يتم فتحها في USC بحيث يتم حل التبعيات بواسطة المثبت.

EDIT بناء على تعليق من أندرو: sudo gdebi foo-1.2.3.deb  سوف تفعل الخدعة!


9
2018-05-04 13:32



لا يزال يمكن استخدام gdebi لهذا الغرض. أصبح Software Center الآن التطبيق الافتراضي فقط. أيضا ، كما يلاحظ تشن شياو لونغ ، يمكن أيضا أن تستخدم gdebi على سطر الأوامر. - andrewsomething
بارد! ثم السؤال له إجابة لأنه يمكن استخدام gdebi على commandline أيضا يبدو. - Rinzwind
يجب أن يكون هذا هو الجواب المقبول. - prosti


كبديل ل gdebi-gtk يمكنك استخدام Ubuntu Software Center.

انقر نقرًا مزدوجًا على الحزمة ويجب أن يتاح زر التثبيت.


3
2018-05-10 07:55





يمكنك إنشاء ملف dpkg-dep-inst مع المحتوى التالي.

#!/bin/bash

DEBIAN_FILE1=$1
dpkg -i $DEBIAN_FILE1 || apt-get --fix-broken install

أفترض أنك قمت بإنشاء الملف في مجلد منزلك. جعلها قابلة للتنفيذ مع chmod +x dpkg-dep-inst ونقلها إلى /usr/local/bin مع sudo cp dpkg-dep-inst /usr/local/bin.

يمكنك الآن تثبيت حزمة debian مع التبعيات تلقائيًا مع:

sudo dpkg-dep-inst foo-1.2.3.deb

3
2018-01-28 16:01



استعمال apt-get --yes --fix-broken install وجعل التثبيت التلقائي. - Lucas
لا ، ليس بشكل عام. - BuZZ-dEE


أنا فقط ركضت في هذه المشكلة. دعوة apt-get install -f سوف ليس التثبت موصى بهالتبعيات ، على الرغم من! الحل البديل الوحيد لهذا سيكون إنشاء مستودع محلي وإضافة إلى /etc/apt/sources.list، أي:

apt-ftparchive packages . > Packages && gzip < Packages > Packages.gz
sudo echo "deb file://$PWD /" >> /etc/apt/sources.list
sudo apt-get update

1
2018-02-10 15:19





في الواقع ، الجواب هو ذلك dpkg مدير الحزمة لا يمكن تثبيت تبعيات خارج منطقة الجزاء. أنت كام man dpkg ووجدت ذلك. لذلك تحتاج إلى استخدام أدوات مثل apt، apt-get، aptitude، ...، مرتكز على dpkg.

أود أن أقول فقط نفس القضية هي ل rpm مدير الحزمة على النصف الآخر لينكس. rmp لا يهدف إلى القيام بتثبيتات تعتمد على الاعتمادية. يمكنه تثبيت حزم واحدة ، ولتثبيت التبعيات التي تستخدمها yum، urpmi، up2date كل هذه تستند إلى RPM.

كما لوحظ هناك خطر طفيف تركيب الحزم dpkg مباشرة ، لأن حل حل التبعية في وقت لاحق قد ينتهي مع نظام مكسورة كما حددتRinzwind.


0
2017-08-16 19:05