RPM को कैसे बनाएँ और निर्माण करे
परिचय —
* “” Rpmbuild उपकरण के लिए दोनों का निर्माण किया जाता है …
1) द्विचर पैकेज ~ के लिए सॉफ्टवेयर स्थापित करें और स्क्रिप्ट का समर्थन करते थे. यह फाइल है कि आवेदन पत्र शामिल हैं, के साथ किसी भी अतिरिक्त स्थापित करें और उसे मिटा आवश्यक जानकारी के साथ.
2) स्रोत पैकेज ~ स्रोत कोड, पैच और विशिष्टता फ़ाइल के मूल संकुचित टार फ़ाइल है.
* RPM और RPM संकुल प्रबंधक क्या है?
RPM संकुल प्रबंधक (RPM) एक शक्तिशाली कमांड लाइन पैकेज प्रबंधन प्रणाली स्थापित करने में सक्षम, uninstalling, सत्यापित करने, querying है, और सॉफ्टवेयर संकुल अद्यतन.
RPM संकुल फाइल और मेटा का एक संग्रह शामिल हैं, डेटा को स्थापित करने और संग्रह फ़ाइलें मिटा करते थे. Meta-डेटा सहायक लिपियों, फ़ाइल गुण, और पैकेज के बारे में वर्णनात्मक जानकारी भी शामिल है.
* RPM संकुल आप को तीन बातें निर्दिष्ट करने की आवश्यकता का निर्माण करने के लिए ~
आवेदन पत्र के स्रोत) 1 – किसी भी मामले में, आप संकुल निर्माण की प्रक्रिया में इस्तेमाल स्रोतों को संशोधित नहीं होना चाहिए.
2) पैच – RPM को आप के लिए स्वचालित रूप से उन से पैच लागू करने की क्षमता देता है. पैच एक लक्ष्य प्रणाली को विशेष मुद्दा पते. इस makefiles बदलने के लिए उचित निर्देशिकाओं, या पार से हल करने में आवेदन मंच संघर्ष स्थापित शामिल हो सकते हैं. पैच उचित संकलन के लिए आवश्यक वातावरण पैदा करते हैं.
) 3 विशिष्टता फाइल – विनिर्देशन फ़ाइल RPM संकुल के निर्माण की प्रक्रिया के दिल में है. यह RPM के लिए आवश्यक के लिए पैकेज का निर्माण, साथ ही साथ यह कह RPM को कैसे बनाने के लिए निर्देशों की जानकारी शामिल है. विनिर्देशन फ़ाइल भी तय कर वास्तव में क्या फ़ाइलें पैकेज का हिस्सा हैं, और वे कहाँ स्थापित किया जाना चाहिए.
** विशिष्टता फाइल ~ में 8 के रूप में नीचे दिखाया गया वर्गों को विभाजित है
क) प्रस्तावना ~ जानकारी प्रदर्शित होगा जब उपयोगकर्ता पैकेज के बारे में जानकारी का अनुरोध शामिल हैं. यह है पैकेज समारोह का विवरण शामिल है, सॉफ़्टवेयर के संस्करण की संख्या आदि होगा
ख) ~ तैयारी जहां एक पैकेज के निर्माण की वास्तविक काम शुरू होता है. के रूप में नाम का अर्थ है, इस भाग है, जहां आवश्यक तैयारी सॉफ्टवेयर के वास्तविक निर्माण से पहले किया जाता है. सामान्य में, यदि कुछ भी जरूरत है सूत्रों के कुछ किया जाना सॉफ्टवेयर का निर्माण करने से पहले, यह तैयारी अनुभाग में होने की जरूरत है. इस खंड की सामग्री को एक साधारण खोल स्क्रिप्ट है. हालांकि, RPM को दो मैक्रोज प्रदान करता है जीवन को आसान बना. एक स्थूल एक संकुचित टार फ़ाइल खोलना और स्रोत निर्देशिका में सीडी कर सकते हैं. अन्य स्थूल आसानी से unpacked सूत्रों के पैच लागू होता है.
ग) बनाएँ ~ यह खंड एक खोल स्क्रिप्ट के होते हैं. यह जो भी आज्ञा पालन किया जाता है वास्तव में बनाने के लिए एक तरह के सूत्रों कमान संकलन, या और अगर इस प्रक्रिया को जटिल बनाने की आवश्यकता है यह आवश्यकता है. कोई इस अनुभाग में उपलब्ध मैक्रोज हैं.
घ) स्थापित ~ यह खंड भी एक खोल स्क्रिप्ट, अनुभाग स्थापित करने वाले के लिए वास्तव में सॉफ्टवेयर स्थापित करने की आवश्यकता आज्ञा पालन किया जाता है.
ङ) स्थापित करें और स्थापना रद्द करें लिपियों ~ यह स्क्रिप्ट के होते हैं कि भाग जाएगा, प्रयोक्ता की व्यवस्था है, जब पैकेज वास्तव में स्थापित या हटा दिया जाता है पर. RPM एक स्क्रिप्ट पूर्व निष्पादित / पोस्ट स्थापना / पैकेज के हटाने कर सकते हैं.
च) सत्यापित करें स्क्रिप्ट ~ स्क्रिप्ट है कि उपयोगकर्ता के सिस्टम पर मार डाला है. यह मार डाला है जब RPM है पैकेज उचित स्थापना की पुष्टि.
छ) स्वच्छ धारा ~ स्क्रिप्ट है कि चीजों के निर्माण के बाद साफ कर सकते हैं. यह कहानी शायद ही कभी इस्तेमाल किया है, क्योंकि RPM को आम तौर पर एक अच्छा काम करता है सबसे स्वच्छ वातावरण बनाने में.
ज) फाइल की सूची ~ फ़ाइलों की एक सूची है कि पैकेज शामिल होंगे शामिल है. इसके अतिरिक्त, मैक्रोज के कई गुण जब स्थापित फ़ाइल नियंत्रण किया जा सकता है, के रूप में अच्छी तरह के रूप में निरूपित करने के लिए जो फाइल दस्तावेज हैं, और जो कॉन्फ़िगरेशन जानकारी होती है. फाइल की सूची बहुत महत्वपूर्ण है.
माहौल बनाने के लिए *** है RPM आवश्यकता ~
A] RPM निर्देशिका का एक सेट की आवश्यकता के लिए प्रदर्शन का निर्माण. जबकि ‘निर्देशिका स्थानों और नाम बदला जा सकता है. डिफ़ॉल्ट लेआउट नीचे दिखाया गया है —
root@arunsb:~# ls -l /usr/src/redhat/
drwxr-xr-x 2 root root 4096 Aug 25 2007 SOURCES => मूल स्रोत, पैच होता है, और आइकन फ़ाइलें अगस्त
drwxr-xr-x 2 root root 4096 Aug 25 2007 SPECS => अगस्त x विनिर्देशन फ़ाइलें हैं
drwxr-xr-x 2 root root 4096 Aug 25 2007 BUILD => निर्देशिका में सूत्रों unpacked रहे हैं, और सॉफ्टवेयर अगस्त x बनाया गया है
drwxr-xr-x 8 root root 4096 May 28 2008 RPMS => द्विपदीय संकुल को समाहित x बनाने की प्रक्रिया के द्वारा बनाई गई फ़ाइलें
drwxr-xr-x 2 root root 4096 Aug 25 2007 SRPMS => अगस्त x स्रोत पैकेज में शामिल हैं प्रक्रिया के निर्माण के द्वारा बनाई गई फ़ाइलें
root@arunsb:~#
B] कुछ वैश्विक RPM द्वारा इस्तेमाल चर निर्यात करने की आवश्यकता —
root@arunsb:~# export RPM_BUILD_DIR=/usr/src/redhat/BUILD/
root@arunsb:~# export RPM_SOURCE_DIR=/usr/src/redhat/SOURCES/
चरण 1] विशिष्टता बनाएँ (कल्पना) फाइल ~
root@arunsb:~# head -n 50 /usr/src/redhat/SPECS/openlsm.spec
# Authority: Arun Bagul
#RPM_BUILD_DIR /usr/src/redhat/BUILD/
#RPM_SOURCE_DIR /usr/src/redhat/SOURCES/
%define MY_PREFIX /usr/local/openlsm/
## Preamble Section-
Name: openlsm
Version: 0.99
Vendor: IndianGNU.org & openlsm
Release: r45
Group: System Environment/Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Summary: openlsm Admin Server
License: GPL
%description
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.
## Preparation Section-
%prep
rm -rf ${RPM_BUILD_DIR}/openlsm-0.99-r45/
tar xvfz ${RPM_SOURCE_DIR}/openlsm-0.99-r45.tar.gz -C ${RPM_BUILD_DIR}
## Build Section-
%build
cd ./openlsm-0.99-r45/
./configure –prefix=/usr/local/openlsm –with-mysql=/usr/bin/mysql_config –enable-internal-pcre –with-geoip=/usr –with-ldap=/usr –enable-trace
make
## Install Section-
%install
cd ./openlsm-0.99-r45/
make install
## Files Section-
%files
/usr/local/openlsm
/usr/local/openlsm/etc/openlsm/openlsm.conf
/usr/local/openlsm/etc/openlsm/openlsm.conf.perf_sample
/usr/local/openlsm/etc/openlsm/ssl/
/usr/local/openlsm/bin/openlsm-config
….
…..
….. list of files installed by pkg
root@arunsb:~#
* आप फाइल की सूची कैसे बनाऊँ?
फ़ाइल सूची बनाने के मैन्युअल प्रक्रिया है. क्या मैंने किया है मैं अपने हाथ से स्थापित उपसर्ग निर्देशिका से फाइल की सूची लिया मिल के रूप में नीचे दिखाया गया कमान …
root@arunsb:~# find /usr/local/openlsm/ -type f -or -type d
चरण 2] बनाएँ शुरू ~
root@arunsb:~# cd /usr/src/redhat/SPECS
root@arunsb:/usr/src/redhat/SPECS# ls -l openlsm.spec
-rw-r–r– 1 root root 12938 Dec 2 17:21 openlsm.spec
root@arunsb:/usr/src/redhat/SPECS#
root@arunsb:/usr/src/redhat/SPECS# rpmbuild -ba openlsm.spec
…
….
… ..
Unpackaged फ़ाइल (s के लिए जाँच हो रही है): usr / lib / rpm / जांच% फ़ाइलें buildroot ()
ने लिखा: usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm /
ने लिखा: usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm /
arunsb @ जड़: / usr / src redhat / / चश्मा # $ गूंज?
0
Checking for unpackaged file(s): /usr/lib/rpm/check-files %{buildroot}
Wrote: /usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Wrote: /usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root@arunsb:/usr/src/redhat/SPECS# echo $?
0
root@arunsb:/usr/src/redhat/SPECS# ls -l /usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
-rw-r–r– 1 root root 3206 Dec 2 17:50 /usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
root@arunsb:/usr/src/redhat/SPECS# ls -l /usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
-rw-r–r– 1 root root 3052868 Dec 2 17:50 /usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root@arunsb:/usr/src/redhat/SPECS#
* स्रोत और द्विचर पैकेज बनाया!
** चलो देखते हैं क्या हुआ “/usr/src/redhat/ निर्देशिका”
root@arunsb:/usr/src/redhat# pwd
/usr/src/redhat
root@arunsb:/usr/src/redhat# ls
BUILD RPMS SOURCES SPECS SRPMS
root@arunsb:/usr/src/redhat# ls BUILD/
openlsm-0.99-r45 <= यहाँ विनिर्देशन फ़ाइल अर्थात् से निर्देश के निर्माण के रूप में हिस्सा निकाला “openlsm.spec”
root@arunsb:/usr/src/redhat# ls SOURCES/
openlsm-0.99-r45.tar.gz <= ‘openlsm-0.99-r45.tar.gz’ स्रोत मेरे द्वारा नकल फाइल
root@arunsb:/usr/src/redhat# ls RPMS/
athlon i386 i486 i586 i686 noarch
root@arunsb:/usr/src/redhat# ls RPMS/i386/
openlsm-0.99-r45.i386.rpm <= द्विचर rpm पैकेज बनाया!
root@arunsb:/usr/src/redhat# ls SRPMS/
openlsm-0.99-r45.src.rpm <= श्रोत RPM संकुल बनाया!
root@arunsb:/usr/src/redhat#
चरण 3] अब संकुल अधिष्ठापित है और यह परीक्षण ~
root@arunsb:/usr/src/redhat# cp RPMS/i386/openlsm-0.99-r45.i386.rpm /home/arunsb/
root@arunsb:/usr/src/redhat# cd /home/arunsb/
root@arunsb:~# ls
openlsm-0.99-r45.i386.rpm
root@arunsb:~# rpm -ivh openlsm-0.99-r45.i386.rpm
Preparing… ########################################### [100%]
1:openlsm ########################################### [100%]
root@arunsb:~# ls /usr/local/openlsm/
bin contrib etc include lib sbin scripts share var
root@arunsb:~#
** Openlsm सर्वर शुरू ~
root@arunsb:~# /usr/local/openlsm/contrib/openlsm-redhat start
* Starting openlsm admin server: openlsm
. [ OK ]
root@arunsb:~#
root@arunsb:~# /usr/local/openlsm/contrib/openlsm-redhat status
openlsm (pid 21607) is running…
root@arunsb:~#
root@arunsb:~# rpm -q openlsm-0.99-r45
openlsm-0.99-r45
root@arunsb:~#
root@arunsb:~# rpm -ql openlsm-0.99-r45
..
…
root@arunsb:~# rpm -qiv openlsm-0.99-r45
Name : openlsm Relocations: (not relocatable)
Version : 0.99 Vendor: IndianGNU.org & openlsm
Release : r45 Build Date: Wed 02 Dec 2009 05:50:54 PM IST
Install Date: Wed 02 Dec 2009 06:06:23 PM IST Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Group : System Environment/Daemons Source RPM: openlsm-0.99-r45.src.rpm
Size : 14877918 License: GPL
Signature : (none)
Packager : IndianGNU.org (http://www.indiangnu.org)
URL : http://openlsm.sourceforge.net/
Summary : openlsm Admin Server
Description :
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.
root@arunsb:~#
** नोट ~ यह लेख जानकारी कैसे माइक्रो परिभाषित करने के लिए, कैसे डॉक्स नकल पर नहीं शामिल करता है, आदमी पृष्ठों डिफ़ॉल्ट स्थान को, कैसे permision और स्वामित्व आदि मैं RPM पर अगले लेख में इस विषय को कवर किया जाएगा सेट के लिए.
** कृपया अंग्रेजी लेख का उल्लेख ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/
सादर,
Arun Bagul