मैं उबंटू समुदाय के साथ साझा करने के लिए अपना स्वयं का कस्टम पीपीए कैसे बना सकता हूं? मैं अपना खुद का कस्टम पैकेज सेट बनाने की कोशिश कर रहा हूं और मैं वास्तव में इसे समुदाय के साथ साझा करना चाहूंगा।
मैं उबंटू समुदाय के साथ साझा करने के लिए अपना स्वयं का कस्टम पीपीए कैसे बना सकता हूं? मैं अपना खुद का कस्टम पैकेज सेट बनाने की कोशिश कर रहा हूं और मैं वास्तव में इसे समुदाय के साथ साझा करना चाहूंगा।
जवाबों:
एक व्यक्तिगत पैकेज पुरालेख ( पीपीए ) का उपयोग करके , आप सीधे उबंटू उपयोगकर्ताओं को सॉफ्टवेयर और अपडेट वितरित कर सकते हैं। अपना स्रोत पैकेज बनाएं, इसे अपलोड करें और लॉन्चपैड बायनेरिज़ का निर्माण करेगा और फिर उन्हें अपने स्वयं के भंडार में होस्ट करेगा।
यहां एक विस्तृत विवरण दिया गया है ।
यह किसी दिए गए नमूना स्क्रिप्ट से एक मूल .deb फ़ाइल बनाने पर एक ट्यूटोरियल है। इस ट्यूटोरियल में हम पहले बैश में एक सैंपल प्रोग्राम बनाते हैं जो सिर्फ 'हेलो फ्रॉम प्रोग्राम' दिखाते हैं। फिर हम डेबियन इंस्टॉलर बनाने के लिए प्रोग्राम के लिए एक कंट्रोल फाइल बनाते हैं। अंत में उन्हें एक .deb
फाइल में पैक किया जाता है ।
बैश में एक नमूना कार्यक्रम बनाएँ
mkdir "$HOME/create_deb/pgmdir"
gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
इसमें निम्न कोड पेस्ट करें
#!/bin/bash
echo 'HELLO FROM PROGRAM' | zenity --text-info
कार्यक्रम को निष्पादन योग्य बनाएं
chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
डेबियन पैकेज के लिए कंट्रोल फाइल बनाएं
control
फ़ोल्डर के अंदर नाम की एक फाइल बनाएंDEBIAN
mkdir "$HOME"/create_deb/DEBIAN
gedit "$HOME"/create_deb/DEBIAN/control
और निम्नलिखित विवरण चिपकाएँ
Package: hellodeb
Version: 0.1
Architecture: all
Maintainer: totti
Installed-Size: 6
Depends: zenity, bash
Section: testing
Priority: optional
Homepage: http://askubuntu.com
Description: This is my first debian package.
Guided by Totti Torvalds.
In Description new line start with a space.
आप चाहें तो कंटेंट को एडिट कर सकते हैं। इस फ़ाइल के प्रारूप के बारे में यहाँ और यहाँ पढ़ें ।
postinst
स्क्रिप्ट बनाएं , जिसे पैकेज की स्थापना के तुरंत बाद निष्पादित किया जाता है
gedit "$HOME"/create_deb/DEBIAN/postinst
फिर पेस्ट करें
#!/bin/sh
set -e
echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
और इसे निष्पादन योग्य बनाएं
chmod +x "$HOME/create_deb/DEBIAN/postinst"
prerm
स्क्रिप्ट बनाएँ , जिसे पैकेज से हटाने से पहले निष्पादित किया जाता है
#!/bin/sh
set -e
echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
और इसे निष्पादन योग्य बनाएं
chmod +x "$HOME/create_deb/DEBIAN/prerm"
पैकेज संरचना और कॉपी प्रोग्राम, डेटा इत्यादि
बनाएं । अपने इंस्टॉल किए गए प्रोग्राम और उसके डेटा की संरचना बनाएं। इस उदाहरण में हमने फ़ाइल को यहाँ रखा है /bin
।
mkdir -p "$HOME"/create_deb/bin
cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
बिल्ड .deb फ़ाइल।
dpkg-deb --build "$HOME"/create_deb .
.
इच्छा ऑटो नाम .deb
संस्करण, मेहराब आदि या अपने कस्टम नाम के साथ फ़ाइल
dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
या यदि आप .deb फ़ाइल का निर्माण करते हैं
debuild -k'your GPG key here' -S
तो आप इसे Ubuntu लॉन्चपैड के साथ अपलोड कर सकते हैं
dput ppa:<lp-username>/<ppa-name> packet-source.changes
जैसा यहाँ वर्णित है (स्रोत: स्क्रिप्ट या बायनेरिज़ से एक .deb पैकेज बनाएँ )
नए बनाए गए .deb
पैकेज को स्थापित करें । आप इसे खोल सकते हैं, software-center
लेकिन यह आपको स्थापित करने की अनुमति नहीं दे सकता है। इसलिए मैं gdebi
पैकेज मैनेजर का उपयोग करने की सलाह देता हूं ।
sudo apt-get install gdebi
gdebi "$HOME"/create_deb/hellodeb.deb
अब आप इसे इंस्टॉल कर सकते हैं। स्थापना के दौरान आपको एक gtk संवाद देखना चाहिए
संस्थापन कार्यक्रम: zenity_hello.sh ......
एक टर्मिनल खोलने और टाइप करने के बाद zenity_hello
। यदि प्रोग्राम सही ढंग से स्थापित है और सब कुछ ठीक है तो आपको एक gtk संवाद देखना चाहिए
प्रोगराम से हेलो
पैकेज निकाल रहा है
sudo apt-get remove zenity_hello
जैसा कि ओपी अपने पैकेज प्रकाशित करने का एक सरल तरीका चाहता है, मैं एक आसान हैक दे रहा हूं।
आवश्यकता: ड्रॉपबॉक्स (। या के लिए पूर्व anyother सेवा, GitHub ) एक सार्वजनिक फ़ोल्डर के साथ खाते।
अपने सार्वजनिक-ड्रॉपबॉक्स-फ़ोल्डर के अंदर एक फ़ोल्डर बनाएँ जहाँ आप अपनी * .deb फाइलें रखते हैं:
mkdir ~/Dropbox/Public/deb-packages
या उस फ़ोल्डर को कहीं और बनाएं और अपने सार्वजनिक फ़ोल्डर में एक सिमलिंक डालें:
mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages
उस फ़ोल्डर में जाएं और एक स्क्रिप्ट बनाएं, जिसे निष्पादित करते समय, अपने डेब्यू-पैकेज के बारे में सभी आवश्यक सूचनाओं से युक्त, संकुल.गज़ बनाता है। सृजन करना:
gedit import.sh
इसे इसमें डालें:
#!/bin/bash
dpkg-scanpackages . /dev/null |gzip > Packages.gz
इसे निष्पादित करें:
chmod x import.sh
कुछ * .deb फ़ाइलों को फ़ोल्डर में कॉपी करें। आपके अपने या कुछ ऐसे हो सकते हैं जो अन्य रिपॉजिटरी के माध्यम से उपलब्ध नहीं हैं। फिर फ़ोल्डर में जाएं और हमारे द्वारा वहां रखी गई स्क्रिप्ट को निष्पादित करें:
cd ~/deb-packages/
./import.sh
यह तथाकथित Package.gz फ़ाइल बनाना चाहिए , जो कि यह जानने के लिए उपयुक्त है कि कौन से पैकेज इस रिपॉजिटरी में स्थित हैं।
अब, फ़ोल्डर को सिंक्रनाइज़ करने के लिए ड्रॉपबॉक्स की प्रतीक्षा करें और सार्वजनिक URL को इसमें सेPackages.gz
पकड़ो । यह कुछ इस तरह दिखना चाहिए:
http://dl.getdropbox.../Packages.gz
उस लिंक के अंत से छुटकारा पाएं, इसके लिए कुछ और शब्द डालें और अब आप निम्न लाइन का उपयोग और पॉपुलेट कर सकते हैं। source.list:
deb http://dl.getdropbox.../deb-packages ./
यही कारण है कि आपको अपना डिबेट रिपॉजिटरी चल रहा है। हमेशा स्थानीय रूप से सिंक्रनाइज़, लेकिन किसी को भी, कभी भी, कहीं भी उपलब्ध है।
नोट:
संदर्भ dpkg-scanpackages
से उपलब्ध हैdpkg-dev
releases/
देख github.com/rubo77/mouse-speed/blob/master/release/...
debuild -us -uc -k'your GPG key here'
तब आप इसे dput ppa:<lp-username>/<ppa-name> packet-source.changes
लॉन्चपैड के साथ यहां बताए अनुसार अपलोड कर सकते हैं (स्रोत: स्क्रिप्ट या बायनेरिज़ से एक .deb पैकेज बनाएं )
debuild -k'your GPG key here' -S
क्योंकि लॉन्चपैड डिबेट फ़ाइल बनाएगा (यदि यह अस्वीकार नहीं किया गया है) - क्या क्या `-स-uc` के लिए किया गया है?