டெபியன் தொகுப்பு உருவாக்கம் எப்படி

Debian Package Creation Howto



1. முன்னுரை

ஒரு இயந்திரத்திற்கு பொறுப்பாக இருப்பது என்பது வன்பொருள் மற்றும் மென்பொருள் கூறுகளை கவனித்துக்கொள்வதாகும். ஒரு கணினி நிர்வாகியாக ஒவ்வொரு நாளும் வாழ்க்கையில் காணப்படுவது போல, மென்பொருள் தொகுப்பை ஒரு மென்பொருள் தொகுப்பாக நிறுவுவது மிகவும் நல்லது. இது முறையை முறையாக பராமரிக்க செலவுகளைக் குறைக்கிறது.

உங்களுக்கு விருப்பமான விநியோகஸ்தரிடமிருந்து கிடைக்கும் தொகுப்புகள் ஒரு தொகுப்பு பராமரிப்பாளரால் சரிபார்க்கப்பட்டு கண்காணிக்கப்படுகின்றன. அவர் மென்பொருளைச் சோதித்தார், மேலும் விநியோகத்தில் கிடைக்கும் மற்ற மென்பொருள் தொகுப்புகளுக்கு இது பொருந்தும் என்று உறுதியளிக்கிறார். மேலும், தொகுப்பு பராமரிப்பாளரிடமிருந்து ஜிபிஜி விசையுடன் தொகுப்பு கையொப்பமிடப்பட்டுள்ளது. இது தொகுப்பின் ஒருமைப்பாட்டிற்கு உத்தரவாதம் அளிக்கிறது மற்றும் தொகுப்பு நம்பகமான மூலத்திலிருந்து வந்தது என்பதை உங்களுக்குக் காட்டுகிறது.







தொகுப்பு வடிவம் உங்கள் லினக்ஸ் விநியோகத்தைப் பொறுத்தது. தேர்ந்தெடுக்கப்பட்ட வடிவங்கள் பின்வருமாறு:



deb

இதில் பயன்படுத்தப்படும் தொகுப்புகள்: டெபியன் குனு/லினக்ஸ் , உபுண்டு , அரும்பியன் , லினக்ஸ் புதினா , நாபிக்ஸ்



rpm

இதில் பயன்படுத்தப்படும் தொகுப்புகள்: RedHat , ஃபெடோரா , CentOS , OpenSuse





tgz and txz

இதில் பயன்படுத்தப்படும் தொகுப்புகள்: ஸ்லாக்வேர்

tar.xz

இதில் பயன்படுத்தப்படும் தொகுப்புகள்: ஆர்ச் லினக்ஸ்



இந்த ஆவணம் டெபியன் குனு/லினக்ஸுக்கு ஒரு தொகுப்பை எவ்வாறு உருவாக்குவது என்பதை சுருக்கமாக விளக்குகிறது. டெபியன் தொகுப்பு வடிவம் மற்றும் `டெப்` அடிப்படையிலான லினக்ஸ் அமைப்பைப் பராமரிப்பதற்கான கருவிகள் பற்றிய விரிவான தகவல்களுக்கு நீங்கள் டெபியன் தொகுப்பு மேலாண்மை புத்தகத்தைப் பார்க்கலாம் [dpmb] டெபியன் GNU/Linux க்கான தொகுப்புகளை உருவாக்க இந்த ஆவணங்கள் அவசியம்:

  • டெபியன் புதிய பராமரிப்பாளர் வழிகாட்டி [dnmg]
  • டெபியன் டெவலப்பரின் குறிப்பு [GDR]
  • டெபியன் பேக்கேஜிங் டுடோரியல் [முடியும்]
  • டெபியன் கொள்கை கையேடு [dpm]

நாங்கள் பணிபுரியும் தொகுப்பு `ஹெலோவர்ல்ட்` என்று பெயரிடப்பட்டுள்ளது மற்றும் பதிப்பு எண் 0.1 ஐக் கொண்டுள்ளது. ஆர்ப்பாட்ட நோக்கங்களுக்காக இது ஒரு ஒற்றை பைதான் ஸ்கிரிப்டை கொண்டுள்ளது, இது ஹலோ, உலகம்!

#!/usr/bin/python print ('Hello, world!') 

2. தேவைகள்

2.1. ஜிபிஜி விசை

படி 1 என, உங்கள் GPG விசை கிடைக்கும். பின்னர், தொகுப்பில் கையொப்பமிட விசை தேவைப்படும். கையொப்பமிடாத தொகுப்புகள் நம்பமுடியாதவை மற்றும் டெபியன் பிரபஞ்சத்தின் ஒரு பகுதியாக இருக்க முடியாது என்பதை நினைவில் கொள்ளுங்கள்.

உங்களிடம் ஜிபிஜி விசை இல்லையென்றால் இன்னும் ஒன்றை உருவாக்கவும். நீங்கள் கீழே உள்ள மூன்று படிகளைப் பின்பற்றலாம். முதல் கட்டளை ஒரு புதிய விசையை உருவாக்குகிறது, இரண்டாவது ஒரு புதிய விசையை ஒரு தனி கோப்பில் ஏற்றுமதி செய்கிறது, மூன்றாவது ஒரு விசையை உங்கள் தனிப்பட்ட விசைக்கு சேர்க்கிறது.

$ gpg --gen-key $ gpg -a --output ~/.gnupg/YOUR_NAME.gpg --export 'YOUR NAME' $ gpg --import ~/.gnupg/YOUR_NAME.gpg 

உருவாக்கும் போது கொடுக்கப்பட்ட பெயர் _YOUR NAME_ சரியானதா என்பதை உறுதிப்படுத்தவும். முதல் பெயர் மற்றும் கடைசி பெயர் ஆகியவற்றின் கலவையைப் பயன்படுத்துவது பொதுவானது. டெபியன் பேக்கேஜின் `கண்ட்ரோல்` கோப்பை உருவாக்கும் போது இந்தப் பெயர் தொகுப்பில் சரியாகவே இருக்க வேண்டும். GPG தொடர்பான கூடுதல் தகவலுக்கு GNU தனியுரிமை கையேட்டைப் பாருங்கள் [gph].

2.2. பேக்கேஜிங் கருவி சங்கிலி

மூலக் குறியீட்டைக் கொண்ட ஒரு டெபியன் தொகுப்பை உருவாக்க, உங்கள் கணினியில் பின்வரும் மென்பொருள் தொகுப்புகள் தேவை:

  • கட்டமைப்பு-அவசியம்
  • ஆட்டோகான்ஃப்
  • ஆட்டோமேக்
  • autotools-dev
  • dh- செய்
  • நீக்குபவர்
  • டிவிஸ்கிரிப்டுகள்
  • fakeroot
  • xutils
  • லிண்டியன்
  • பில்டர்

பயனர் `ரூட்` என நீங்கள் பின்வரும் கட்டளையைப் பயன்படுத்தி நிறுவலாம்:

# apt-get install build-essential autoconf automake autotools-dev dh-make debhelper devscripts fakeroot xutils lintian pbuilder 

2.3. தொகுக்கப்பட வேண்டிய மென்பொருளை தயார் செய்யவும்

தொகுப்பை உருவாக்க நாம் ஒரு கோப்பகத்தை தயார் செய்ய வேண்டும். நாங்கள் தொகுப்பை உருவாக்கும் சூழலைத் தயாரிக்க ஒரு கோப்பகத்தை உருவாக்கவும்:

$ mkdir -p ~./build/helloworld/0.1 

அடைவில் `tar.gz` சுருக்கப்பட்ட காப்பகத்தை நகலெடுக்கவும்:

$ cp helloworld-0.1.tar.gz ~./build/helloworld/0.1 

கோப்பகத்தில் மாற்றவும் மற்றும் தொகுப்பை பிரித்தெடுக்கவும்:

$ cd ~./build/helloworld/0.1 ~/build/helloworld/0.1$ tar -xzf helloworld-0.1.tar.gz 

இப்போது, ​​கோப்பகம் தனி கோப்பகத்தில் மூல குறியீடு மற்றும் சுருக்கப்பட்ட காப்பகம் இரண்டையும் கொண்டுள்ளது:

~/build/helloworld/0.1$ ls helloworld-0.1 helloworld-0.1.tar.gz 

3. Debianization

இந்த கட்டத்தில் டெபியன் தொகுப்புக்கு குறிப்பிட்ட கோப்புகளைச் சேர்ப்போம். அதனால்தான் இந்த படி மென்பொருளின் _Debianization_ என பெயரிடப்பட்டது. இது பல ஒற்றை படிகளில் செய்யப்படுகிறது.

3.1 தொகுப்பு கட்டமைப்பை தயார் செய்யவும்

தொகுப்பின் முழு மூலக் குறியீட்டையும் வைத்திருக்கும் கோப்பகத்திற்கு மாற்றவும். எங்கள் எடுத்துக்காட்டில் தொகுப்பில் `helloworld.py` கோப்பு உள்ளது, மட்டும்:

~$ cd build/helloworld/0.1/helloworld-0.1 ~/build/helloworld/0.1/helloworld-0.1$ ls helloworld.py 

டெபியன் தொகுப்புக்கு குறிப்பிட்ட கோப்புகளைச் சேர்ப்போம். `Dh_make` என்ற கருவி செயல்பாட்டுக்கு வருகிறது. சுவிட்ச் `-e` கொடுக்கப்பட்ட முகவரியை மின்னஞ்சல் முகவரியாகப் பயன்படுத்துகிறது. தொகுப்பை உருவாக்குவது அதற்கு பதிலாக உங்கள் சொந்த மின்னஞ்சல் முகவரியைப் பயன்படுத்துங்கள். உங்கள் ஜிபிஜி விசையுடன் தொடர்புடைய அதே மின்னஞ்சல் முகவரியைப் பயன்படுத்த நினைவில் கொள்ளுங்கள்.

சுவிட்ச் `-f` கொடுக்கப்பட்ட கோப்பை அசல் மூலக் காப்பகமாகப் பயன்படுத்துகிறது, மேலும் தற்போதைய நிரல் மரத்தை` program.orig` க்கு நகலெடுப்பதைத் தவிர்க்கிறது.

~/build/helloworld/0.1/helloworld-0.1$ dh_make -e [email protected] -f ../helloworld-0.1.tar.gz 

உடனடியாக நீங்கள் உருவாக்க வேண்டிய தொகுப்பின் வகையைத் தேர்ந்தெடுக்கும்படி கேட்கப்படுகிறீர்கள். சிங்கிள் பைனரி_ வகை `s` என்பதைத் தேர்ந்தெடுக்க.

Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch? [s/i/m/l/k/n] s Maintainer name : Frank Hofmann Email-Address : [email protected] Date : Sat, 04 Nov 2017 21:16:13 +0100 Package Name : helloworld Version : 0.1 License : blank Type of Package : Single Hit to confirm: Currently there is no top level Makefile. This may require additional tuning. Done. Please edit the files in the debian/ subdirectory now. You should also check that the helloworld Makefiles install into $DESTDIR and not in / . 

இதன் விளைவாக `டெபியன் 'எனப்படும் அடைவு கிடைக்கிறது:

~/build/helloworld/0.1/helloworld-0.1$ ls debian helloworld.py 

இந்த அடைவில் அனைத்து தொகுப்பு-குறிப்பிட்ட கோப்புகளும் உள்ளன.

3.2. கட்டுப்பாட்டு கோப்பை சரிசெய்யவும்

`டெபியன்/கண்ட்ரோல்` கோப்பு, தொகுப்பை உருவாக்க _ தேவைப்படும் சார்புகளை வைத்திருக்கிறது. `Dpkg -depcheck -d. Configure` என்ற கட்டளையைப் பயன்படுத்தி தேவையான அனைத்து தொகுப்புகளுடனும் ஒரு பட்டியலைப் பெறுவீர்கள். எங்கள் விஷயத்தில் பைதான் ஒரு விளக்கமளிக்கப்பட்ட மொழி என்பதால் மேலும் தொகுப்பு தேவையில்லை.

அடுத்து, `டெபியன்/கண்ட்ரோல்` கோப்பைத் திருத்த வேண்டும் மற்றும் தொகுப்பு-குறிப்பிட்ட மதிப்புகளைச் சேர்க்க வேண்டும். எங்கள் உதாரணத்திற்கு இது பின்வருமாறு தெரிகிறது:

Source: helloworld Section: python Priority: optional Maintainer: Frank Hofmann < [email protected] > Build-Depends: debhelper (>= 9) Standards-Version: 3.9.5 Homepage: http://www.efho.de/ #Vcs-Git: git://anonscm.debian.org/collab-maint/helloworld.git #Vcs-Browser: http://anonscm.debian.org/?p=collab-maint/helloworld.git;a=summary Package: helloworld Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, python Description: Prints Hello World in Python Prints Hello World in Python 

3.3. பதிப்புரிமை கோப்பை சரிசெய்யவும்

`டெபியன்/பதிப்புரிமை` கோப்பில் மென்பொருள் தொகுப்புக்கான உரிமத் தகவல் உள்ளது. இது GNU பொது உரிமம் 2 (GPLv2) வழியாக வெளியிட தயாராக உள்ளது. எங்கள் உதாரணத்திற்கு இது பின்வருமாறு தெரிகிறது:

Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: helloworld Source: http://www.efho.de/ Files: debian/* Copyright: 2017 Frank Hofmann < [email protected] > License: GPL-2+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . On Debian systems, the complete text of the GNU General Public License version 2 can be found in '/usr/share/common-licenses/GPL-2'. 

3.4. சேஞ்ச்லாக் கோப்பை சரிசெய்யவும்

பதிப்புரிமை தகவலுக்குப் பிறகு கோப்பு `டெபியன்/சேஞ்ச்லாக்` சரிசெய்யப்பட வேண்டும். எங்கள் எடுத்துக்காட்டில் ஆரம்ப வெளியீட்டின் தகவலைச் சேர்க்கிறோம்.

helloworld (0.1-1) unstable; urgency=low * Initial release -- Frank Hofmann < [email protected] > Sat, 04 Nov 2017 21:16:13 +0100 

இதுவரை எங்களுக்குத் தேவை அவ்வளவுதான் - இப்போது நாம் தொகுப்பை உருவாக்க முடியும்.


4. தொகுப்பை உருவாக்கவும்

தொகுப்பை உருவாக்க நாம் ஒரு கோப்பகத்தை மேலே நகர்த்தி பின்வரும் கட்டளையை இயக்க வேண்டும்:

~/build/helloworld/0.1/helloworld-0.1$ dpkg-buildpackage -rfakeroot

`-Rfakeroot` என்ற விருப்பம்` dpkg-buildpackage` ஐ `fakeroot` என்ற கட்டளையின் உதவியுடன் தனிப்பயனாக்கப்பட்ட பயனராக கட்டளைகளை இயக்க அனுமதிக்கிறது. தொகுப்பைத் தயாரிக்கவும், கோப்புகள் மற்றும் கோப்பகங்களை உருவாக்கவும் இது அவசியம்.
மேலே உள்ள கட்டளை வெளியீடு செய்திகளின் நீண்ட பட்டியலில் விளைகிறது (இங்கே ஒரு ஜெர்மன் மொழி சூழலில் காட்டப்பட்டுள்ளது):

dpkg-buildpackage: Quellpaket helloworld dpkg-buildpackage: Quellpaket helloworld dpkg-buildpackage: Quellversion 0.1-1 dpkg-buildpackage: Quelldistribution unstable dpkg-buildpackage: Quellen geändert durch Frank Hofmann < [email protected] > dpkg-buildpackage: Host-Architektur amd64 dpkg-source --before-build helloworld-0.1 fakeroot debian/rules clean dh clean dh_testdir dh_auto_clean dh_clean dpkg-source -b helloworld-0.1 dpkg-source: Information: Quellformat 3.0 (quilt) wird verwendet dpkg-source: Information: helloworld wird unter Benutzung des existierenden ./helloworld_0.1.orig.tar.gz gebaut dpkg-source: Information: helloworld wird in helloworld_0.1-1.debian.tar.xz gebaut dpkg-source: Information: helloworld wird in helloworld_0.1-1.dsc gebaut debian/rules build dh build dh_testdir dh_auto_configure dh_auto_build dh_auto_test fakeroot debian/rules binary dh binary dh_testroot dh_prep dh_auto_install dh_installdocs dh_installchangelogs dh_perl dh_link dh_compress dh_fixperms dh_strip dh_makeshlibs dh_shlibdeps dh_installdeb dh_gencontrol dpkg-gencontrol: Warnung: Feld Depends von Paket helloworld: unbekannte Substitutionsvariable ${shlibs:Depends} dh_md5sums dh_builddeb dpkg-deb: Paket helloworld wird in ../helloworld_0.1-1_amd64.deb gebaut. dpkg-genchanges <../helloworld_0.1-1_amd64.changes dpkg-genchanges: kompletter Quellcode beim Hochladen hinzufügen dpkg-source --after-build helloworld-0.1 dpkg-buildpackage: Alles hochzuladen (Originalquellen enthalten) signfile helloworld_0.1-1.dsc Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren. Benutzer: 'Frank Hofmann (Hofmann EDV) < [email protected] > ' 4096-Bit RSA Schlüssel, ID D431AC07, erzeugt 2014-09-05 

4.1. தொகுப்பை சரிபார்க்கிறது

வாழ்த்துக்கள் - நீங்கள் ஒரு டெபியன் தொகுப்பை உருவாக்குவதில் வெற்றி பெற்றீர்கள் - ஆம்! இப்போது, ​​தொகுப்பை உற்று நோக்கலாம். இங்கே, `லிண்டியன்` நடைமுறைக்கு வருகிறது. டெபியன் தொகுப்புகள் நிறைவேற்ற வேண்டிய கடுமையான விதிகளுக்கு எதிரான மீறல்களைக் கண்டறிய இந்த கருவி உங்கள் தொகுப்பை சரிபார்க்கிறது.

சோதனைகளை இயக்க பின்வரும் கட்டளையை உள்ளிடவும்:

lintian helloworld_0.1-1_amd64.deb 

கருவி விதி மீறல்களைக் காணவில்லை ஆனால் எழுத்துப் பிழைகள் மற்றும் தவறான எழுத்துக்கள். சுவிட்ச் `–பெடான்டிக்`` லிண்டியன்` வழக்கத்தை விட மிக முக்கியமானதாக இருக்கும்படி கேட்கிறது. நீங்கள் கீழே பார்க்கிறபடி `லிண்டியன்` கொஞ்சம் கோபமாக இருக்கிறது மற்றும் மூன்று எச்சரிக்கைகள் மற்றும் ஒரு பிழையைக் கண்டறிந்துள்ளது.

முதல் எச்சரிக்கையைத் தவிர்த்து, நாம் எளிதாக `லிண்டியன்` ஐ மகிழ்ச்சியடையச் செய்யலாம் மற்றும் விதிமுறைப்படி தொகுப்பு உள்ளடக்கத்தை சரிசெய்யலாம். `புதிய-தொகுப்பு-மூட-ஐடிபி-பிழை` என்ற எச்சரிக்கை என்பது ஐடிபி தொகுப்புக்கு எதிராக பிழை அறிக்கை இல்லை என்று பொருள் (ஐடிபி என்றால் பேக்கேஜ்_என்பது என்று பொருள்). ஒரு வழக்கமான டெபியன் தொகுப்பிற்கு, இந்த மென்பொருளை பேக்கேஜிங் செய்யத் தொடங்குவதை மற்றவர்களுக்கு அறிவிக்க, ஐடிபி தொகுப்புக்கான பிழை அறிக்கை பிழை அறிக்கைக்கு அனுப்பப்பட வேண்டும்.

4.2. எச்சரிக்கை: `readme-debian-contains-debmake-template

கோப்பு `README.Debian` இந்த தொகுப்பு தொடர்பான கூடுதல் குறிப்புகளை வைத்திருக்கும் நோக்கம் கொண்டது. `dh_make` இந்தக் கோப்பை எங்களுக்காக உருவாக்கியது:

helloworld for Debian --------------------- -- Frank Hofmann < [email protected] > Sat, 04 Nov 2017 21:16:13 +0100 

எங்கள் எடுத்துக்காட்டில் எங்களிடம் கூடுதல் தகவல் இல்லை, எனவே கோப்பை நீக்கலாம்.

4.3. எச்சரிக்கை: `விளக்கம்-தொடக்கம்-முன்னணி-இடைவெளிகள்`

`டெபியன்/கண்ட்ரோல்` கோப்பில் உள்ள எங்கள் தொகுப்பின் நீண்ட விளக்கம் ஒற்றை இடத்திற்கு மேல் தொடங்குவதால் இந்த எச்சரிக்கை எழுப்பப்பட்டது. நாம் ஒரு இடத்தை அகற்றியவுடன் எச்சரிக்கை மறைந்துவிடும்.

4.4. பிழை: `விளக்கம்-சுருக்கம்-நகல்`

ஒவ்வொரு தொகுப்புக்கும் `டெபியன்/கண்ட்ரோல்` இல் ஒரு குறுகிய மற்றும் நீண்ட விளக்கம் தேவை. இரண்டு விளக்கங்களும் ஒரே மாதிரியாக இருப்பதால் இந்த பிழை எழுப்பப்பட்டது. நாங்கள் நீண்ட விளக்கத்தை விரிவுபடுத்தியவுடன் பிழை போய்விடும்.


5. இணைப்புகள் மற்றும் குறிப்புகள்

- [ddr] ஆண்ட்ரியாஸ் பார்த், ஆடம் டி கார்லோ, ரஃபால் ஹெர்ட்ஸாக், லூகாஸ் நுஸ்பாம், கிறிஸ்டியன் ஸ்வார்ஸ், இயன் ஜாக்சன்: டெபியன் டெவலப்பரின் குறிப்பு
- [Dnmg] ஜோசிப் ரோடின், ஒசாமு ஆகி: டெபியன் புதிய பராமரிப்பாளர் வழிகாட்டி
- [dpmb] ஆக்செல் பெக்கர்ட், பிராங்க் ஹாஃப்மேன்: டெபியன் தொகுப்பு மேலாண்மை புத்தகம்
- [dpm] டெபியன் கொள்கை கையேடு
- [முடியும்] டெபியன் பேக்கேஜிங் டுடோரியல்
- [gph] GNU தனியுரிமை கையேடு
- [lushpaiPackage] அலெக்ஸ் லுஷ்பாய்: மூலத்திலிருந்து டெபியன் தொகுப்பை உருவாக்குவது எப்படி


6. ஒப்புதல்கள்

ஆசிரியர் நன்றி சொல்ல விரும்புகிறார் ஆக்செல் பெக்கர்ட் மற்றும் ஜெரால்ட் ருப்ரெக்ட் அவர்களின் ஆதரவிற்காகவும், இந்தக் கட்டுரையைத் தயாரிக்கும் போது விமர்சகர்களுக்காகவும்.