Ubuntu буып-түю жөніндегі нұсқаулық

Құжаттама

Дебельпермен орау


[Маңызды]

Талаптар: «Қаптамадан сызықтан» және «дебелпер» және «dh-make» бөлімінен талап

Бумагер ретінде алдыңғы бөлімде жасағандай, сирек пакеттерді нөлден бастап жасайсыз. Мысалы, ережелер файлындағы көптеген тапсырмалар мен ақпарат, мысалы, пакеттерге ортақ болып табылады. Қаптаманы жеңілдету және тиімдірек ету үшін осы тапсырмаларды орындау үшін дебелперді пайдалануыңызға болады. Debhelper - пакетті құру процесін автоматтандыруға мүмкіндік беретін Perl сценарийлерінің жиынтығы (dh_ префиксі бар). Осы сценарийлермен Debian пакетін құру қарапайым болады.

Бұл мысалда біз қайтадан GNU Hello пакетін құрастырамыз, бірақ бұл жолы біздің жұмысымызды Ubuntu hello-debelper пакетімен салыстырамыз. Қайта, сіз жұмыс істейтін каталог жасаңыз:

mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mbk ubuntu cb ubuntu

Содан кейін Ubuntu бастапқы бумасын алыңыз:

apt-get көзі hello-debhelper cd ..

Алдыңғы мысалға ұқсас, біріншіден, біз түпнұсқа (upstream) tarball-ты ашамыз.

tar -xzvf hello-2.1.1.tar.gz

Алдыңғы мысалда көрсетілгендей, жоғары деңгейдегі tarball-ды hello_2.1.1.orig.tar.gz- ге көшірудің орнына, біз жұмыс істеу үшін dh_make-ке рұқсат береміз . Жалғыз нәрсе - бұл бастапқы қапшықты қайта атаңыз, ол - түрінде орналасқан, мұнда packagename кіші әріп. Бұл жағдайда тек қана лақтырылмаған тарфель дұрыс аталатын бастапқы каталогты шығарады, сонда біз оны ауыстыра аламыз:

cd hello-2.1.1

Бастапқы «debianization» жасау үшін біз dh_make пайдалаймыз .

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

dh_make сізден келесі сұрақтарды сұрайды:

Қаптама түрі: бірыңғай екілік, бірнеше екілік, кітапхана, ядро ​​модулі немесе cdbs? [с / м / л / к / б] с
Сервистің аты: Капитан Packager Электрондық пошта: Мекен-жайы: packager@coolness.com Дата: Ср., 6-Apr-2006 10:07:19 -0700 Пакет атауы: hello Версия: 2.1.1 Лицензия: бос Қосылу түрі: жалғыз Хит растау: енгізіңіз


[Сақтық]

Тек dh_make -e бір рет іске қосыңыз. Егер сіз оны жасағаннан кейін қайтадан іске қоссаңыз, ол дұрыс жұмыс істемейді. Егер оны өзгерту немесе қате жібергіңіз келсе, бастапқы каталогты алып тастап, жоғары деңгейдегі жаңғыртуларды жойыңыз. Содан кейін бастапқы каталогқа көшіп, қайталап көріңіз.

Dh_make -e іске қосылуы екі нәрсені жасайды:

« Сәлеметсіздер» бағдарламасы өте күрделі емес, және біз «Бояуды сызып тастау» деп аталатын бөлімде көргеніміздей, орамдаған файлдар негізгі файлдардан әлдеқайда артық емес. Сондықтан, .ex файлдарын алып тастайық :

cd debian rm * .ex * .EX

Сәлеметсіздер ме, сіз де болмайсыз

* Лицензия

* Ubuntu Packaging Guide индексі

README.Debian (бағдарламаның README емес, белгілі Debian мәселелеріне арналған README файлы), dirs ( dh_installdirs қажетті каталогтарды жасау үшін пайдаланылады), құжаттарды (бағдарлама құжаттамасын орнату үшін dh_installdocs арқылы пайдаланылады) немесе info (info орнату үшін dh_installinfo арқылы пайдаланылады) файлдар) Debian каталогына кіреді. Бұл файлдар туралы қосымша ақпарат алу үшін «dh_make мысалы файлдары» бөлімін қараңыз.

Бұл жерде debian каталогында тек қана өзгеріс , сәйкестік , бақылау , авторлық құқық және ережелер файлдары болуы керек. «Накачевое орам» деп аталатын бөліктен тек жаңа файл болып табылады, ол пайдаланылатын Debhelper нұсқасын (бұл жағдайда 4) қамтитын файл.

Бұл жағдайда пакетті сәлемдесу емес, сәлем-дебелпер деген атауды көрсету үшін, өзгерістерді сәл өзгерту керек болады:

hello-debhelper (2.1.1-1) dapper; urgency = low * Бастапқы шығару - Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

Қараушыны пайдалана отырып, басқару элементін өзгерту керек нәрселер - атау (аты-жөні сәлемдесу үшін сәлемхатты алмастырады) және бастапқы қорап үшін Build-Depends өрісіне дебелперді (> = 4.0.0) қосу. Hello-debhelper үшін Ubuntu пакеті келесідей:

Ubuntu hello- debelper пакетінен авторлық құқық файлын және postinst және prerm сценарийлерін көшіруге болады, себебі олар « Құюдан қаптама» бөлімінен бері өзгерген жоқ. Сондай-ақ, біз оны тексере алу үшін ережелер файлын көшіреміз.

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 жолға қарсы).

Debelper нұсқасы келесідей:

#! / usr / bin / make -f pack = hello-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 : dh_testdir dh_clean rm -f build - $ (MAKE) -i distilean орнату: build dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (pack) / usr \ mandir = $ (CURDIR) / debian / $ / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) CC = «$ (CURDIR) / debian / $ (пакет) / usr / share / man \ infodir = (CC) «CFLAGS =» $ (CFLAGS) «

touch build binary-indep: install # Бұл пакетте # қотарылатын архитектура-тәуелсіз файлдар жоқ. Егер олар болса, онда олар жасалды. екілік-arch: install dh_testdir -a dh_testroot -a dh_installdocs -a ЖАҢАЛЫҚТАР dh_installchangelogs -a ChangeLog dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a екілік: екілік-indep екілік- арка .ПИТО: екі жақты бинарлы-аралық бинарлы-таза тазартқыш

Сіз ( dh_testroot ) түбірлік артықшылықтармен ( dh_testroot ) пакеттерді құрастырып, құжаттарды ( dh_installdocs және dh_installchangelogs ) орнатуды және құрылысты ( dh_clean ) кейін тазалауды автоматты түрде өңдейтінін тексеріп, дұрыс каталогта ( dh_testdir ) . Көптеген бумалар әлдеқайда күрделірек, сәлемдесу сценарийлері тапсырмалардың көбін басқарады, өйткені сәлемдесу ережелері файлдары көп болмайды. Debelper сценарийлерінің толық тізімін « Дебелпер сценарийлерінің тізімі» бөлімінен қараңыз. Олар сондай-ақ олардың адам беттерінде жақсы құжатталған. Жоғарыда көрсетілген ережелер файлында қолданылатын əрбір көмекші сценарий үшін адам бетін оқып үйрену пайдалы (олар жақсы жазылған жəне ұзақ емес).