एक उदाहरण के रूप में आशीर्वाद का उपयोग करके N900 के लिए .NET .NET पैकेजिंग

हमारे पास पहले से ही रनटाइम और मोनो लाइब्रेरी हैं। लेकिन वे अपनी विधानसभा के लिए "मजेदार" प्रक्रिया के कारण नोकिया रिपॉजिटरी में प्रवेश करेंगे। मैं, निश्चित रूप से, इसे गैर-मुक्त अनुभाग में धकेलने की कोशिश करूंगा, लेकिन कोई गारंटी नहीं है। बाहरी रिपॉजिटरी से लिंक करना कोषेर नहीं है, और इन पैकेजों के कई क्लोन रखना समस्याग्रस्त है। कैसे हो? हां, बिल्कुल सरल। Mkbundle उपयोगिता का उपयोग करके रनटाइम और लाइब्रेरीज़ को एक स्टैंडअलोन निष्पादन योग्य में पैक करें। वैसे, चिंताओं के विपरीत, मैंने पैकेजिंग से पहले और बाद में स्टार्टअप के समय और मेमोरी खपत में अंतर नहीं देखा।




आरंभ करने के लिए, डिबेट पैकेज डाउनलोड करें। भविष्य में, इसकी सामग्री पर यह ठीक है कि हम इसका मजाक उड़ाएंगे।

निकालें:

dpkg -x धन्य_0.6.0-2_all.deb आशीर्वाद_कर्म
dpkg -e धन्य_0.6.0-2_all.deb आशीर्वाद_कर्म / DEBIAN


हम सामग्री के चारों ओर देखते हैं। अतिरिक्त कचरा का एक गुच्छा, हम तुरंत दस्तावेज़ से छुटकारा पा लेते हैं, वैसे भी यह स्थापना के दौरान ट्रिगर द्वारा हटा दिया जाएगा।

अब हम निष्पादन और dlls के साथ अकेले रह गए हैं। उन पर mkbundle सेट करें:

ls * .dll | xargs mkbundle --deps --keeptemp -z sac.exe


हम आउटपुट पर a.out प्राप्त करते हैं। हम चलाने की कोशिश करते हैं, ऐसा लगता है कि यह काम करता है।

अब हमें किसी तरह से मेमो के लिए एक बाइनरी बनाने की आवश्यकता है। झंडे को ध्यान में रखते हुए - akeeptemp mkbundle कृपया हमारे लिए 2 फाइलें छोड़ें: temp.c और temp.s. सिद्धांत रूप में, उन्हें केवल एक ही स्क्रैचबॉक्स के तहत कम से कम संकलित करने की आवश्यकता है, लेकिन यह वहां नहीं था। सेना के असेंबलर किसी अज्ञात कारण से .type निर्देश को समझने से इनकार करते हैं। अजीब तरह से पर्याप्त, यह पूरी तरह से दर्द रहित रूप से काटा जा सकता है। जाहिर है, संगतता कारणों के लिए जोड़ा गया। ठीक है, जहाँ तक यह संगत है हम पहले ही देख चुके हैं, इसलिए हमने grep निर्धारित किया है:
cat temp.s | grep -v "प्रकार। * ऑब्जेक्ट"> armasm.s


अब हमारे पर्यावरण में विधानसभा संकलित करें:
as armasm.s -o armasm.o
cc -Wl, - rpath = / ऑप्ट / आशीर्वाद / lib -ggdb -o आशीर्वाद -all temp.c `pkg-config --cflags --libs मोनो` -lz armasm.o


- तीरथ सेट किया गया है क्योंकि कुछ डीएलएस सिस्टम लाइब्रेरी को बहुत ही अजीब नामों से एक्सेस करके किक करने की कोशिश करते हैं, इसलिए हम सिर्फ सिम्बिंक बनाते हैं।

संकलित बाइनरी को / ऑप्ट / आशीर्वाद / बिन में रखें।

अब इस परिवाद निर्देशिका में हम libMonoPosixHelper.so.0 libmono.so.0 डालते हैं (आप मेरे भंडार में संकुल से n900 के लिए संकलित कर सकते हैं)। Gtk बाइंडिंग को कॉपी करें, /lib/libc.so.6 पर कुछ सिम्लिंक्स (intl, libc, msvcrt) बनाएं, डेस्कटॉप फाइल को / usr / share / Applications / hildon में ट्रांसफर करें। Pff, यह सब है। हमें यह पेड़ मिलता है:

/ विकल्प
/ विकल्प / आशीर्वाद
/ ऑप्ट / आशीर्वाद / बिन
/ ऑप्ट / आशीर्वाद / बिन / आशीर्वाद
/ ऑप्ट / आशीर्वाद / देय
/ ऑप्ट / आशीर्वाद / देयता / msvcrt
/opt/bless/lib/libmono.so.0
/ ऑप्ट / आशीर्वाद / देय / यूएसआर
/ ऑप्ट / आशीर्वाद / देय / usr / देय
/ ऑप्ट / आशीर्वाद / परिवाद / usr / lib / cli
/opt/bless/lib/usr/lib/cli/gdk-sharp-2.0
/opt/bless/lib/usr/lib/cli/gdk-sharp-2.0/libgdksharpglue-2.so
/opt/bless/lib/usr/lib/cli/glib-sharp-2.0
/opt/bless/lib/usr/lib/cli/glib-sharp-2.0/libglibsharpglue-2.so
/opt/bless/lib/usr/lib/cli/gtk-sharp-2.0
/opt/bless/lib/usr/lib/cli/gtk-sharp-2.0/libgtksharpglue-2.so
/ ऑप्ट / आशीर्वाद / देय / इंटल
/opt/bless/lib/libMonoPosixHelper.so
/ ऑप्ट / आशीर्वाद / देयता / परिवाद
/ DEBIAN
/ DEBIAN / नियंत्रण
/ usr
/ usr / बिन
/ usr / बिन / आशीर्वाद
/ usr / शेयर
/ usr / शेयर / आवेदन
/ usr / शेयर / एप्लीकेशन / हिल्डन
/usr/share/applications/hildon/bless.desktop
/ usr / शेयर / आशीर्वाद
/usr/share/bless/bless-default.layout
/usr/share/bless/bless.glade
/usr/share/bless/help_script.sh
/usr/share/bless/bless-about.png
/usr/share/bless/bless-48x48.png
/usr/share/bless/bless-16-bytes-per-row.layout
/usr/share/bless/bless-all-number-bases.layout
/usr/share/bless/default-preferences.xml
/ usr / शेयर / पिक्समैप
/usr/share/pixmaps/bless-48x48.png


हम DEBIAN / नियंत्रण से सभी निर्भरताएं दूर करते हैं - अब हम केवल फर्मवेयर में है पर निर्भर करते हैं।

हम पैकेज इकट्ठा करते हैं:
fakeroot
chown -R root: root sac_armel
dpkg -b आशीर्वाद_आर्मेल


और ... और यह बात है पैकेज स्थापित है, मुख्य मेनू में दिखाई देता है, फाइलें संपादित की जाती हैं। इतना सरल। उन्होंने डेबियन से एक पैकेज लिया, थोड़ा उठाया, आउटपुट पर एक ऑपरेटिव बाइनरी मिला। आप अपने सॉफ़्टवेयर,% उपयोगकर्ता नाम% के साथ ऐसा कर सकते हैं।
पैकेज खुद यहां डाउनलोड किया जा सकता है

Source: https://habr.com/ru/post/In117593/


All Articles