ಉಬುಂಟು ಪ್ಯಾಕೇಜಿಂಗ್ ಗೈಡ್

ದಾಖಲೆ

ಡೆಬೆಲ್ಪರ್ನೊಂದಿಗೆ ಪ್ಯಾಕೇಜಿಂಗ್


[ಪ್ರಮುಖ]

ಬೇಡಿಕೆಗಳು: "ಸ್ಕ್ರ್ಯಾಚ್ನಿಂದ ಪ್ಯಾಕೇಜಿಂಗ್" ಎಂಬ ವಿಭಾಗದಿಂದ ಅಗತ್ಯತೆಗಳು ಮತ್ತು ಡೆಬಿಲ್ಪರ್ ಮತ್ತು ಡಿ-ಮೇಕ್

ಒಂದು ಪ್ಯಾಕೇಜರ್ ಆಗಿ, ಹಿಂದಿನ ವಿಭಾಗದಲ್ಲಿ ಮಾಡಿದಂತೆ ನೀವು ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ವಿರಳವಾಗಿ ರಚಿಸುತ್ತೀರಿ. ನೀವು ಊಹಿಸುವಂತೆ, ನಿಯಮಗಳ ಕಡತದಲ್ಲಿನ ಅನೇಕ ಕಾರ್ಯಗಳು ಮತ್ತು ಮಾಹಿತಿಗಳು, ಉದಾಹರಣೆಗೆ, ಪ್ಯಾಕೇಜ್ಗಳಿಗೆ ಸಾಮಾನ್ಯವಾಗಿರುತ್ತವೆ. ಪ್ಯಾಕೇಜಿಂಗ್ ಅನ್ನು ಸುಲಭಗೊಳಿಸಲು ಮತ್ತು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡಲು, ಈ ಕಾರ್ಯಗಳಿಗೆ ಸಹಾಯ ಮಾಡಲು ನೀವು ಡೆಬಿಲ್ಪರ್ ಅನ್ನು ಬಳಸಬಹುದು. ಡೆಬೆಲ್ಪರ್ ಎನ್ನುವುದು ಪ್ಯಾಲ್-ಸ್ಕ್ರಿಪ್ಟುಗಳ ಒಂದು ಸೆಟ್ ( dh_ ನೊಂದಿಗೆ ಪೂರ್ವಪ್ರತ್ಯಯಗೊಂಡಿದೆ ) ಇದು ಪ್ಯಾಕೇಜ್-ನಿರ್ಮಾಣದ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸುತ್ತದೆ. ಈ ಸ್ಕ್ರಿಪ್ಟುಗಳೊಂದಿಗೆ, ಡೆಬಿಯನ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು ತುಂಬಾ ಸರಳವಾಗಿದೆ.

ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ನಾವು ಮತ್ತೆ ಗ್ನೂ ಹಲೋ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತೇವೆ, ಆದರೆ ಈ ಸಮಯದಲ್ಲಿ ನಾವು ಉಬುಂಟು ಹಲೋ-ಡೆಬಲ್ಫೆರ್ ಪ್ಯಾಕೇಜ್ಗೆ ನಮ್ಮ ಕೆಲಸವನ್ನು ಹೋಲಿಸುತ್ತೇವೆ. ಮತ್ತೆ, ನೀವು ಕೆಲಸ ಮಾಡುವ ಒಂದು ಕೋಶವನ್ನು ರಚಿಸಿ:

mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ಉಬುಂಟು ಸಿಡಿ ಉಬುಂಟು

ನಂತರ, ಉಬುಂಟು ಮೂಲ ಪ್ಯಾಕೇಜ್ ಪಡೆಯಿರಿ:

apt-get source hello-debhelper cd ..

ಹಿಂದಿನ ಉದಾಹರಣೆಯಂತೆಯೇ, ನಾವು ಮಾಡಬೇಕಾದ ಮೊದಲ ವಿಷಯವು ಮೂಲ (ಅಪ್ಸ್ಟ್ರೀಮ್) ತಾರಾಬಾಲ್ ಅನ್ನು ಅನ್ಪ್ಯಾಕ್ ಆಗಿದೆ.

tar -xzvf hello-2.1.1.tar.gz

ನಾವು ಹಿಂದಿನ ಉದಾಹರಣೆಯಲ್ಲಿ ಮಾಡಿದಂತೆ ಅಪ್ಸ್ಟ್ರೀಮ್ ಟ್ಯಾಬಲ್ ಅನ್ನು hello_2.1.1.orig.tar.gz ಗೆ ನಕಲಿಸುವ ಬದಲು, ನಾವು ಕೆಲಸ ಮಾಡಲು dh_make ಅನ್ನು ಅನುಮತಿಸುತ್ತೇವೆ. ನೀವು ಮಾಡಬೇಕಾದ ವಿಷಯವೆಂದರೆ ಮೂಲ ಫೋಲ್ಡರ್ ಅನ್ನು ಮರುಹೆಸರಿಸುವುದರಿಂದ ಅದು ರೂಪದಲ್ಲಿದೆ - ಪ್ಯಾಕೇಜಿನೇಮ್ ಸಣ್ಣಕ್ಷರವಾಗಿರುವ . ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಟಾರ್ಬಾಲ್ ಅನ್ನು ಸರಿಯಾಗಿ ಹೆಸರಿಸದೆ ಸರಿಯಾಗಿ ಹೆಸರಿಸಿದ ಮೂಲ ಡೈರೆಕ್ಟರಿಯನ್ನು ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ನಾವು ಅದರೊಳಗೆ ಚಲಿಸಬಹುದು:

cd hello-2.1.1

ಮೂಲದ ಆರಂಭಿಕ "ಡೆಬಿಯಾನೈಸೇಶನ್" ಅನ್ನು ರಚಿಸಲು ನಾವು dh_make ಅನ್ನು ಬಳಸುತ್ತೇವೆ.

dh_make -e your.maintainer@address -f ../hello-2.1.1.tar.gz

dh_make ನಂತರ ನಿಮಗೆ ಪ್ರಶ್ನೆಗಳ ಸರಣಿಯನ್ನು ಕೇಳುತ್ತೇವೆ:

ಪ್ಯಾಕೇಜ್ ಪ್ರಕಾರ: ಏಕ ಬೈನರಿ, ಬಹು ಬೈನರಿ, ಗ್ರಂಥಾಲಯ, ಕರ್ನಲ್ ಮಾಡ್ಯೂಲ್ ಅಥವಾ ಸಿಡಿಬಿಎಸ್? [s / m / l / k / b] s
ಪಾಲಕರ ಹೆಸರು: ಕ್ಯಾಪ್ಟನ್ ಪ್ಯಾಕೇಜರ್ ಇಮೇಲ್-ವಿಳಾಸ: packager@coolness.com ದಿನಾಂಕ: ಥೂ, 6 ಏಪ್ರಿಲ್ 2006 10:07:19 -0700 ಪ್ಯಾಕೇಜ್ ಹೆಸರು: ಹಲೋ ಆವೃತ್ತಿ: 2.1.1 ಪರವಾನಗಿ: ಖಾಲಿ ಪ್ಯಾಕೇಜ್ ಪ್ರಕಾರ: ಏಕ ಹಿಟ್ <ನಮೂದಿಸಿ> ಗೆ ದೃಢೀಕರಿಸಿ: ನಮೂದಿಸಿ


[ಎಚ್ಚರಿಕೆ]

ಒಮ್ಮೆ ಮಾತ್ರ dh_make -e ಅನ್ನು ಚಲಾಯಿಸಿ. ನೀವು ಮೊದಲ ಬಾರಿಗೆ ಇದನ್ನು ಮಾಡಿದ ನಂತರ ನೀವು ಅದನ್ನು ಮತ್ತೆ ಓಡಿಸಿದರೆ, ಅದು ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ. ನೀವು ಇದನ್ನು ಬದಲಾಯಿಸಲು ಬಯಸಿದರೆ ಅಥವಾ ತಪ್ಪು ಮಾಡಿದರೆ, ಮೂಲ ಕೋಶವನ್ನು ತೆಗೆದುಹಾಕಿ ಮತ್ತು ಅಪ್ಸ್ಟ್ರೀಮ್ ಟಾರ್ಬಾಲ್ ಹೊಸದನ್ನು ಅನ್ಟಾರ್ ಮಾಡಿ. ನಂತರ ನೀವು ಮೂಲ ಕೋಶಕ್ಕೆ ವಲಸೆ ಹೋಗಬಹುದು ಮತ್ತು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.

Dh_make -e ರನ್ನಿಂಗ್ ಎರಡು ಕಾರ್ಯಗಳನ್ನು ಮಾಡುತ್ತದೆ:

ಹಲೋ ಪ್ರೊಗ್ರಾಮ್ ಬಹಳ ಸಂಕೀರ್ಣವಾಗಿಲ್ಲ ಮತ್ತು "ಪ್ಯಾಕೇಜಿಂಗ್ ಫ್ರಮ್ ಸ್ಕ್ರ್ಯಾಚ್" ಎಂಬ ವಿಭಾಗದಲ್ಲಿ ನೋಡಿದಂತೆ, ಪ್ಯಾಕೇಜಿಂಗ್ಗೆ ಮೂಲ ಫೈಲ್ಗಳಿಗಿಂತ ಹೆಚ್ಚು ಅಗತ್ಯವಿರುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ನಾವು .ex ಫೈಲ್ಗಳನ್ನು ತೆಗೆದುಹಾಕೋಣ:

ಸಿಡಿ ಡೆಬಿಯನ್ ಆರ್ಎಂ * .ex * .EX

ಹಲೋಗಾಗಿ , ನೀವು ಸಹ ಆಗುವುದಿಲ್ಲ

* ಪರವಾನಗಿ

* ಉಬುಂಟು ಪ್ಯಾಕೇಜಿಂಗ್ ಗೈಡ್ ಸೂಚ್ಯಂಕ

README.Debian (ನಿರ್ದಿಷ್ಟ ಡೆಬಿಯನ್ ಸಮಸ್ಯೆಗಳಿಗೆ README ಫೈಲ್, ಕಾರ್ಯಕ್ರಮದ README ಅಲ್ಲ), ಡಿರ್ಗಳು (ಅಗತ್ಯವಿರುವ ಡೈರೆಕ್ಟರಿಗಳನ್ನು ರಚಿಸಲು dh_installdirs ಬಳಸುತ್ತದೆ), ಡಾಕ್ಸ್ (ಪ್ರೋಗ್ರಾಂ ದಸ್ತಾವೇಜನ್ನು ಸ್ಥಾಪಿಸಲು dh_installdocs ಬಳಸುತ್ತದೆ), ಅಥವಾ ಮಾಹಿತಿಯನ್ನು (ಮಾಹಿತಿಯನ್ನು ಸ್ಥಾಪಿಸಲು dh_installinfo ಬಳಸುತ್ತದೆ) ಕಡತ) ಕಡತಗಳನ್ನು ಡೆಬಿಯನ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ. ಈ ಫೈಲ್ಗಳ ಬಗೆಗಿನ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, "dh_make example files" ಎಂಬ ವಿಭಾಗವನ್ನು ನೋಡಿ.

ಈ ಹಂತದಲ್ಲಿ, ಡೆಬಿಯನ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಚೇಂಜ್ಲಾಗ್ , ಕಾಂಪ್ಯಾಟ್ , ಕಂಟ್ರೋಲ್ , ಕಾಪಿರೈಟ್ ಮತ್ತು ನಿಯಮಗಳು ಫೈಲ್ಗಳನ್ನು ಮಾತ್ರ ನೀವು ಹೊಂದಿರಬೇಕು. "ಸ್ಕ್ರ್ಯಾಚ್ನಿಂದ ಪ್ಯಾಕೇಜಿಂಗ್" ಎಂಬ ವಿಭಾಗದಿಂದ, ಹೊಸದಾಗಿರುವ ಏಕೈಕ ಫೈಲ್ ಕಂಪಟ್ ಆಗಿದೆ, ಇದು ಡೆಬಿಲ್ಪರ್ ಆವೃತ್ತಿಯನ್ನು (ಈ ಸಂದರ್ಭದಲ್ಲಿ 4 ರಲ್ಲಿ) ಒಳಗೊಂಡಿರುವ ಫೈಲ್ ಆಗಿದೆ.

ಈ ಪ್ಯಾಕೇಜ್ಗೆ ಕೇವಲ ಹಲೋಗಿಂತ ಹೆಚ್ಚಾಗಿ ಹಲೋ-ಡಿಬಿಲ್ಪರ್ ಎಂದು ಹೆಸರಿಸುವುದನ್ನು ಪ್ರತಿಫಲಿಸಲು ಈ ಸಂದರ್ಭದಲ್ಲಿ ಚೇಂಜ್ಲಾಗ್ ಅನ್ನು ನೀವು ಹೊಂದಿಸಬೇಕಾಗಿದೆ:

ಹಲೋ-ಡೆಬಲ್ಪರ್ (2.1.1-1) ಡಪ್ಪರ್; ತುರ್ತು = ಕಡಿಮೆ * ಆರಂಭಿಕ ಬಿಡುಗಡೆ - ಕ್ಯಾಪ್ಟನ್ ಪ್ಯಾಕರ್ಜರ್ Thu, 6 ಎಪ್ರಿಲ್ 2006 10:07:19 -0700

ಡೆಬಿಲ್ಪರ್ ಅನ್ನು ಬಳಸುವುದರಿಂದ , ನಾವು ನಿಯಂತ್ರಣದಲ್ಲಿ ಬದಲಾವಣೆ ಮಾಡಬೇಕಾದ ವಿಷಯಗಳು ( hello-debhelper ಗಾಗಿ ಹಲೋ ಬದಲಿಗೆ) ಮತ್ತು ಡೆಬಿಲ್ಪರ್ (> = 4.0.0) ಅನ್ನು ಮೂಲ ಪ್ಯಾಕೇಜ್ಗಾಗಿ ಬಿಲ್ಡ್- ಡಿಪೆಂಟ್ಸ್ ಕ್ಷೇತ್ರಕ್ಕೆ ಸೇರಿಸುವುದು. ಹಲೋ-ದೇಹಪಾತ್ರೆಗಾಗಿ ಉಬುಂಟು ಪ್ಯಾಕೇಜ್ ಕಾಣುತ್ತದೆ:

ಉಬುಂಟು ಹಲೋ-ಡೆಬಲ್ಫೆರ್ ಪ್ಯಾಕೇಜ್ನಿಂದ ನಾವು ಕೃತಿಸ್ವಾಮ್ಯ ಫೈಲ್ ಮತ್ತು ಪೋಸ್ಟ್ನ್ಸ್ ಮತ್ತು ಪ್ರಿರ್ಮ್ ಸ್ಕ್ರಿಪ್ಟುಗಳನ್ನು ನಕಲಿಸಬಹುದು , ಏಕೆಂದರೆ "ಸ್ಕ್ರ್ಯಾಚ್ನಿಂದ ಪ್ಯಾಕೇಜಿಂಗ್" ಎಂಬ ವಿಭಾಗದಿಂದ ಬದಲಾಯಿಸಲಾಗಿಲ್ಲ. ನಾವು ನಿಯಮಗಳ ಫೈಲ್ ಅನ್ನು ಕೂಡಾ ನಕಲಿಸುತ್ತೇವೆ ಆದ್ದರಿಂದ ನಾವು ಇದನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.

cp ../../ubuntu/hello-debhelper-2.1.1/debian/copyright. cp ../../ubuntu/hello-debhelper-2.1.1/debian/postinst. cp ../../ubuntu/hello-debhelper-2.1.1/debian/prerm. cp ../../ubuntu/hello-debhelper-2.1.1/debian/rules.

ನಾವು ನೋಡಬೇಕಾದ ಕೊನೆಯ ಫೈಲ್ ನಿಯಮಗಳು , ಅಲ್ಲಿ ಡೆಬಿಲ್ಪರ್ ಸ್ಕ್ರಿಪ್ಟುಗಳ ಶಕ್ತಿಯನ್ನು ನೋಡಬಹುದು. ನಿಯಮಗಳ ಡೆಬಿಲ್ಪರ್ ಆವೃತ್ತಿಯು ಸ್ವಲ್ಪ ಚಿಕ್ಕದಾಗಿರುತ್ತದೆ ("ನಿಯಮಗಳನ್ನು" ಎಂದು ಕರೆಯಲಾಗುವ ವಿಭಾಗದಿಂದ 72 ಸಾಲುಗಳನ್ನು ವಿರೋಧಿಸುವ 54 ಸಾಲುಗಳು).

ಡೆಬಿಲ್ಪರ್ ಆವೃತ್ತಿ ಕಾಣುತ್ತದೆ:

#! / usr / bin / make -f package = hello-debhelper CC = gcc CFLAGS = -g -all ifeq (, $ $ ಫೈಸ್ಟ್ಸ್ಟ್ರಿಂಗ್ ನೋಪ್ಟ್, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif # export DH_VERBOSE = 1 ಕ್ಲೀನ್ : dh_testdir dh_clean rm -f build - $ (MAKE) -ಅನುಗುಣವಾದ ಅನುಸ್ಥಾಪನೆ: ನಿರ್ಮಿಸಲು dh_clean dh_installdirs $ (MAKE) ಪೂರ್ವಪ್ರತ್ಯಯ = $ (CURDIR) / debian / $ (ಪ್ಯಾಕೇಜ್) / usr \ mandir = $ (CURDIR) / debian / $ (ಪ್ಯಾಕೇಜ್) / usr / share / man \ infodir = $ (CURDIR) / ಡೆಬಿಯನ್ / $ (ಪ್ಯಾಕೇಜ್) / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) CC = "$ (ಸಿಸಿ) "CFLAGS =" $ (ಸಿಎಫ್ಎಲ್ಜಿಎಸ್) "

ಟಚ್ ಬಿಲ್ಡ್ ಬೈನರಿ-ಇಂಡೆಪ್: ಇನ್ಸ್ಟಾಲ್ # ಈ ಪ್ಯಾಕೇಜ್ನಿಂದ ರಚಿಸಲಾದ # ಆರ್ಕಿಟೆಕ್ಚರ್-ಸ್ವತಂತ್ರ ಫೈಲ್ಗಳನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಲು ಇಲ್ಲ. ಯಾವುದಾದರೂ ಇದ್ದರೆ ಅವರು # ಇಲ್ಲಿ ಮಾಡಲಾಗುವುದು. ಬೈನರಿ-ಕಮಾನು: ಅನುಸ್ಥಾಪಿಸಲು dh_testdir -a dh_testroot -a dh_installdocs -a ನ್ಯೂಸ್ dh_installchangelogs- ಒಂದು ಚೇಂಜ್ಲಾಗ್ dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary: ಬೈನರಿ-ಇಂಡಿಪ್ ಬೈನರಿ- ಕಮಾನು .ಹನಿ: ಬೈನರಿ ಬೈನರಿ-ಕಮಾನು ಬೈನರಿ-ಇಂಡೆಪ್ ಕ್ಲೀನ್ ಚೆಕ್ರೂಟ್

ನೀವು ಸರಿಯಾದ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ( dh_testdir ) ಇದ್ದರೆ, ನೀವು ಪ್ಯಾಕೇಜ್ ಅನ್ನು ರೂಟ್ ಸವಲತ್ತುಗಳೊಂದಿಗೆ ( dh_testroot ) ನಿರ್ಮಿಸುತ್ತಿದ್ದೀರಾ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ, ದಸ್ತಾವೇಜನ್ನು ( dh_installdocs ಮತ್ತು dh_installchangelogs ) ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು ಮತ್ತು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಮಿಸಿದ ನಂತರ ( dh_clean ) ಅನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸುವ ಕಾರ್ಯಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ , . ಹಲೋಗಿಂತ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಅನೇಕ ಪ್ಯಾಕೇಜ್ಗಳು ನಿಯಮಗಳು ಫೈಲ್ಗಳನ್ನು ದೊಡ್ಡದಾಗಿರುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಡೆಬಿಲ್ಪರ್ ಲಿಪಿಗಳು ಹೆಚ್ಚಿನ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ. ಡೆಬಿಲ್ಪರ್ ಲಿಪಿಯ ಸಂಪೂರ್ಣ ಪಟ್ಟಿಗಾಗಿ, ದಯವಿಟ್ಟು " ಡೆಬಿಲ್ಪರ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳ ಪಟ್ಟಿ" ಎಂಬ ವಿಭಾಗವನ್ನು ನೋಡಿ. ಅವುಗಳು ತಮ್ಮ ಮನುಷ್ಯ ಪುಟಗಳಲ್ಲಿ ಉತ್ತಮವಾಗಿ ದಾಖಲಿಸಲ್ಪಟ್ಟಿವೆ. ಮೇಲಿನ ನಿಯಮ ಫೈಲ್ನಲ್ಲಿ ಬಳಸಿದ ಪ್ರತಿ ಸಹಾಯಕ ಸ್ಕ್ರಿಪ್ಟ್ಗಾಗಿ ಮ್ಯಾನ್ ಪುಟವನ್ನು (ಅವು ಚೆನ್ನಾಗಿ ಬರೆದು ಉದ್ದವಾಗಿಲ್ಲ) ಓದಲು ಒಂದು ಉಪಯುಕ್ತ ವ್ಯಾಯಾಮವಾಗಿದೆ.