मैंने इसका स्रोत कोड प्राप्त करके एक प्रोग्राम स्थापित किया, और फिर 'sudo make install' चला रहा था; इसके बारे में पता कैसे करें?


46

मैंने progAइसे स्रोत कोड से बनाकर प्रोग्राम (इसे कॉल करें, उदाहरण के लिए, ) स्थापित किया, और फिर अंत में कॉलिंग sudo make installऔर sudo ldconfig

हालाँकि, ऐसा लगता apt-getहै कि मेमो प्राप्त नहीं हुआ है, क्योंकि स्थापित करते समय progB, जो कि निर्भर करता है progA, apt-getअनुशंसा करता है कि मैं भी स्थापित करूँ progA। यह क्यों है, और मैं क्या कर सकता था?


मुझे लगता है कि आपको progBमैन्युअल रूप से भी इंस्टॉल करना होगा ...
पार्टो

11
यह नहीं माना जा सकता है कि आपके द्वारा बनाया गया 'कस्टम' संस्करण पैकेज के समान है, यह एक निर्भरता है। एक शॉर्टकट (अनुशंसित नहीं) असली पैकेज को स्थापित करने के लिए होगा, और फिर आपके 'विशेष' के साथ बाइनरी को अधिलेखित करेगा। जैसा कि आप विशिष्ट नहीं हैं, मैं कोई और सलाह नहीं दे सकता।
david6

6
बस यह मत करो। हमेशा अपने पैकेज प्रबंधन द्वारा प्रबंधित सॉफ़्टवेयर को अपने द्वारा संकलित सॉफ़्टवेयर से कड़ाई से अलग रखें।
रेनियर पोस्ट

जवाबों:


56

टीएल; डीआर checkinstall आपका दोस्त है ;)

sudo apt-get install checkinstall

sudo make installआपके पैकेज प्रबंधक के साथ एक इंस्टॉलेशन के बाद इस इंस्टॉलेशन के बारे में कुछ भी नहीं पता है। लेकिन यह उबंटू रिपॉजिटरी या पीपीए में एक ही नाम वाले एक पैकेज के बारे में सब जानता है।

sudo checkinstallइसके बजाय का उपयोग करें sudo make installऔर उच्च संस्करण का उपयोग करें रिपॉजिटरी में संस्करण के रूप में सुनिश्चित करें, कि आपका पैकेज प्रबंधक इस संस्करण को सही निर्भरता के रूप में स्वीकार करता है ProgB


अग्रिम जानकारी:

checkinstallवास्तव में निफ्टी है, क्योंकि यह इस बात का पालन करता है कि make installपैकेज बनाने के तरीके का पता लगाने के लिए कमांड क्या करेगा।

इसका मतलब है कि यदि आप प्रोग्राम का उपयोग करके इंस्टॉल करते हैं make install, लेकिन फिर अपने पापों के लिए पश्चाताप करना चाहते हैं, तो आपको केवल इतना करना है sudo checkinstall -D make installऔर यह आदेश है:

  1. का पालन करें make installयह पता लगाने की यह क्या करता है

  2. make install* .deb पैकेज फॉर्म को छोड़कर कॉपी-कैट

  3. पैकेज से स्थापित करें (ठीक उसी तरह make install, जिसे बिंदु 1 दिया गया है)) इसके अलावा इसके apt-getबारे में भी बताएं, और इस तरह सभी फाइलों को ठीक उसी तरह से अधिलेखित make installकर दें, जब तक आप make installघर की निर्देशिका में रखी गई फ़ाइलों को शामिल करने के लिए हां चुनते हैं। पैकेज में और साथ ही - checkinstallप्रक्रिया के दौरान विकल्पों में से कुछ आपको चुनने देगा (जाहिर है, हालांकि, विकल्प वहां है इसलिए आप इसे केस-टू-केस आधार पर व्यायाम कर सकते हैं)

बोनस: आप उस पैकेज progAका उपयोग करके एक पैकेज (इसे फिर से कॉल करें) को हटा सकते हैं, make installजिसमेंmake uninstallcheckinstall अब तक उल्लिखित प्रक्रिया का पालन ​​करके समर्थन नहीं है , और फिर बस कर रहे हैं:

dpkg -r progA

18
वाह checkinstall- दुनिया को इसके बारे में जानने की जरूरत है!

मैंने आपके उत्तर में कल इसे लागू करने की कोशिश के आधार पर, और इस मेटा प्रश्न की सिफारिशों के आधार पर कुछ और विवरण जोड़ दिए - कृपया इसे आगे संपादित करने के लिए स्वतंत्र महसूस करें!

आप कौन से विवरण का मतलब है?
एबी

ओह, मुझे लगता है कि वे अभी तक दिखाई नहीं दिए हैं, क्योंकि यह संपादन समीक्षा में है - यदि आप मेटा प्रश्न के लिंक पर क्लिक करते हैं, तो आप देखेंगे कि वे क्या हैं (मूल रूप से, मैंने उन्हें प्रश्न निकाय में रखा था, लेकिन सिफारिश यह थी कि मुझे उन्हें स्वीकृत उत्तर निकाय में रखना चाहिए)।

पैकेज प्रलेखन निर्देशिका ./doc-pak मौजूद नहीं है। क्या मुझे पैकेज डॉक्स का डिफ़ॉल्ट सेट बनाना चाहिए?
n8chz

13

तीन विकल्प:

  1. के लिए एक नकली पैकेज बनाने progA: नकली करने के लिए एक पैकेज संस्करण स्थापित? ( TeXlive के लिए एक व्यापक उदाहरण है)

  2. एक पैकेज बनाने के लिए progA, आसान है अगर यह एक है checkinstallविकल्प: कैसे उपयुक्त निर्भरता को ठगने के लिए?

  3. progBस्रोतों से भी निर्माण करें ।


1
4. progAसंकलित किए गए संस्करण के संस्करण को अनइंस्टॉल करें और संस्करण को स्थापित करें apt-get। 5. apt-getसंकलित संस्करण पर पैकेज स्थापित करें और सर्वश्रेष्ठ के लिए आशा करें।
jwodder

1

मैं का उपयोग कर की सलाह देते हैं uupdateसे devscriptsऔर पैकेज निर्माण की तरह मूल से पहले का निर्माण किया गया था।

आवश्यक पैकेज स्थापित करें

$ sudo apt-get install build-essential devscripts

आधिकारिक रिपॉजिटरी से पुराने पैकेज को डाउनलोड करें ( MediaWikiउदाहरण के रूप में उपयोग करेंगे) और अपस्ट्रीम से नया टार-बॉल।

$ mkdir ~/Downloads/mediawiki
$ cd ~/Downloads/mediawiki
$ apt-get source mediawiki
$ wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz

uupdateअपस्ट्रीम टार-बॉल और पुराने से एक नया स्रोत फ़ोल्डर बनाने के लिए चलाएँdebian/control

$ cd mediawiki-1.19.14+dfsg   # depends on your Ubuntu version
$ uupdate ../mediawiki-1.26.0.tar.gz 1.26.0
$ cd ../mediawiki-1.26.0

अब आपको जांचना चाहिए कि क्या आपको debian/controlआदि फ़ाइलों में परिवर्तन करने की आवश्यकता है । यदि आप कर रहे हैं तो आप डिब पैकेज का निर्माण कर सकते हैं और इसे स्थापित कर सकते हैं

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