मैं डेबियन द्वारा प्रदान किए गए सॉफ़्टवेयर की तुलना में अधिक नवीनतम संस्करण कैसे स्थापित कर सकता हूं?


26

मान लीजिए कि मैं एक ऑपरेटिंग सिस्टम के मेरे वर्तमान संस्करण के लिए सॉफ़्टवेयर का एक और हालिया संस्करण उपलब्ध है, तो मैं क्या कर सकता हूं?

विचार करने के लिए मामले:

  1. ओएस के उस संस्करण के लिए उपलब्ध अतिरिक्त पैकेज के अर्ध-आधिकारिक / आधिकारिक स्रोत हैं। उबंटू के लिए डेबियन या पीपीए के लिए backports.org।
  2. ओएस के उस संस्करण के लिए उपलब्ध पैकेज के अधिक हाल के संस्करण नहीं हैं, लेकिन ओएस के अधिक हाल के संस्करणों के लिए और अधिक हाल के संस्करण उपलब्ध हैं। यह बैकपोर्टिंग के लिए मानक मामला है।
  3. उपलब्ध सॉफ़्टवेयर के अधिक हाल के संस्करणों का कोई पैक संस्करण नहीं हैं। उपलब्ध विकल्प अधिक हाल के संस्करण को पैकेज करने के लिए हैं।

प्रति आइए कैनोनिकल प्रश्नोत्तर की सूची संकलित करें और जैसा कि निम्नलिखित के लिए विहित उत्तर देने के लिए एक जगह के रूप में करना है। उत्तर शायद सामुदायिक विकि बनाए जाएं।


यह अत्यधिक वितरण-विशिष्ट है। बेहतर यह प्रति वितरण एक सवाल है।
गिल्स एसओ- बुराई को रोकना '

2
@ प्रश्न प्रश्न वितरण-विशिष्ट नहीं है। मुझे लगता है कि अलग-अलग वितरण के जवाब के साथ, एक सवाल करना बेहतर होगा।
फहीम मीठा

क्या किया और काम नहीं किया इसका एक उदाहरण: डेबियन 8 के लिए मैं MySQL 5.6 चाहता था। (लेकिन आम तौर पर MySQL 5.5 केवल डेबियन 8. के लिए इंस्टॉल करने योग्य है । मुझे उन अन्य चीजों के साथ तुलना करने के लिए 5.6 की आवश्यकता है जो मैं कर रहा था।) मैंने 5.6 बैकपोर्ट स्थापित करने की कोशिश की लेकिन यह टूट गया। किसी प्रकार की डुप्लिकेट फ़ाइल में त्रुटि संदेश लोड किया जा रहा है। मैंने इसकी सूचना दी लेकिन फिर क्या किया जाए? समाधान: मुझे पता चला है कि आप MySQL साइट से MySQL 5.6 विशेष रूप से सीधे Debian 8 के लिए डाउनलोड कर सकते हैं। यह काम किया, लेकिन ... [इस] ( dev.mysql.com/doc/refman/5.6/en/linux-i
अण्डाकार दृश्य)

जवाबों:


33

(यदि आपके इस प्रश्न के बारे में कोई प्रश्न / टिप्पणी है, तो कृपया एक टिप्पणी जोड़ें। या, यदि आपके पास पर्याप्त प्रतिनिधि हैं, तो आप मुझे चैट में भेज सकते हैं।)

सीधे डेबियन के नए संस्करण से बाइनरी पैकेज स्थापित करना - उत्तर नहीं।

मान लीजिए कि आप डेबियन-आधारित वितरण के कुछ संस्करण चला रहे हैं। आप पैकेज का एक और हालिया संस्करण चाहते हैं जो आपके लिए उपलब्ध है। पहली बात यह है कि हर शुरुआत बाइनरी पैकेज को सीधे अपने डेबियन के संस्करण पर स्थापित करने के लिए करने की कोशिश करती है। यह काम कर सकता है या नहीं, यह इस बात पर निर्भर करता है कि आप किस संस्करण पर चल रहे हैं और पैकेज कितना नया है। सामान्य तौर पर, यह प्रक्रिया अच्छी तरह से काम नहीं करेगी।

उदाहरण के लिए उस मामले पर विचार करें, जहां कोई बाइनरी पैकेज को सीधे स्थिर पर परीक्षण / अस्थिर से स्थापित करने का प्रयास कर रहा है। यह सबसे अच्छा होने की संभावना नहीं है, जब तक कि परीक्षण / अस्थिर उस समय स्थिर के बहुत करीब न हो जाए। इसका कारण डेबियन जैसे लिनक्स-आधारित बाइनरी वितरण की प्रकृति के साथ करना है। इस तरह के ऑपरेटिंग सिस्टम साझा पुस्तकालयों पर बहुत अधिक निर्भर करते हैं, और ये निर्भरताएं अक्सर बहुत कसकर संस्करण-निर्भर होती हैं; आवश्यकता से अधिक बार इतना अधिक। डेबियन वर्तमान में संस्करण निर्भरता को "तंग" बनाने का एक अच्छा तरीका नहीं है - यह कहने का एक छोटा तरीका है कि संस्करण निर्भरता बिल्कुल आवश्यक के रूप में प्रतिबंधात्मक है।

उपयोगकर्ता के लिए इसका क्या मतलब है? उदाहरण के लिए मान लीजिए कि आप slrnडेबियन अस्थिर से डेबियन स्थिर तक कहने की कोशिश कर रहे हैं । यह कैसा दिखेगा?

# apt-get install slrn/unstable
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Selected version '1.0.1-10' (Debian:testing [amd64]) for 'slrn'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 slrn : Depends: libc6 (>= 2.15) but 2.13-38+deb7u1 is to be installed
E: Unable to correct problems, you have held broken packages.

द्वारा उत्पन्न त्रुटि के बावजूद apt, यहां कोई टूटे हुए पैकेज नहीं हैं। तो, क्या गलत हो गया? समस्या यह है कि जिस संस्करण के खिलाफ libc6अस्थिर slrnसंकलन किया गया था, वह डेबियन स्थिर पर उपलब्ध की तुलना में अलग है (और उच्चतर संस्करण संख्या है)। ( libc6जीएनयू सी लाइब्रेरी है। सी लाइब्रेरी किसी भी यूनिक्स जैसी ऑपरेटिंग सिस्टम के लिए केंद्रीय है, और जीएनयू सी लाइब्रेरी वह संस्करण है जो लिनक्स-आधारित ऑपरेटिंग सिस्टम आमतौर पर उपयोग करते हैं।)

इसलिए अस्थिर slrnको libc6स्थिर के लिए उपलब्ध उच्चतर संस्करण की आवश्यकता होती है । ध्यान दें कि क्योंकि एक पैकेज को लाइब्रेरी के उच्च संस्करण के खिलाफ संकलित किया गया है, इसलिए उस लाइब्रेरी के उच्च संस्करण की आवश्यकता नहीं है, लेकिन अक्सर ऐसा होता है।

वाक्य रचना

apt-get install slrn/unstable

का अर्थ है: अस्थिर का उपयोग करें slrnलेकिन अन्य सभी पैकेजों के लिए केवल स्थिर से संस्करणों का उपयोग करें। अधिक सटीक होने के लिए, यह प्राथमिकता संख्याओं का उपयोग करता है। man apt_preferencesविवरण के लिए देखें।

एक भी कर सकते हैं

apt-get install -t unstable slrn

यह काम करने की अधिक संभावना है, लेकिन आप आम तौर पर ऐसा नहीं करना चाहते हैं। क्यूं कर?

इसका मतलब है: स्थिर रूप से संकुल के साथ समान स्तर पर अस्थिर रूप से सभी पैकेजों का इलाज करें । इसलिए यह अस्थिर slrnसे निर्भरता में खींच जाएगा यदि वे उच्चतर संस्करण संख्या के हैं, और वे आम तौर पर होंगे। इसमें आमतौर पर पहले से बताए गए कारणों से जीएनयू सी लाइब्रेरी शामिल होगी। अब, यह दृष्टिकोण आम तौर पर "सफल" होगा, जिसमें निर्भरता परिभाषा से संतुष्ट हो जाएगी (अस्थिर की slrnनिर्भरता है जो अस्थिर में संतुष्ट हैं), लेकिन आप उन पैकेजों के मिश्रण के साथ समाप्त होते हैं जिन्हें अचानक पुस्तकालयों के संस्करणों के साथ चलने के लिए मजबूर किया जाता है। वे किस लिए बनाए गए थे, उससे अलग है। यह शायद अच्छी तरह से समाप्त नहीं होगा।

जवाब है ... बैकपार्ट्स!

तो, ऐसा करने का सही तरीका क्या है? यह आपके सिस्टम पर अधिक हाल के संस्करणों के डेबियन स्रोतों का पुनर्निर्माण करना है, जिसे "बैकपोर्टिंग" के रूप में जाना जाता है। निम्नलिखित मामलों पर विचार करें:

डेबियन के संस्करण के लिए उपलब्ध अतिरिक्त पैकेज के अर्ध-आधिकारिक / आधिकारिक स्रोत हैं।

देखने के लिए पहली जगह डेबियन बैकपोर्ट है , जो डेबियन बैकपोर्ट के लिए आधिकारिक साइट है।

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

अपनी रिलीज़ के लिए उपयुक्त बैकपोर्ट लाइन जोड़ें और नए पैकेजों को खोजने के लिए अपडेट करें फिर बैकस्पोर्ट्स से स्पष्ट रूप से कुछ स्थापित करें (क्योंकि बैकफ़ॉक्स डिफ़ॉल्ट रूप से निष्क्रिय हो गए हैं)।

echo "deb http://ftp.debian.org/debian stretch-backports main" | sudo tee /etc/apt/sources.list.d/stretch-backports.list
sudo apt-get update
sudo apt-get install -t stretch-backports git

यह git का नवीनतम स्थिर संस्करण प्राप्त करेगा, जिसमें खिंचाव के साथ शामिल किए गए स्थिर (जैसे 'शामिल' की तुलना में उपयोगी नई सुविधाएँ हैं, जो आपको एकाधिक कॉन्फ़िगर फ़ाइलों को संयोजित करने या ~ / कार्य / परियोजनाओं / बनाम ~ / व्यक्तिगत / के लिए अपना उपयोगकर्ता नाम बदलने की अनुमति देता है परियोजनाओं /)।

देखने के लिए एक और जगह उबंटू अनुरक्षकों द्वारा विभिन्न पीपीए है। आप "packagename PPA" की खोज कर सकते हैं।

ओएस के उस संस्करण के लिए पैकेज के और अधिक हाल के संस्करण उपलब्ध नहीं हैं, लेकिन ओएस के अधिक हाल के संस्करणों / रिलीज के लिए अधिक नवीनतम संस्करण उपलब्ध हैं। यह बैकपोर्टिंग के लिए मानक मामला है।

बैकपोर्टिंग का मतलब है कि आप अपने द्वारा चलाए जा रहे संस्करण पर डेबियन के बाद के संस्करण से डेबियन स्रोतों का पुनर्निर्माण करते हैं। यह प्रक्रिया पैकेज के आधार पर आसान या शामिल और कठिन हो सकती है। यहाँ यह कैसे करना है की एक रूपरेखा है।

शुरुआती के लिए एक संक्षिप्त बैकपोर्टिंग ट्यूटोरियल

संक्षिप्तता के लिए मैं मानूंगा कि आप वर्तमान डेबियन स्थिर, वर्तमान में मट्ठा चला रहे हैं। मैं slrnउदाहरण के रूप में पैकेज का उपयोग करूँगा ।

सबसे पहले, ध्यान दें कि सभी डेबियन पैकेजिंग फाइलें debian/स्रोत निर्देशिका के उपनिर्देशिका में रहती हैं ।

पहला चरण यह जांचना है कि क्या अधिक हाल का संस्करण उपलब्ध है। आप इस का उपयोग कर सकते हैं apt-cache policy

apt-cache policy slrn

slrn:
  Installed: 1.0.0~pre18-1.3
  Candidate: 1.0.0~pre18-1.3
  Version table:
     1.0.1-10 0
         50 http://debian.lcs.mit.edu/debian/ testing/main amd64 Packages
         50 http://debian.lcs.mit.edu/debian/ unstable/main amd64 Packages
 *** 1.0.0~pre18-1.3 0
        500 http://debian.lcs.mit.edu/debian/ wheezy/main amd64 Packages
        100 /var/lib/dpkg/status
     1.0.0~pre18-1.1 0
        500 http://debian.lcs.mit.edu/debian/ squeeze/main amd64 Packages

हम बैकपोर्ट लेना चाहेंगे 1.0.1-10

चरण 1:

नायब: सुनिश्चित करें कि जिस deb-srcस्रोत संस्करण को आप डाउनलोड करना चाहते हैं उसके लिए लाइनें आपके में दिखाई देती हैं /etc/apt/sources.listउदाहरण के लिए, यदि आप अस्थिर संस्करण को डाउनलोड करना चाहते हैं, तो आपको अस्थिर के slrnलिए deb-srcलाइन की आवश्यकता है, या यह काम नहीं करेगा। ध्यान दें कि आपको debस्रोतों को डाउनलोड करने के लिए संबंधित पंक्तियों की आवश्यकता नहीं है , हालांकि apt-cache policyउस जानकारी का उपयोग करता है, इसलिए यदि आपके पास संगत debरेखाएं नहीं हैं , तो apt-cache policyआपको प्रासंगिक संस्करण नहीं दिखाएंगे। यदि आपके पास debलाइनें हैं, तो एक /etc/apt/preferencesया समान प्रविष्टि का उपयोग करके नए संस्करणों को पिन करना न भूलें । /etc/apt/preferencesइस तरह (अस्थिर) के लिए एक प्रविष्टि काम करेगी, उदाहरण के लिए।

Package: *
Pin: release a=unstable
Pin-Priority: 50

यदि आप लाइनों को जोड़ते हैं /etc/apt/sources.list, तो apt-get updateबाद में दौड़ना न भूलें ।

के लिए स्रोत डाउनलोड करें slrn। एक अच्छी जगह है /usr/local/src/slrn

apt-get source slrn=1.0.1-10

चरण 2:

संस्करण संख्या को थोड़ा बदलें, ताकि अपस्ट्रीम संस्करण से अपने बैकपोर्ट को अलग कर सकें। भागो dch -i, जो स्वचालित रूप से debian/changelogफ़ाइल में एक प्रविष्टि जोड़ देगा । उदाहरण के लिए, कुछ इस तरह से देखने के लिए प्रविष्टि बदलें।

slrn (1.0.1-10.username) UNRELEASED; urgency=low

  * Backport to wheezy.

 -- User <user@domain>  Sun, 02 Feb 2014 23:54:13 +0530

चरण 3:

स्रोतों के निर्माण का प्रयास। यदि बिल्ड के लिए आवश्यक पैकेज उपलब्ध नहीं हैं, तो प्रयास विफल हो जाएगा। स्रोत निर्देशिका में निर्देशिका बदलें। पैकेज debuildसे उपयोग करें devtools

cd slrn-1.0.1/
debuild -uc -us

यदि बिल्ड निर्भरताएं संतुष्ट हैं, तो स्रोत स्रोत के ऊपर के स्तर पर कुछ डेब का निर्माण और उत्पादन करेंगे; इस मामले में /usr/local/src/slrn

चरण 4:

मान लीजिए कि बिल्ड निर्भरता संतुष्ट नहीं हैं। फिर आपको बिल्ड निर्भरता स्थापित करने का प्रयास करने की आवश्यकता है। यह काम कर सकता है या नहीं भी कर सकता है, क्योंकि निर्भरता आपके संस्करण के लिए उपलब्ध नहीं हो सकती है, या यदि उपलब्ध हो, तो सही संस्करण में उपलब्ध नहीं हो सकती है।

नायब: यह दुर्भाग्य से डेबियन पैकेजों के लिए आवश्यक नहीं है कि निर्माण निर्भरता के संस्करणों की आवश्यकता होती है जो आवश्यक से अधिक हैं। इसे जांचने के लिए डेबियन में कोई स्वचालित तरीका नहीं है, और अक्सर पैकेज अनुरक्षक तब तक देखभाल नहीं करते हैं जब तक कि यह संबंधित संस्करण / रिलीज पर काम नहीं करता है। इसलिए, निर्भरता संस्करणों पर संदेहपूर्ण रवैया अपनाएं, और सामान्य ज्ञान का उपयोग करें। उदाहरण के लिए, व्यापक रूप से उपयोग किए जाने वाले पैकेज जैसे पायथन और जीएनयू उपकरण उनकी निर्भरता के बहुत विशिष्ट संस्करणों पर निर्भर नहीं होंगे, भले ही डेबियन पैगर सूची में हो।

किसी भी मामले में, आप उन्हें स्थापित करने का प्रयास कर सकते हैं

apt-get build-dep slrn=1.0.1-10

यदि यह सफल होता है, तो पैकेज को फिर से बनाने का प्रयास करें (STEP 2)। अगर यह विफल हो जाता है, तो आगे काम करने की आवश्यकता है। ध्यान दें कि फ़ाइल debuildमें बिल्ड निर्भरता को देखता है debian/control, और यदि आवश्यक हो तो आप इन्हें बदल सकते हैं। तो चलिए अब हम उसके बारे में बात करते हैं। यहां स्लर्न के लिए बिल्ड डिपेंडेंसी हैं।

Build-Depends: debhelper (>=9), libslang2-dev, libuu-dev,
 exim4 | mail-transport-agent, libgnutls-openssl-dev, po-debconf, autoconf,
 libcanlock2-dev, autotools-dev, dpkg-dev (>= 1.16.0), chrpath, dh-autoreconf, inn2-inews

का उपयोग करने का एक विकल्प apt-get build-depइन मैन्युअल रूप से स्थापित करना है, करके

apt-get install debhelper libslang2-dev ...

यदि आप नियंत्रण फ़ाइल में इन मानों को बदलना शुरू करते हैं, तो आपको मैन्युअल इंस्टॉलेशन पर स्विच करना चाहिए, क्योंकि तब आप apt-get build-depसही काम नहीं करेंगे।

उपलब्ध सॉफ़्टवेयर के अधिक हाल के संस्करणों का कोई पैक संस्करण नहीं हैं। उपलब्ध विकल्प अधिक हाल के संस्करण को पैकेज करने के लिए हैं।

कई मामलों में, एक नए स्रोतों के साथ संयोजन में सॉफ्टवेयर के पुराने संस्करणों से पैकेजिंग का पुन: उपयोग कर सकता है। यह दृष्टिकोण समस्याओं में चल सकता है, विशेष रूप से पैच जो कि सॉफ्टवेयर के पुराने संस्करणों पर लागू होते हैं, यहां लागू नहीं हो सकते हैं, इसलिए किसी को उन्हें स्रोतों के साथ फिर से सिंक करने की आवश्यकता हो सकती है। 3.0 (रजाई) स्रोत प्रारूप जो अब मानक उपयोग रजाई बन रहा है, और पैच debian/patchesनिर्देशिका में स्थित हैं ।

हालाँकि, इन मुद्दों की एक विस्तृत चर्चा इस पद के दायरे से बाहर है।


यह वास्तव में वितरण जेनेरिक है (केवल यह कि नए सामान के लिए कोड रिपॉजिटर्स को अलग तरीके से कहा जा सकता है, या आपको अन्य स्थानों से सामान प्राप्त करना होगा)। अपने वितरण के मार्गदर्शकों की जाँच करें।
वॉनब्रांड

2

एक तरीका जो हमेशा काम करता है, केवल डेबियन में नहीं, आवश्यक सॉफ़्टवेयर को स्वयं संकलित कर रहा है। (मैं अब डेबियन पर वर्षों से ऐसा कर रहा हूं, जब मुझे एक नए संस्करण की आवश्यकता थी जो उपलब्ध था, और जब सॉफ़्टवेयर बिल्कुल भी उपलब्ध नहीं था)।

मैं स्थानीय स्तर पर संकलित पैकेजों का /use/localउपयोग stowकरता हूं, जो मुझे एक उपनिर्देशिका वृक्ष में एक पैकेज से संबंधित सभी फाइलों को संग्रहीत करने की अनुमति देता है, और फिर उस पेड़ के प्रति सहानुभूति बनाने के लिए। यह संकलित पैकेजों को प्रबंधित करना आसान बनाता है: इंस्टॉल की गई फाइलें डेबियन-प्रदान की गई फाइलों से नहीं टकराती हैं, और मैं एक कमांड के साथ एक पैकेज को निकाल सकता हूं।

पैकेज को संकलित करने और स्थापित करने के चरण, कहते हैं some_software, आमतौर पर निम्नलिखित के एक प्रकार हैं:

  1. में .tarफ़ाइल आदि डाउनलोड करें /usr/local/src/

  2. एक फ़ाइल बनाएँ जो /usr/local/packages/some_softwareयह बताता है कि मैंने सॉफ़्टवेयर कहाँ डाउनलोड किया है, यह क्या करता है, यह किस संस्करण में है, और इसमें नोट्स शामिल हैं जो मुझे इसे संकलित करने के लिए करना था (नीचे देखें)।

  3. .tarफ़ाइल की सामग्री को अनपैक करें /usr/local/tmp/some_software

  4. वैकल्पिक रूप से, यदि एक रिपॉजिटरी से संकलन किया जाता है, तो रिपॉजिटरी को एक उपयुक्त उपनिर्देशिका (जैसे /usr/local/git/some_software) में देखें, और वहां संकलित करें, और

  5. cdइस निर्देशिका में, देखो README, INSTALLआदि

  6. ज्यादातर मामलों में, configureपैकेज के लिए एक ऑटोटूलस स्क्रिप्ट है । ./configure --prefix /usr/local/stow/some_software-versionऐसी फ़ाइलों के साथ कॉल करें जो इस उपनिर्देशिका में स्थापित हों। अन्यथा, Makefileस्थापित फ़ाइलों के लिए पथ निर्धारित करने के लिए पढ़ें और पता लगाएं।

  7. के साथ संकलित करें make

  8. के साथ स्थापित करें make install

  9. cd /usr/local/stow, फिर stow some_software-version

  10. अगर यह काम करता है तो परीक्षण करें।

अक्सर संकलन पहले प्रयास में काम नहीं करता है: पैकेज में पुस्तकालयों की आवश्यकता हो सकती है और संबंधित फाइलों में शामिल हो सकते हैं, इसलिए किसी को ...-devडेबियन के लिए सही पैकेज स्थापित करना होगा । या gccसामान के बारे में शिकायत कर सकते हैं कि एक अलग संस्करण gccजिसके लेखक ने उपयोग किया है, उसके बारे में शिकायत नहीं करता है। इसलिए कभी-कभी किसी को कोड पढ़ना पड़ता है, और इन्हें ठीक करना होता है, लेकिन ऐसा अक्सर नहीं होता है।


इस सवाल का इरादा, हालांकि शायद यह स्पष्ट नहीं था, यह वर्णन करना था कि डेबियन के लिए सॉफ़्टवेयर के पैकेज कैसे स्थापित करें। हो सकता है कि मैं सवाल को स्पष्ट कर दूं। है stowडेबियन संकुल बनाने? मैन पेज से, यह ऐसा नहीं दिखता है।
फहीम मीठा

@FaheemMitha स्टो को डेबियन पैकेज के बारे में नहीं पता है। यह केवल अलग-अलग इंस्टॉलेशन निर्देशिकाओं के एक समूह से प्रतीकात्मक लिंक का प्रबंधन करता है।
Kusalananda

@FaheemMitha: यदि आप स्वयं संकलित सॉफ़्टवेयर को डेबियन पैकेज में बदलना चाहते हैं , तो आपको इसे डेबियन पैकेज मेंटेनर की तरह खुद को पैकेज करना होगा। लेकिन यह बहुत ज्यादा परेशानी की बात है अगर आप एकमात्र उपयोगकर्ता होने जा रहे हैं, तो इसे स्थापित करना /usr/localकाफी सरल है, और stowवहां संग्रहीत फ़ाइलों को प्रबंधित करने में मदद करता है। या अलग तरीके से रखें: डेबियन पर उपयोग करने के लिए सॉफ्टवेयर को डेबियन पैकेज में नहीं होना चाहिए।
14

डेबियन पैकेज के रूप में सॉफ्टवेयर की पैकेजिंग के लिए एक बड़ा फायदा है, यहां तक ​​कि केवल स्थानीय उपयोग के लिए: यदि आप निर्भरता का सही ढंग से वर्णन करते हैं, तो एक पैकेज स्थापित होने से निर्भरताएं स्थापित रहेंगी ...
स्टीफन किट

@StephenKitt: यदि डेबियन पैकेज के रूप में सही ढंग से पैकेजिंग सॉफ्टवेयर बेहतर समाधान है। नकारात्मक पक्ष यह है कि इसे ठीक से पैकेज करने के लिए समय का निवेश करना होगा ...
dirkt
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.