क्या रिपॉजिटरी से करंट डायरेक्टरी तक डिबेट फाइल डाउनलोड करने के लिए उपयुक्त कमांड है?


46

मुझे अक्सर इंस्टॉलेशन ट्रिगर्स (पोस्टस्टीन, पोस्ट्रम) या पैकेज के कुछ हिस्सों (जैसे /usr/shareऔर /etc) में दिलचस्पी है । वर्तमान में, मैं स्रोत कोड को पुनः प्राप्त करने के लिए अगला कमांड चला रहा हूं:

apt-get source [package-name]

नकारात्मक पक्ष यह है, यह फ़ाइल अक्सर बाइनरी पैकेज की तुलना में बहुत बड़ी होती है और इंस्टॉलेशन ट्री को प्रतिबिंबित नहीं करती है।

अभी, मैं http://packages.ubuntu.com/ के माध्यम से पैकेज डाउनलोड कर रहा हूं :

  1. निम्न को खोजें [package-name]
  2. पैकेज का चयन करें
  3. डाउनलोड के लिए amd64 / i386 पर क्लिक करें
  4. वास्तविक फ़ाइल डाउनलोड करें

यह मेरे लिए बहुत लंबा है और जैसा कोई व्यक्ति वास्तव में खोल को पसंद करता है, मैं अगले ( काल्पनिक ) आदेश की तरह कुछ करना चाहूंगा :

apt-get get-deb-file [package-name]

मैं apt-get मैन्युअल पेज में ऐसा कुछ नहीं पा सकता था । सबसे अधिक जो मुझे मिला वह --download-onlyस्विच था , लेकिन यह पैकेज को /var/cache/apt/archives(जिसमें रूट अनुमति की आवश्यकता है) रखता है और वर्तमान निर्देशिका में नहीं।


फाइलों को सहेजे बिना मशीनों पर अंतर: ssh debianmachine1 "dpkg --get-selections" | diff - <(dpkg --get-selections)
स्कॉट रॉबर्ट श्रेकेंगाउस्ट

आप debgetपैकेज से उपयोग कर सकते हैं debian-goodies
शायन

जवाबों:


59

आप downloadउप-कमांड का उपयोग कर सकते हैं apt, apt-getया aptitude। उदाहरण के लिए, यदि $ PKG आपको इच्छित पैकेज है , तो इनमें से कोई भी काम करेगा:

apt-get download $PKG
apt download $PKG
aptitude download $PKG

इसके लिए रूट विशेषाधिकारों की आवश्यकता नहीं है। एक ही कर सकते हैं भी उपयोग कर अनुमान लगाया जा apt-getऔर wget:

wget $(apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2)

हालांकि, पैकेज को स्थापित करने के लिए आवश्यक सभी पैकेज प्राप्त करना होगा, इसलिए आप इसके बजाय इसे सीमित करने का प्रयास कर सकते हैं:

wget $(apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2 | grep "/${PKG}_")

आप एक फ़ंक्शन में एक wget लाइन भी डाल सकते हैं, इसे एक कमांड पैरामीटर के रूप में उपयोग करने में सक्षम होने के लिए पैकेज नाम के साथ एक पैरामीटर:

function apt-download { wget -c $(apt-get install --reinstall --print-uris -qq $1 | cut -d"'" -f2); }

संशोधनों पर ध्यान दें: $ PKG को $ 1 से बदल दिया जाता है और -c पैरामीटर को निरंतर बाधित डाउनलोड सक्षम करता है।


1
बहुत बढ़िया, यह वही है जिसकी मुझे तलाश है। मेरे सिस्टम पर योग्यता रखने के लिए एक और कारण, अन्य उपयोगी कमांड जो प्रदान नहीं किया गया aptहै aptitude changelog $PKG
लेकेन्स्टाइन

4
अपडेट: Natty से (उपयुक्त संस्करण 0.8.11 सटीक होना करने के लिए), aptitude downloadसुविधा में उपलब्ध है aptके रूप में अच्छी तरह से: apt-get download $PKG
लेकेनस्टाइन

मिठाई, मेरे प्राचीन उपयुक्त v0.8.10 के बावजूद काम करता है
rogerdpack

ऐसा लगता है कि उन्होंने दूर-उर-उर विकल्प
erjoalgo

--प्रिंट-उरल्स का विकल्प अभी भी है
कुमारहर्ष

8
sudo apt-get -o dir::cache::archives="/path/to/folder/" -d install package

ध्यान दें:

आपको गंतव्य फ़ोल्डर में आंशिक नाम का एक फ़ोल्डर बनाने की आवश्यकता है।


बुरा नहीं लगता है। विकल्पों द्वारा वर्णित किया जा रहा है man apt.conf। मैं फ़ोल्डर के निर्माण से बचना चाहूंगा।
लेकेनस्टाइन

मैं सिर्फ उत्सुक हूं, आप फ़ोल्डर बनाने से क्यों बचेंगे?
माउंट.cifs

मुझे पैकेज को हमेशा के लिए स्टोर करने की आवश्यकता नहीं है और फ़ोल्डर बनाने से भी समय बचाता है।
लेकेनस्टाइन

बस यह नोट करना चाहता था कि यह समाधान पैकेज हटाने पर भी जोर देगा (जैसे यदि आप /etc/apt/sources.listबाद में पैकेज डाउनलोड करने के इरादे से किसी नए के माध्यम से संस्करण बदलते हैं) - ऐसे मामले में, wgetऊपर की विधि अधिक उपयोगी हो सकती है, यदि आप डॉन 't कुछ भी हटाना चाहते हैं ...
sadaau

5

उबंटू 14.04 में ( aptपैकेज संस्करण 1.0.1ubuntu2, मेरा मानना ​​है), वर्तमान निर्देशिका में दिए गए पैकेज को डाउनलोड करने के apt-getलिए downloadकमांड शामिल है .deb

उदाहरण के लिए, मान लें कि हम फ़ाइल प्रबंधक डाउनलोड करना चाहते हैं Ranger:

$ apt-get download ranger

का परिणाम:

$ ls . | grep ranger
ranger_1.6.0-1_all.deb

यह पूर्ण है। अन्य सभी समाधान मैंने कोशिश की अगर apt installसभी निर्भरता आवश्यकताओं को पूरा नहीं कर सकते। मैं सिर्फ tinkering के लिए .deb फ़ाइल चाहता था!
रज़ियल

3

यदि आप किसी सूची से सभी डिबेट पैकेज डाउनलोड करना चाहते हैं, तो आप यह कर सकते हैं:

cat path/to/text/file.txt | xargs apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2 | xargs wget

बस प्रति पंक्ति एक पैकेज नाम रखें। जैसे एक आवश्यकताओं में। फ़ाइल। उदाहरण के लिए, इस तरह की सामग्री के साथ:

apache2-mpm-event
curl
dmidecode
ethtool
libapache2-mod-wsgi
libapache2-mod-python

उम्मीद है की यह मदद करेगा। ;)


2

sudo apt-get install devscripts

dget [package-name]


यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण मांगने या उसका अनुरोध करने के लिए, उनके पोस्ट के नीचे एक टिप्पणी छोड़ दें।
s3lph

यह एक उत्तर कैसे प्रदान नहीं करता है? यह संग्रह से वर्तमान निर्देशिका तक एक डिबेट को डाउनलोड करता है। क्या वास्तव में यह सवाल नहीं था?
माइकल टेरी

थोड़ा और विस्तार उपयोगी हो सकता है। हालांकि यह तकनीकी रूप से एक उत्तर के रूप में योग्य है, फिर भी आप दो से अधिक आदेश देना चाह सकते हैं।
s3lph

:: श्रग :: यहाँ अन्य उत्तरों के विपरीत, इस में कोई भी प्रोविज़न या कैविट नहीं है। यह सीधे-सादे सवाल का आसान जवाब है।
माइकल टेरी

0

/var/cache/apt/archivesदुनिया पठनीय है। इसके बाद apt-get -d, इसे वहां से अपने घर निर्देशिका में निकालें। dpkg -e /var/cache/apt/archives/foo_version.deb fooअपने होम डायरेक्टरी में रहते हुए चलाएं और कंट्रोल फाइल्स को डंप किया जाएगा foo/


मुझे लगता है कि इस पद्धति के साथ समस्या यह है कि डाउनलोड के लिए अभी भी प्रशासनिक विशेषाधिकारों की आवश्यकता है। ऐसा लगता है कि इस तरह के चरम पर जाने के लिए बस अपने घर निर्देशिका में एक फ़ाइल पाने के लिए मूर्खतापूर्ण लगता है।
ændrük

.Debs को खोलना समस्या नहीं है, इसे डाउनलोड करना है। यह बग हो सकता है या नहीं, लेकिन / var / cache / apt / archives` में पैकेज umask से भी प्रभावित होते हैं। मैंने 027 का umask सेट किया है और इसलिए, पैकेज /var/cache/apt/archivesमेरे द्वारा नहीं पढ़े जा सकते। जैसा कि मुझे पैकेज सामग्री की जांच करने की आवश्यकता है, मुझे बस इसे एक बार डाउनलोड करने की आवश्यकता है: को /tmp
लीकेनस्टाइन

0

आप कमांड का उपयोग कर सकते हैं debgetजो पैकेज में शामिल है debian-goodies

इसे स्थापित करें:

sudo apt install debian-goodies

डाउनलोड पैकेज का उपयोग कर:

debget <package_name>

उदाहरण के लिए:

debget debian-goodies

जो debian-goodies_0.79_all.debआपकी वर्तमान निर्देशिका में डाउनलोड करेगा ( pwdअपनी वर्तमान कार्यशील निर्देशिका को प्रिंट करने के लिए)।


debian-goodiesबहुत सारे उपयोगी आदेशों के साथ आता है, यह भी देखें: askubuntu.com/a/1170001/777279
Shayan
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.