.Deb से PKGBUILD बनाएं


11

मेरे पास एक .debडेबियन पैकेज है जिसमें अनिवार्य रूप /usr/share/binसे एक संपीड़ित dataफ़ाइल में एक फ़ोल्डर के रूप में सॉफ़्टवेयर की बायनेरिज़ होती है , और दूसरी फ़ाइलों के चेकसम में एक अन्य मेटाडेटा संपीड़ित फ़ाइल होती है।

मेरा लक्ष्य PKGBUILDइस तरह के .deb पैकेज को सही ढंग से आर्कलिंक पर स्थापित करना है।

ऐसा करने का उचित तरीका क्या है?

फ़ंक्शन का उपयोग करके फ़ेकरूट वातावरण /usr/share/binमें उस निर्देशिका की सामग्री की प्रतिलिपि बनाने के लिए पर्याप्त है ? फ़ोल्डर को वास्तविक स्थान पर कॉपी किया जाएगा जब निर्मित पैकेज वास्तव में स्थापित हो?pkg /usr/share/binbuild()/usr/share/bin


6
अनिवार्य रूप से, हाँ (पैकेज फ़ंक्शन का उपयोग छोड़कर)। अन्य पैकेजों के लिए AUR में देखें -binऔर एक ही दृष्टिकोण का उपयोग करें ...
jasonwryan

जवाबों:


9

हां, यह बाइनरी स्रोतों के साथ अन्य PKGBUILDs की तरह ही काम करेगा - इसे निकालें और फ़ाइलों को कॉपी करें। केवल एक चीज है जो उल्लेखनीय है कि deb-संग्रह 3 अन्य फ़ाइलों के होते है - debian-binary, control.tar.gz, data.tar.gz। Makepkg केवल पहले-स्तरीय संग्रह को निकालेगा और फिर आपको मैन्युअल रूप से निकालना चाहिए data.tar.gz

prepare() {
    tar -zxvf data.tar.gz
}

package() {
    # copy files
}

वैकल्पिक रूप से, आप डिबेक-संग्रह को noextract ऐरे में रख सकते हैं और फिर मैन्युअल रूप से केवल निकाल सकते हैं data.tar.gz:

$ ar p source.deb data.tar.gz | tar zx

makepkg$srcdirकार्यों को निष्पादित करने से पहले वर्तमान निर्देशिका को बदल देता है , इसलिए आपको अब इसे शामिल करने की आवश्यकता नहीं है ...
jasonwryan

@ajonwryan, कई डेवलपर्स ने कहा है कि इस बात की कोई गारंटी नहीं है कि यह सच रहेगा। दीर्घायु की खातिर, यह प्रथागत cd "${srcdir}"रेखा को छोड़ने के लिए समझ में आ सकता है।
HalosGhost

1
@HalosGhost मैंने ऐसा नहीं सुना। इसी तर्क से, इस बात की कोई गारंटी नहीं है कि यह गलत हो जाएगा ... :)
jasonwryan
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.