कैसे मेरे लिए निर्भरता स्थापित करने के लिए `dpkg -i` स्थापित करने के लिए?


324

कहो, मेरे पास foo-1.2.3.debजो निर्भर करता है perlऔर python, हालांकि, कमांड चल रहा है:

dpkg -i ./foo-1.2.3.deb

ये निर्भरताएं स्थापित नहीं करेंगे। इसलिए मुझे apt-get install perl pythonहाथ से जाना चाहिए ।

dpkg -iस्वचालित रूप से मेरे लिए ये निर्भरता कैसे स्थापित करें ?



5
@ pd12: परिपत्र संदर्भ के लिए हुर्रे! :-D
डेविड फ़ॉस्टर

हे, मैंने दोनों को जोड़ने का फैसला किया और देखा कि कौन से मॉड का चयन करेंगे।
pd12

जवाबों:


416

उपयोग करने के बाद 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


8
क्या मुझे sudo dpkg -i mypackage.debफिर से दौड़ना चाहिए ?
मुहम्मद गेल्बाना

23
sudo apt-get -f installमेरा पैकेज चलाने के बाद और यह निर्भरताएं सभी स्थापित थीं। रनिंग sudo dpkg -i my_package.debअनावश्यक है और बस पैकेज को फिर से स्थापित करेगा।
गस ई

5
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पूरी तरह से अलग कमांड है।
मिकको रैंटलैनन

1
@ सिस्ट नं, मत करो dpkg -i --force; कि एक टूटे हुए पैकेज को मजबूर करेगा! रनिंग dpkg/ बिना / --forceपैकेज डेटाबेस में आवश्यक प्रविष्टि apt-get -f installकरेगा ताकि सही काम करेगा।
ब्रायन ए। हेनिंग

@ लोट्रैक्स: मैं इसे अभी आज़मा नहीं सकता, लेकिन मैंने यह नहीं सोचा कि बिना बल के dpkg (जो लापता निर्भरता के कारण विफल रहता है) पैकेज डेटाबेस में एक प्रविष्टि करेगा
ysth

111

आप स्थापित कर सकते हैं gdebi-core, जो 10.04 और इससे पहले के GDebi पैकेज इंस्टॉलर का कमांड लाइन संस्करण है। उबंटू के नए संस्करणों में, सॉफ्टवेयर सेंटर का उपयोग डेब स्थापित करने के लिए किया जाता है, जिसमें कमांड लाइन समतुल्य नहीं होती है।

Gdebi का उपयोग करके एक डिबेट पैकेज स्थापित करने के लिए, बस चलाएं:

sudo gdebi my_package_1.0.deb

64

1.1 के साथ शुरू (Xenial (16.04), खिंचाव में उपलब्ध) apt installभी स्थानीय फ़ाइलों की अनुमति देता है:

sudo apt install ./foo-1.2.3.deb

इतना सरल और साफ।

रिलीज अनाउंसमेंट देखें


4
यह उपलब्ध समय के बारे में है
माइक 13

यह समाधान काम नहीं आया। जो कुछ हुआ वह त्रुटियों की सूची थी।
बिली एस

@BillyS यह सुनने के लिए खेद है कि यह आपके लिए काम नहीं करता था, लेकिन आपके द्वारा उपयोग किए जा रहे डिस्ट्रो वर्जन के बिना और आपको जो त्रुटियां मिलीं, वह बिल्कुल भी उचित नहीं है।
ग्रंथ

कमांड ने मेरे लिए काम नहीं apt ./install foo-1.2.3.debकिया लेकिन काम किया।
सेनेक अल्टी ऑग

1
आदेश को ठीक किया, उपरोक्त टिप्पणियों के उत्तर के पिछले संस्करण को संदर्भित किया गया था जो आवश्यक ./या पथ से चूक गया
ज़न्ना

38

Gdebi

gdebiएक डिबेट पैकेज और उसकी निर्भरता स्थापित करता है। इसे चलाने के लिए उपयोग करने के लिए:

sudo gdebi package.deb

उबंटू के नए संस्करणों में, यह डिफ़ॉल्ट रूप से स्थापित नहीं है, इसलिए आपको इसे रिपॉजिटरी से इंस्टॉल करना होगा।

man gdebiविकल्पों की पूरी सूची देखें ।

gdebiकमांड लाइन उसी नाम के ग्राफिकल टूल के बराबर है जिसे उबंटू में डिफ़ॉल्ट रूप से शामिल किया जाता था। ग्राफिकल टूल के लिए कमांड gdebi-gtkसमान कार्यक्षमता है:

gdebi-जीटीके


gdebi-gtk वॉन्ट शो आवश्यक डिपो (मेरे पास यहां कम से कम संस्करण है, और यह बग की तरह दिखता है), लेकिन कमांड लाइन होगा! यदि हमारे पास पैकेजों के साथ एक और मशीन है, तो हम dpkg-repackइस तरह की डिपॉजिट सूची के आधार पर इसका उपयोग कर सकते हैं :)
कुंभ राशि का पावर

21

दौड़ना

sudo apt-get install -f

dpkg के साथ पैकेज को स्थापित करने के बाद टूटी हुई अवसादों को हल कर सकते हैं (कम से कम आदमी को ऐसा कहते हैं ...)। जब मैं इसकी जांच करूंगा तब बीमार अपडेट होगा।


क्या मुझे sudo dpkg -i mypackage.debफिर से दौड़ना चाहिए ?
मुहम्मद गेल्बाना

3
apt-get -f installकाम करता है, लेकिन apt-get install -fसमान नहीं है।
200_सफल

9

dpkg के पास निर्भरता समर्थन नहीं है। इसके चारों ओर एक रास्ता है, लेकिन इसके लिए आपको एक स्थानीय डेटाबेस बनाने की आवश्यकता होगी (और इस तरह आप पहले से ही निर्भरताओं को जान जाएंगे) और इसे अप्रचलित माना जाता है (...)।

क्या इसे कमांड लाइन होना चाहिए? (सर्वर स्थापित?) यदि ऐसा है तो भी एक नज़र है, apt-get -fलेकिन सावधान रहें: स्थापित करने के बाद निर्भरता को हल करने से आप एक टूटी हुई प्रणाली के साथ समाप्त हो सकते हैं।

gdebi (gui frontend) ऐसा करने में सक्षम था, लेकिन इसे USC के साथ बदल दिया गया।

आपने .deb को कैसे डाउनलोड किया नई 11.04 सुविधाओं में से कुछ एक वेबसाइट से डाउनलोड .deb की हैंडलिंग है: यह USC में opend हो जाता है, इसलिए निर्भरता इंस्टॉलर द्वारा हल की जाएगी।

EDIT टिप्पणी के आधार पर andrew: sudo gdebi foo-1.2.3.deb चाल चलेगा !!


इसके लिए gdebi का उपयोग किया जा सकता है। सॉफ्टवेयर सेंटर अब केवल डिफ़ॉल्ट ऐप है। इसके अलावा, चेन जिओ-लॉन्ग नोट्स के रूप में, gdebi का उपयोग कमांड लाइन पर भी किया जा सकता है।
andrewsomething

ठंडा! तो सवाल का जवाब है क्योंकि gdebi कमांडलाइन पर भी इस्तेमाल किया जा सकता है ऐसा लगता है।
रिनजविंड

यह स्वीकृत उत्तर होना चाहिए।
प्रोस्टी

3

विकल्प के रूप में gdebi-gtkआप उबंटू सॉफ्टवेयर सेंटर का उपयोग कर सकते हैं।

पैकेज पर डबल क्लिक करें और एक इंस्टॉल बटन उपलब्ध होना चाहिए।


3

आप 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

अब आप स्वचालित रूप से निर्भरता के साथ डेबियन पैकेज स्थापित कर सकते हैं:

sudo dpkg-dep-inst foo-1.2.3.deb

1
apt-get --yes --fix-broken installफिक्सिंग को स्वचालित रूप से उपयोग करें और करें ।
लुकास

@ सिस्टर नहीं, सामान्य तौर पर नहीं।
BuZZ-dEE

1

मैं बस इस समस्या में भाग गया। कॉलिंग अनुशंसित निर्भरता स्थापित नहीं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

0

वास्तव में उत्तर यह है कि dpkgपैकेज प्रबंधक बॉक्स के बाहर निर्भरता स्थापित नहीं कर सकता है। आप कैम man dpkgऔर पाया कि बाहर। तो तुम जैसे उपकरणों का उपयोग करने की आवश्यकता apt, apt-get, aptitude, ..., के आधार पर dpkg

मैं कहूंगा कि rpmअन्य लिनक्स गोलार्ध पर पैकेज मैनेजर के लिए सिर्फ यही मामला है । rmpनिर्भरता स्थापित करने के लिए नहीं है। यह एक संकुल स्थापित कर सकते हैं, और निर्भरता आप का उपयोग स्थापित करने के लिए yum, urpmi, up2dateइन सभी आरपीएम पर आधारित हैं।

जैसा कि उल्लेख किया गया है कि dpkgसीधे तौर पर पैकेजों को स्थापित करने में थोड़ा खतरा है , क्योंकि बाद में निर्भरता के समाधान का समाधान टूटे हुए सिस्टम के साथ @Rinzwind के रूप में हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.