Dpkg -i या apt द्वारा डिबेट फ़ाइल कैसे स्थापित करें?


600

मेरे पास इंस्टालेशन के लिए एक डिबेट पैकेज है।

मैं द्वारा स्थापित किया जाएगा dpkg -i my.deb, या उपयुक्त?

क्या दोनों सॉफ्टवेयर निर्भरता समस्या को अच्छी तरह से संभाल लेंगे?

यदि apt द्वारा, मैं apt द्वारा डिबेट से कैसे स्थापित कर सकता हूं?


आप उपयोग कर सकते हैं aptitudeजो अनावश्यक पैकेजों को भी हटा देता है।
रमेश

2
मैं सीधे उपयोग न करने की सलाह देता हूं dpkg। एकल डिबेट के मामले में , जीडीबी के साथ और कई डीबीएस के मामले में, एपीटी स्थानीय भंडार के लिए जाएं
पंड्या

5
क्यों ......... @ पांड्या
टिम

2
@ क्योंकि dpkgनिर्भरता का समाधान नहीं है।
पंड्या

1
@ टिम gdebi गुम निर्भरताओं की पहचान करता है, डाउनलोड कर सकता है और (उपयुक्त का उपयोग करके) स्थापित कर सकता है, स्थापित कर सकता है और (dkgkg का उपयोग करके) कॉन्फ़िगर कर सकता है।
पंड्या

जवाबों:


769

जब आप aptएक पैकेज को स्थापित करने के लिए उपयोग करते हैं , तो हुड के तहत इसका उपयोग करता है dpkg। जब आप apt का उपयोग करके एक पैकेज स्थापित करते हैं, तो यह पहले सभी निर्भरताओं की एक सूची बनाता है और इसे रिपॉजिटरी से डाउनलोड करता है।

एक बार डाउनलोड समाप्त होने के बाद, यह dpkgउन सभी फाइलों को स्थापित करने के लिए कहता है, जो सभी निर्भरता को पूरा करते हैं।

तो अगर आपके पास कोई .debफ़ाइल है:

  • आप इसका उपयोग करके इसे स्थापित कर सकते हैं:

    sudo dpkg -i /path/to/deb/file
    sudo apt-get install -f
    
  • आप इसे sudo apt install ./name.deb(या sudo apt install /path/to/package/name.deb) का उपयोग करके स्थापित कर सकते हैं ।

    पुराने apt-getसंस्करणों के साथ आपको पहले अपनी डिबेट फ़ाइल को /var/cache/apt/archives/निर्देशिका में ले जाना चाहिए । दोनों के लिए, इस कमांड को निष्पादित करने के बाद, यह स्वचालित रूप से अपनी निर्भरता को डाउनलोड करेगा।

  • स्थापित करें gdebiऔर अपनी .deb फ़ाइल का उपयोग करके इसे खोलें ( राइट-क्लिक करें -> साथ खोलें )। यह आपके सभी निर्भरता के साथ आपके .deb पैकेज को स्थापित करेगा।

    ( नोट : APT पैकेज इंडेक्स को बनाए रखता है जो /etc/apt/sources.listफ़ाइल और /etc/apt/sources.list.dडायरेक्टरी में परिभाषित रेपो में उपलब्ध पैकेजों का एक डेटाबेस है । ये सभी तरीके सॉफ्टवेयर निर्भरता को संतुष्ट करने में विफल होंगे, अगर डेबिट द्वारा आवश्यक निर्भरता पैकेज इंडेक्स में मौजूद नहीं है। ।)


के sudo apt-get install -fबाद का उपयोग क्यों करेंsudo dpkg -i /path/to/deb/file (पहली विधि में उल्लिखित)?

से man apt-get:

 -f, --fix-broken
           Fix; attempt to correct a system with broken dependencies in place.

जब dpkgकोई पैकेज स्थापित करता है और पैकेज निर्भरता संतुष्ट नहीं होती है, तो यह पैकेज को "अपुष्ट" स्थिति में छोड़ देता है और उस पैकेज को टूटा हुआ माना जाता है।

sudo apt-get install -f आदेश लापता निर्भरता स्थापित करके इस टूटे हुए पैकेज को ठीक करने का प्रयास करता है।


2
@ टीआईएम, एप्टी-गेट को रिपॉजिटरी से पैकेज स्थापित करने के लिए डिज़ाइन किया गया है। यह संकुल सूची और साथ ही उनके संबंधित रिपॉजिटरी पते को बनाए रखता है। तो बस एक .dev फ़ाइल, जो apt पैकेज सूची में मौजूद नहीं है, / var / cache / apt / अभिलेखागार निर्देशिका में काम नहीं करेगा। क्योंकि जब भी आप apt-get का उपयोग करके इस पैकेज को स्थापित करने का प्रयास करते हैं, तो यह अपने रिपॉजिटरी की खोज करता है, जो मौजूद नहीं है। इसके लिए आपको स्थानीय रिपॉजिटरी बनानी होगी जो मुझे लगता है कि बेकार है।
g_p

1
@g_p धन्यवाद! अपने उत्तर में थोड़ा उलझा हुआ im। आप लिखते हैं: "(यह काम करेगा अगर .deb पैकेज apt पैकेज सूची में मौजूद है)" - मुझे समझ नहीं आ रहा है कि यहाँ क्या मतलब है। यह कैसे सुनिश्चित किया जा सकता है कि .deb पैकेज apt पैकेज सूची में मौजूद है?
BKSpurgeon

1
@BKSpurgeon ने अपने उत्तर में थोड़ी जानकारी जोड़ी है। यह जानने के लिए कि कोई पैकेज इंडेक्स में मौजूद है या नहीं apt-cache search <package name>। आप उपयोग भी कर सकते हैं apt-cache policy <package name>, जो कुछ अतिरिक्त जानकारी भी देगा।
g_p

1
क्या ये तरीके अभी भी हस्ताक्षर की जाँच आम तौर पर उपयुक्त प्रदर्शन करेंगे? या क्या इस तरह से छेड़छाड़ के साथ .deb फ़ाइल को स्थापित किया जाना संभव है?
बोअन

8
आधुनिक एपेट-गेट को केवल एक पैकेज के साथ स्थापित करने के लिए उपयोग किया जा सकता है apt-get install /path/to/package/name.deb। यदि इस उत्तर के लेखक ने इसे एकीकृत करने का निर्णय लिया तो यह साफ-सुथरा होगा। यदि नहीं, तो मैं उस उत्तर को कुछ समय में जोड़ दूंगा जब मेरे पास पर्याप्त प्रतिनिधि हैं
सैम हार्टमैन

91

के foo.debसाथ अपनी फ़ाइल स्थापित करें dpkg -i foo.deb। यदि अनसुलझे निर्भरता के साथ कुछ त्रुटियां हैं, तो apt-get install -fबाद में चलाएं ।


मैं Unable to locate packageइस तरह से कोशिश कर रहा था और हैरान हो गया। मैंने संग्रह फ़ोल्डर में स्विच करने के बाद पैकेज के नाम के रूप में विंडोज में उपयोग किया। ./<file name>यदि वर्तमान फ़ोल्डर या पूर्ण पथ में यूनिक्स के लिए होना चाहिए । अगर debयह फ़ोल्डर में मौजूद नहीं है PATH
एलेक्सी मार्टीनोव

60

यहां .debकमांड लाइन पर उबंटू पर एक फ़ाइल स्थापित करने का सबसे अच्छा तरीका है :

sudo gdebi skype.deb

यदि आपने gdebiपहले से इंस्टॉल नहीं किया है, तो इसका उपयोग करके इंस्टॉल करें sudo apt install gdebi-core

क्यों गदेबी?

gdebi.debफ़ाइल की सभी निर्भरताओं के लिए देखेंगे, और फ़ाइल को स्थापित करने का प्रयास करने से पहले उन्हें स्थापित करेंगे .deb। मुझे इससे ज्यादा बेहतर लगता है sudo dpkg -i skype.deb && sudo apt install -f। उत्तरार्द्ध कुछ स्थितियों में निर्भरता को दूर करने के लिए बहुत उत्सुक है। उदाहरण के लिए, जब मैंने Skype को स्थापित करने का प्रयास किया, तो उसने 96 (!) पैकेजों को निकालने का प्रयास किया, जिसमें पैकेज जैसे compizऔर unity! gdebiअधिक स्पष्ट त्रुटि संदेश दिया:

 $ sudo gdebi skype.deb
 Cannot install 'libqtgui:i386'

(यहाँ उस विशेष मुद्दे का समाधान है, वैसे)


महान thx काम किया! btw, हो सकता है कि हटाने का प्रयास उस संक्रमणकालीन / अस्थायी पैकेज के बारे में था? या आपको लगता है कि यह वास्तव में सिस्टम को तोड़ देगा?
कुंभ राशि

यार मैं तुम्हारे हल के साथ एक मुद्दे में भाग गया। मैं Rstudio स्थापित करने की कोशिश कर रहा था। यह स्वचालित रूप से मेरे लिए आर का एक पुराना संस्करण मिला। @G_p द्वारा समाधान का उपयोग करते समय मैं केवल Rstudio स्थापित करने में सक्षम था।
Dr_Hope

39

आप द्वारा स्थानीय .deb पैकेज स्थापित कर सकते हैं:

sudo apt install ./foo.deb

स्थानीय रिश्तेदार या पूर्ण पथ ( ./यदि वर्तमान dir में) निर्दिष्ट करना सुनिश्चित करें , अन्यथा यह foo.debदूरस्थ रिपोज में दिखेगा और विफल हो जाएगा।


2
इसे सही उत्तर के रूप में चिह्नित किया जाना चाहिए।
राएल गुगेलमिन कुन्हा

@RaelGugelminCunha 100% सही नहीं है। sudo apt install libstdc ++ 6_8-20180414-1ubuntu2_amd64.deb apt: साझा लाइब्रेरी लोड करते समय त्रुटि: /usr/lib/x86_64-linux-gnu/livestdc+.so.6: अमान्य ELF हेडर
mvladk

2
@mvladk कृपया, सिंटैक्स पर ध्यान दें: आप फ़ाइल ./से पहले गायब हैं deb
राएल गुगेलमिन कुन्हा

बिल्कुल सबसे अच्छा / सरल उत्तर।
जेरार्ड

15

पहले dpkg -I my.debऔर साथ निर्भरता की जाँच करें ।apt-get installdpkg -i my.deb

हो सकता है आप कॉपी कर सकते हैं my.debमें /var/cache/apt/archivesऔर के साथ सीधे इसे स्थापित apt-getहै, लेकिन मैं कभी नहीं की कोशिश की। काम नहीं करता है, apt-getऔर dpkgअभिलेखागार में सूचीबद्ध संकुल की तलाश कर रहे हैं।


धन्यवाद। आपके पहले सेंटेनक्ट में, क्या आपका मतलब apt-get install my.debहै apt-get install? क्या यह डिबेट फ़ाइल से स्थापित है? dpkg -i my.debउसके बाद हमें आवश्यकता क्यों है?
टिम

मैंने हमेशा स्थानीय .debएस को स्थापित किया है dpkg -i, मेरी समझ यह है कि aptउन्हें स्थापित करने का विकल्प नहीं है, इसके अलावा /var/cache/...जहां डाउनलोड किया गया है (मैं गलत हो सकता है) में निर्देशिका
एलेक्स

ऐसा लगता है कि apt-get install ./my.debकुछ करेंगे, क्योंकि यह बहुत सारी चीजों का उत्पादन करता है। यह क्या करता है?
टिम

यह बहुत ज्यादा करता है :-) काम नहीं करता है, देखिए @Igor_Dvoretskyi जवाब एकदम सही है, मैं भूल गया-f
एलेक्स

5

सबसे सरल उत्तर होगा कि रन करके dpkg का उपयोग करें dpkg -i packagename.deb। आप इसे चलाकर अनइंस्टॉल कर सकते हैं dpkg -r packagename.deb
apt-getdpkg के आधार पर एक उच्च स्तरीय इंस्टॉलर है, और जैसे आप कर सकते हैं apt-get install packagename.deb
यह आपके apt-get अभिलेखागार निर्देशिका ( /var/cache/apt/archives) में जोड़ने के लिए फायदेमंद होगा ताकि आप इसे निर्भरता वाले पैकेज के रूप में संदर्भित कर सकें और एक स्टैंडअलोन .deb संग्रह नहीं।
इसके अलावा, इसे अपने एप्ट-गेट अभिलेखागार निर्देशिका में जोड़कर, आपके पास निर्भरता का उपयोग करने का अवसर है apt-get install packagename। यह आपको dpkg के स्टैंडअलोन संग्रह-आधारित सिस्टम के बजाय किसी भी मैन्युअल रूप से जोड़े गए निर्भरता के साथ इसे स्थापित करने देगा।


5

आधुनिक एप्ट-गेट का उपयोग केवल पैकेज को स्थापित करने के लिए किया जा सकता है apt-get install /path/to/package/name.deb

(शीर्ष उत्तर को संपादित के रूप में किया जाना चाहिए लेकिन इसे अस्वीकार कर दिया गया था - https://unix.stackexchange.com/posts/159114/edit देखें )


इसके साथ काम नहीं कियाapt 1.0.9.8.4 for amd64 compiled on Dec 11 2016 09:48:19
ब्रूनो ब्रोंस्की

-3

यदि मैं Chrome इंस्टॉल करना चाहता हूं तो यह बहुत सरल है।

अपनी Chrome फ़ाइल को इस रूप में स्थापित करें:

dpkg -i googlechrome.deb.

कभी-कभी निम्नलिखित की तरह कुछ निर्भरता त्रुटियां होने की संभावना होती है:

dpkg: dependency problems prevent configuration of google-chrome-stable:
google-chrome-stable depends on libappindicator1; however:
Package libappindicator1 is not installed.

इसलिए उपरोक्त मुद्दों को हल करने के लिए, आपको निर्भरताएं जोड़ने की आवश्यकता है; निम्नलिखित आदेश दें:

apt-get install -f

उपरोक्त आदेश देने के बाद, निर्भरताएँ आपकी मशीन में जुड़ जाएंगी और आपका डेबियन पैकेज ( .deb) फ़ाइल स्थापित हो जाएगी।

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