ਊਬੰਤੂ ਪੈਕੇਜ ਗਾਈਡ

ਦਸਤਾਵੇਜ਼

ਡਿੈਬਲਪਰ ਨਾਲ ਪੈਕੇਜਿੰਗ


[ਮਹੱਤਵਪੂਰਨ]

ਲੋੜਾਂ: "ਪੈਚਿੰਗ ਫਾਰ ਸਕ੍ਰੈਚ" ਅਤੇ ਡੀਐਲ-ਡੈਪਰ ਅਤੇ ਡੀ ਐਚ-ਮੇਕ ਸੈਕਸ਼ਨ ਦੀਆਂ ਲੋੜਾਂ

ਇੱਕ ਪੈਕੇਜਰ ਦੇ ਤੌਰ ਤੇ, ਤੁਸੀਂ ਕਦੇ-ਕਦਾਈਂ ਪੈਕੇਜ ਤਿਆਰ ਨਹੀਂ ਕਰ ਸਕਦੇ ਜਿਵੇਂ ਕਿ ਅਸੀਂ ਪਿਛਲੇ ਭਾਗ ਵਿੱਚ ਕੀਤਾ ਹੈ. ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਕਲਪਨਾ ਕਰ ਸਕਦੇ ਹੋ, ਨਿਯਮ ਫਾਇਲ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਕੰਮ ਅਤੇ ਜਾਣਕਾਰੀ, ਉਦਾਹਰਨ ਲਈ, ਪੈਕੇਜਾਂ ਵਿੱਚ ਆਮ ਹੁੰਦੀ ਹੈ. ਪੈਕੇਜਿੰਗ ਨੂੰ ਸੌਖਾ ਅਤੇ ਹੋਰ ਕੁਸ਼ਲ ਬਣਾਉਣ ਲਈ, ਤੁਸੀਂ ਇਹਨਾਂ ਕਾਰਜਾਂ ਲਈ ਮਦਦ ਕਰਨ ਲਈ ਡੀਲਬਰਪਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ. ਡਿੈਬੇਪਰ ਪੇਰਲ ਸਕ੍ਰਿਪਟਾਂ ( dh_ ਨਾਲ ਅਗੇ ਹੋਏ ) ਦਾ ਇੱਕ ਸਮੂਹ ਹੈ ਜੋ ਪੈਕੇਜ-ਨਿਰਮਾਣ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਵੈਚਾਲਤ ਕਰਦਾ ਹੈ. ਇਹਨਾਂ ਸਕਰਿਪਟਾਂ ਦੇ ਨਾਲ, ਇੱਕ ਡੇਬੀਅਨ ਪੈਕੇਜ ਨੂੰ ਬਣਾਉਣਾ ਕਾਫ਼ੀ ਸੌਖਾ ਹੋ ਜਾਂਦਾ ਹੈ.

ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਅਸੀਂ ਦੁਬਾਰਾ ਜੀਐਨਯੂ ਹੈਲੋ ਪੈਕੇਜ ਦਾ ਨਿਰਮਾਣ ਕਰਾਂਗੇ ਪਰੰਤੂ ਇਸ ਵਾਰ ਅਸੀਂ ਆਪਣੇ ਕੰਮ ਦੀ ਤੁਲਨਾ ਊਬੰਟੂ ਹੈਲੋ-ਡੀਬਲਪਰ ਪੈਕੇਜ ਨਾਲ ਕਰਾਂਗੇ . ਦੁਬਾਰਾ, ਉਸ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਬਣਾਓ ਜਿੱਥੇ ਤੁਸੀਂ ਕੰਮ ਕਰੋਂਗੇ.

mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget. http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ਉਬੂਟੂ ਸੀਡੀ ubuntu

ਫਿਰ, ਊਬੰਤੂ ਸਰੋਤ ਪੈਕੇਜ ਪ੍ਰਾਪਤ ਕਰੋ:

apt-get-source hello-debhelper cd ..

ਪਿਛਲੀ ਉਦਾਹਰਨ ਵਾਂਗ, ਪਹਿਲੀ ਚੀਜ਼ ਜੋ ਸਾਨੂੰ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ, ਅਸਲੀ (ਅਪਸਟ੍ਰੀਮ) ਟਾਰਬਾਲ ਖੋਲੋ.

tar -xzvf ਹੈਲੋ -2.1.1.ਟਾਰ ਜੀ. ਜੀ

ਅਪਸਟਰੀਮ ਟਾਰਬਾਲ ਨੂੰ ਨਰਮ ਕਰਨ ਦੀ ਬਜਾਏ hello_2.1.1.orig.tar.gz ਜਿਵੇਂ ਕਿ ਅਸੀਂ ਪਿਛਲੀ ਉਦਾਹਰਨ ਵਿੱਚ ਕੀਤਾ ਸੀ, ਅਸੀਂ dh_make ਨੂੰ ਸਾਡੇ ਲਈ ਕੰਮ ਕਰਨ ਦੇਵਾਂਗੇ. ਸਿਰਫ ਉਹੀ ਚੀਜ ਜੋ ਤੁਸੀਂ ਕਰਨਾ ਹੈ ਉਹ ਸ੍ਰੋਤ ਫੋਲਡਰ ਦਾ ਨਾਂ ਬਦਲਦਾ ਹੈ ਤਾਂ ਕਿ ਇਹ - ਦੇ ਰੂਪ ਵਿੱਚ ਹੋਵੇ ਜਿੱਥੇ ਪੈਕਜਨਾਮੇ ਲੋਅਰਕੇਸ ਹੁੰਦਾ ਹੈ. ਇਸ ਕੇਸ ਵਿੱਚ, ਸਿਰਫ ਟਾਰਬਾਲ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਉਣਾ ਇੱਕ ਸਹੀ ਨਾਂ ਸਰੋਤ ਡਾਇਰੈਕਟਰੀ ਪੈਦਾ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਅਸੀਂ ਇਸਨੂੰ ਵਿੱਚ ਜਾ ਸਕੀਏ:

ਸੀਡੀ ਹੈਲੋ-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] ਸਕਿੰਟ
ਪਰਬੰਧਕ ਦਾ ਨਾਂ: ਕੈਪਟਨ ਪੈਕਜਿਰ ਈਮੇਲ-ਪਤਾ: ਪੈਕਗਰ@ਕੋਲੀਏਸ.ਕਾਉਂਟ ਤਾਰੀਖ: Thu, 6 ਅਪ੍ਰੈਲ 2006 10:07:19 -0700 ਪੈਕੇਜ ਦਾ ਨਾਂ: ਹੈਲੋ ਵਰਜਨ: 2.1.1 ਲਾਇਸੈਂਸ: ਖਾਲੀ ਪੈਕੇਜ ਦਾ ਪ੍ਰਕਾਰ: ਸਿੰਗਲ ਹਿੱਟ <ਐੰਟਆਰ> ਪੁਸ਼ਟੀ ਕਰੋ: ਦਰਜ ਕਰੋ


[ਸਾਵਧਾਨ]

ਸਿਰਫ dh_make -e ਇੱਕ ਵਾਰ ਚਲਾਓ ਜੇ ਤੁਸੀਂ ਇਸ ਨੂੰ ਪਹਿਲੀ ਵਾਰ ਕਰਨ ਤੋਂ ਬਾਅਦ ਇਸ ਨੂੰ ਦੁਬਾਰਾ ਚਲਾਉਂਦੇ ਹੋ, ਇਹ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ. ਜੇ ਤੁਸੀਂ ਇਸ ਨੂੰ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹੋ ਜਾਂ ਗਲਤੀ ਕੀਤੀ ਹੈ, ਤਾਂ ਸਰੋਤ ਡਾਇਰੈਕਟਰੀ ਹਟਾਓ ਅਤੇ ਅੱਪਸਟਰੀਮ ਟਾਰਬਾਲ ਨੂੰ ਦੁਬਾਰਾ ਨਾ ਛੱਡੋ. ਫਿਰ ਤੁਸੀਂ ਸਰੋਤ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਮਾਈਗ੍ਰੇਟ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ.

Dh_make -e ਚੱਲ ਰਿਹਾ ਹੈ ਦੋ ਗੱਲਾਂ:

ਹੈਲੋ ਪ੍ਰੋਗਰਾਮ ਬਹੁਤ ਗੁੰਝਲਦਾਰ ਨਹੀਂ ਹੈ, ਅਤੇ ਜਿਵੇਂ ਕਿ ਅਸੀਂ "ਪੈਕਜਿੰਗ ਟੂ ਫਰੈਚ" ਸੈਕਸ਼ਨ ਵਿੱਚ ਵੇਖਿਆ ਹੈ, ਪੈਕਿੰਗ ਇਸ ਨੂੰ ਬੁਨਿਆਦੀ ਫਾਈਲਾਂ ਤੋਂ ਜਿਆਦਾ ਨਹੀਂ ਲੋੜੀਂਦਾ ਹੈ. ਇਸ ਲਈ, ਆਓ .ex ਫਾਇਲਾਂ ਨੂੰ ਹਟਾ ਦੇਈਏ:

ਸੀ ਡੀ ਡੀਬੀਅਨ ਆਰਐਮ * .ਐਕਸ * .ਐੱਕਸ

ਹੈਲੋ ਲਈ , ਤੁਸੀਂ ਵੀ ਨਹੀਂ ਹੋਵੋਗੇ

* ਲਾਇਸੈਂਸ

* ਉਬਤੂੰ ਪੈਕੇਜਿੰਗ ਗਾਈਡ ਸੂਚੀ-ਪੱਤਰ

ਦੀ ਲੋੜ ਹੈ README.Debian (ਖਾਸ ਡੇਬੀਅਨ ਮੁੱਦੇ ਲਈ README ਫਾਇਲ, ਪਰੋਗਰਾਮ ਦੇ README ਨਹੀਂ), DIR ( dh_installdirs ਦੁਆਰਾ ਲੋੜੀਂਦੀਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ), docs ( dh_installdocs ਦੁਆਰਾ ਪਰੋਗਰਾਮ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ), ਜਾਂ ਜਾਣਕਾਰੀ ( dh_installinfo ਦੁਆਰਾ ਜਾਣਕਾਰੀ ਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਫਾਇਲ) ਫਾਈਲਾਂ ਡੇਬੀਅਨ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਹਨ. ਇਹਨਾਂ ਫਾਈਲਾਂ ਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ "dh_make ਉਦਾਹਰਨ ਫਾਈਲਾਂ" ਵਾਲਾ ਭਾਗ ਦੇਖੋ.

ਇਸ ਮੌਕੇ 'ਤੇ, ਤੁਹਾਨੂੰ ਡੇਬੀਅਨ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸਿਰਫ ਬਦਲਣ , ਕੰਪੈਟ , ਨਿਯੰਤਰਣ , ਕਾਪੀਰਾਈਟ , ਅਤੇ ਨਿਯਮ ਫਾਈਲਾਂ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ. "ਪੈਕੇਜਿੰਗ ਫਰੈਚ ਸਕਰੈਚ" ਸੈਕਸ਼ਨ ਤੋਂ, ਨਵੀਂ ਫਾਇਲ ਇਕ ਹੀ ਹੈ, ਜੋ ਇਕ ਫਾਇਲ ਹੈ ਜਿਸ ਵਿਚ ਡੀਹੋਰਪਰ ਸੰਸਕਰਣ (ਇਸ ਕੇਸ 4 ਵਿਚ) ਵਰਤਿਆ ਗਿਆ ਹੈ.

ਤੁਹਾਨੂੰ ਹਲਕੇ -ਡੈਬਲਰਪਰ ਨੂੰ ਕੇਵਲ ਹੈਲੋ ਦੀ ਬਜਾਏ ਇਸ ਪੈਕੇਜ ਦਾ ਨਾਂ ਦਰਸਾਉਣ ਲਈ ਚੇਜਲੌਗ ਨੂੰ ਇਸ ਸਥਿਤੀ ਵਿੱਚ ਥੋੜ੍ਹਾ ਦਰੁਸਤ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੋਏਗੀ :

ਹੈਲੋ-ਡਿਲਬਰਪਰ (2.1.1-1) ਡਾਪਰ; ਤਾਜ਼ਗੀ = ਘੱਟ * ਸ਼ੁਰੂਆਤੀ ਰਿਲੀਜ਼ - ਕੈਪਟਨ ਪੈਕਰਜ Thu, 6 Apr 2006 10:07:19 -0700

ਡੀਲਬਰਪਰ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ , ਸਿਰਫ ਉਹੀ ਚੀਜ਼ਾਂ ਜੋ ਸਾਨੂੰ ਨਿਯੰਤਰਣ ਵਿੱਚ ਬਦਲਣ ਦੀ ਲੋੜ ਹੈ, ਉਹ ਹੈ ( ਹੈਲੋ-ਡੀਬਲਪਰ ਲਈ ਹੈਲੋ ਬਦਲਣਾ ) ਅਤੇ ਸਰੋਤ ਪੈਕੇਜ ਲਈ ਡਿਬਲਮਾਰਪਰ (> = 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.

ਆਖਰੀ ਫਾਈਲ ਜੋ ਸਾਨੂੰ ਦੇਖਣ ਦੀ ਜ਼ਰੂਰਤ ਹੈ ਉਹ ਨਿਯਮ ਹਨ , ਜਿੱਥੇ ਡੇਬਰਪਰ ਸਕਰਿਪਟ ਦੀ ਸ਼ਕਤੀ ਵੇਖੀ ਜਾ ਸਕਦੀ ਹੈ. ਨਿਯਮਾਂ ਦਾ ਡਿਬਲਵਰ ਵਰਜਨ ਕੁਝ ਹੱਦ ਤੱਕ ਛੋਟਾ ਹੈ (54 ਲਾਈਨਾਂ, ਜੋ ਕਿ "ਨਿਯਮਾਂ" ਵਾਲੇ ਸੈਕਸ਼ਨ ਦੇ ਰੂਪ ਵਿੱਚ 72 ਸਤਰਾਂ ਦੇ ਵਿਰੁੱਧ ਹਨ)

ਡੀਵੈਲਪਰ ਸੰਸਕਰਣ ਇਸ ਤਰ੍ਹਾਂ ਦਿਖਦਾ ਹੈ:

#! / usr / bin / make -f package = ਹੈਲੋ-ਡੀਲਹੈਲਰ ਸੀਸੀ = ਜੀਸੀਐਫ ਸੀ.ਐੱਫ.ਏ.ਜੀ.ਜ਼ = -ਗ -Wall ifeq (, $ (ਲੱਭਣ ਵਾਲਾ ਨੋਪਟ, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 ਸਾਫ਼ : dh_testdir dh_clean rm -f ਬਿਲਡ - $ (ਬਣਾਉਣਾ) - ਇੱਕ ਡਿਸਟਕਲਨ ਇੰਸਟੌਲ ਕਰੋ: ਬਿਲਡ ਡੀ ਐੱਚ_ਕਲੀਨ dh_installdirs $ (ਬਣਾਉਣ) ਪ੍ਰੀਫਿਕਸ = $ (ਕਰਾਰਡ) / ਡੇਬੀਅਨ / $ (ਪੈਕੇਜ) / usr \ mandir = $ (ਕਰਾਰਡ) / ਡੇਬੀਅਨ / $ (ਪੈਕੇਜ) / usr / share / man \ infodir = $ (ਕਰਾਰਡ) / ਡੇਬੀਅਨ / $ (ਪੈਕੇਜ) / usr / share / info \ install ਬਿਲਡ: ./configure --prefix = / usr $ (ਬਣਾਉਣ) ਸੀਸੀ = "$ (ਸੀਸੀ) "CFLAGS =" $ (CFLAGS) "

ਟਚ ਬਾਇਨਰੀ- indep ਨੂੰ ਬਣਾਉ: install # ਇਸ ਪੈਕੇਜ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੇ ਕੋਈ ਵੀ ਆਰਕੀਟੈਕਚਰ-ਅਜ਼ਾਦ ਫਾਈਲਾਂ ਨਹੀਂ ਹਨ. ਜੇ ਕੋਈ ਵੀ ਹੋਵੇ ਤਾਂ ਉਹ ਇੱਥੇ # ਬਣਾਏ ਜਾਣਗੇ. binary-arch: install dh_testdir -a dh_testroot -a dh_installdocs -a NEWS dh_installchangelogs -a ਬਦਲੋਲਾਗ dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol- ਇੱਕ dh_md5sums -a dh_builddeb- ਇੱਕ ਬਾਈਨਰੀ: ਬਾਈਨਰੀ-ਇੰਡਪ ਬਾਈਨਰੀ- arch .ਚੈਨ: ਬਾਇਨਰੀ ਬਾਈਨਰੀ - arch ਬਾਈਨਰੀ - ਇੰਪੈਪ ਸਾਫ ਚੈਰੀਟ

ਧਿਆਨ ਦਿਓ ਕਿ ਜੇ ਤੁਸੀਂ ਸਹੀ ਡਾਇਰੈਕਟਰੀ ( dh_testdir ) ਵਿੱਚ ਹੋ ਤਾਂ ਜਾਂਚ ਕਰਨਾ ਹੈ ਕਿ ਇਹ ਯਕੀਨੀ ਬਣਾ ਰਿਹਾ ਹੈ ਕਿ ਤੁਸੀਂ ਰੂਟ ਅਧਿਕਾਰ ( dh_testroot ) ਦੇ ਨਾਲ ਪੈਕੇਜ ਬਣਾ ਰਹੇ ਹੋ, ਦਸਤਾਵੇਜ਼ ( dh_installdocs ਅਤੇ dh_installchangelogs ) ਨੂੰ ਸਥਾਪਿਤ ਕਰ ਰਹੇ ਹੋ, ਅਤੇ ਬਿਲਡ ( dh_clean ) ਦੇ ਬਾਅਦ ਸਾਫ ਕਰਨ ਲਈ ਆਟੋਮੈਟਿਕ . ਹੈਲੋ ਦੇ ਮੁਕਾਬਲੇ ਬਹੁਤ ਸਾਰੇ ਪੈਕੇਜ ਬਹੁਤ ਗੁੰਝਲਦਾਰ ਹੁੰਦੇ ਹਨ, ਨਿਯਮ ਕੋਈ ਵੱਡੀ ਨਹੀਂ ਹੁੰਦੇ ਕਿਉਂਕਿ ਡਿਬਲਰ ਸਕ੍ਰਿਪਜ਼ ਜ਼ਿਆਦਾਤਰ ਕੰਮ ਕਰਦੇ ਹਨ ਡੈਬਰਪਰ ਸਕ੍ਰਿਪਟਾਂ ਦੀ ਪੂਰੀ ਸੂਚੀ ਲਈ, ਕ੍ਰਿਪਾ ਕਰਕੇ " ਡਿਬਲਫਰ ਸਕ੍ਰਿਪਟਾਂ ਦੀ ਸੂਚੀ" ਨਾਮਕ ਭਾਗ ਦੇਖੋ. ਉਹ ਉਹਨਾਂ ਦੇ ਨਾਲ ਸਬੰਧਤ ਮੈਨ ਪੇਜਾਂ ਵਿੱਚ ਚੰਗੀ ਤਰ੍ਹਾਂ ਦਸਤਾਵੇਜੀ ਰੂਪ ਵਿੱਚ ਦਰਜ਼ ਹੁੰਦੇ ਹਨ. ਉਪਰੋਕਤ ਨਿਯਮ ਫਾਈਲ ਵਿਚ ਵਰਤੀ ਹਰ ਸਹਾਇਕ ਸਕਰਿਪਟ ਲਈ ਇਹ ਮੈਨ ਪੇਜ (ਉਹ ਚੰਗੀ ਤਰ੍ਹਾਂ ਲਿਖਿਆ ਅਤੇ ਲੰਬਾ ਨਹੀਂ ਹੈ) ਨੂੰ ਪੜ੍ਹਨਾ ਇੱਕ ਲਾਭਦਾਇਕ ਅਭਿਆਸ ਹੈ.