Deb paketlar yaratish uchun dastur. Linuxda Checkinstall yordamida RPM yoki DEB paketlarini yaratish

Uy / Operatsion tizimlar

deb fayl formatdagi arxivdir ar o'z ichiga olgan o'rnatish fayllari dasturlar, dastur haqida ma'lumot, shuningdek skriptlar ( ommaviy ish fayllari), dasturni o'rnatish va o'chirishdan oldin va keyin amalga oshiriladi (skriptlarning mavjudligi majburiy emas - ular paketning bir qismi bo'lmasligi mumkin).

deb fayl formati deb(5) man sahifalarida tasvirlangan - bu yordam terminalda man deb yozsangiz ko'rsatiladi. Bundan tashqari, Internetda ushbu ma'lumotni o'z ichiga olgan juda ko'p sahifalar mavjud - ularni topish uchun deb(5) ni qidiring. Bu qoʻllanma bu yerga kiritilmagan, chunki rasmiy Debian Developers Guide, Package Format Help (ushbu qoʻllanmani yozish vaqtida http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics manzilida joylashgan). en.html) paketlar formati o'zgarishi mumkinligi yozilgan va shuning uchun ular bilan ishlash uchun dpkg-deb yordam dasturidan foydalanish tavsiya etiladi. Dpkg-deb yordam dasturi bilan ishlash bo'yicha yordamni terminalda man dpkg-deb buyrug'ini kiritish orqali olish mumkin.

GUI-deb dasturi kerakli ma'lumotlarni o'z ichiga olgan katalog yaratish va dpkg-deb dasturini ishga tushirish orqali ishlaydi, bu katalog va boshqa kerakli parametrlarni ko'rsatadi.

O'rnatish paketini yaratish uchun dpkg-deb uchun to'g'ri katalog birinchi navbatda "DEBIAN" pastki katalogini o'z ichiga olishi kerak. Ushbu katalog tizimga ko'chirilmagan, lekin to'g'ridan-to'g'ri paketlar bilan ishlash dasturlari tomonidan ishlatiladigan barcha ma'lumotlarni o'z ichiga olishi kerak - paket haqida ma'lumot, o'rnatishdan oldin va keyin bajarilgan skriptlar va boshqalar. DEBIAN katalogidagi har qanday fayllar paket o'rnatilganda paket o'rnatilgan kompyuterning fayl tizimiga qo'shilmaydi.

"DEBIAN" katalogidan tashqarida paket o'rnatiladigan kompyuterning fayl tizimiga nusxalanadigan fayllar mavjud. Fayllar paketni o'rnatishda joylashtiriladigan kataloglarda joylashgan bo'lishi kerak. Ya'ni, dpkg-deb uchun yaratilgan katalog ichida fayl tizimining bizga kerak bo'lgan qismlarining nusxasi yaratilishi kerak - go'yo bu katalog uning ildizi ("/"). Ya'ni, masalan, paket yaratiladigan katalogning nomi "~/TMP_DEBS/MyProgram" bo'lsa va o'rnatishda buni qilish kerak bo'lsa. fayl tizimi"MyProgram.png" fayli "/usr/share/pixmaps" katalogiga yozilgan - siz "~/TMP_DEBS/MyProgram" katalogida "usr" katalogini yaratishingiz kerak, unda - "share" katalogi, "share" ichida - "pixmaps" katalogi ", va "MyProgram.png" faylini "pixmaps" katalogiga joylashtiring. Natijada, faylga to'liq yo'l "~/TMP_DEBS/MyProgram/usr/share/pixmaps/MyProgram.png" bo'ladi. Paket yaratishda "~/TMP_DEBS/MyProgram" katalogining bir qismi uzilib qoladi va o'rnatish vaqtida "MyProgram.png" fayli kerakli "/usr/share/pixmaps" manzilida tugaydi. Shunday qilib, har bir fayl uchun kerakli kataloglar yaratilishi kerak.

Katalogni yaratgandan so'ng, kerakli parametrlarni o'tkazib, dpkg-deb dasturini ishga tushirish qoladi. Paketlarni qurish uchun eng kerakli dpkg-deb parametrlari "dpkg-deb yordam dasturi uchun buyruq qatori parametrlari" bo'limida tasvirlangan. Nazorat faylida xatolik bo'lmasa, o'rnatish paketi yaratiladi.

Paketlar ro'yxatini yarating:

$dpkg-skaner paketlari. /dev/null | gzip -9c > ./Packages.gz
Bizga quyidagi kabi xabar kelishi mumkin:

Dpkg-scanpackages: ogohlantirish: Arxivdagi paketlar, lekin bekor qilingan faylda yoʻq: dpkg-scanpackages: ogohlantirish: fossil linux-headers-3.8.0-avl9-pae linux-image-3.8.0-avl9-pae pdfsam sublimetext virtualbox-4.2 xserver -xorg-input-wacom zotero dpkg-scanpackages: ma'lumot: Paketlar faylini chiqarish uchun 8 ta yozuv yozildi.
Hozir bizning omborimizda 8 ta paket mavjud. Ajoyib, keling, omborimizni faylga qo'shamiz:

qator kabi:

Deb fayli:///home/username/zips/virensdebianrepository ./
Endi siz paketlar ro'yxatini o'rnatish uchun mavjud bo'lishi uchun yangilashingiz kerak:

Hammasi shunday, endi siz har doimgidek yangi yig'ilgan Sublime Text 2 matn muharririni (ajoyib ko'rsatmalar) o'rnatishingiz mumkin: Endi SublimeText-ni o'rnatish uchun quyidagilarni bajaring:
# apt-get install sublimetext

Paket roʻyxatlarini oʻqish... Bajarildi Bogʻliqlik daraxtini qurish holati haqida maʼlumotni oʻqish... Bajarildi Quyidagi YANGI paketlar oʻrnatiladi: sublimetext 0 ta yangilangan, 1 ta yangi oʻrnatilgan, 0 ta oʻchirish va 245 ta yangilanmagan.

0 B/11,4 MB arxivni olish kerak.

Ushbu operatsiyadan keyin 17,4 MB qo'shimcha disk maydoni ishlatiladi.

OGOHLANTIRISH: Quyidagi paketlarni autentifikatsiya qilib bo'lmaydi! sublimetext Ushbu paketlarni tekshirishsiz o'rnating? Y Oldindan tanlanmagan paket sublimetextni tanlash.(Ma'lumotlar bazasini o'qish ... Hozirda o'rnatilgan 247813 fayl va kataloglar.) Sublimetextni ochish (..././sublimetext_2.0.2_i386.deb dan) ... Sublimetext (2.0.2) o'rnatilmoqda ... Hammasi, paket paketdan chiqariladi va o'rnatiladi va uning mahalliy ombordan ekanligini bu erda ko'rish mumkin: (..././sublimetext_2.0.2_i386.deb dan)

Xulosa

Ushbu postda tasvirlangan retseptlar tez ovqatlar, truffles bilan foie gras emas. Katta omborlar yoki murakkab paketlar uchun siz hali ham hujjatlar va qo'llanmalarni o'qib chiqishingiz kerak bo'ladi. Siz nafaqat omborlarni yaratishingiz, balki ularni CD/DVD disklariga yozishingiz mumkin bo'lgan dasturdan ham foydalanishingiz mumkin.

O'rtoqga alohida rahmat.
miya oqimi

, PRE muhitini ko'rsatishda postdagi xatoga ishora qilgan. Bu pandoc kabi Haskell hunarmandlariga ishonganingizda sodir bo'ladi :-)

Ushbu postda tasvirlangan retseptlar tez ovqatlar, truffles bilan foie gras emas. Katta omborlar yoki murakkab paketlar uchun siz hali ham hujjatlar va qo'llanmalarni o'qib chiqishingiz kerak bo'ladi. Siz nafaqat omborlarni yaratishingiz, balki ularni CD/DVD disklariga yozishingiz mumkin bo'lgan dasturdan ham foydalanishingiz mumkin.

Ha, agar qo'shadigan biror narsangiz bo'lsa, sharhlarda yozing, lekin shuni yodda tutingki, bu Debian qadoqlash bo'yicha ko'rsatmalarni va boshqa kvant fizikasini qayta o'qishga hojat qoldirmasdan, tezkor xabardir.
Anonim izohlar...

Ushbu postda tasvirlangan retseptlar tez ovqatlar, truffles bilan foie gras emas. Katta omborlar yoki murakkab paketlar uchun siz hali ham hujjatlar va qo'llanmalarni o'qib chiqishingiz kerak bo'ladi. Siz nafaqat omborlarni yaratishingiz, balki ularni CD/DVD disklariga yozishingiz mumkin bo'lgan dasturdan ham foydalanishingiz mumkin.

Matningizda xatolik bor:

"Endi, Skype-ni o'rnatish uchun quyidagilarni bajaring:

# apt-get install sublimetext "

Paketlarni dpkg-deb yordamida ochishingiz mumkin:

2. Siz yig'dingiz, o'rnatdingiz va hammasi shu deb o'ylaysizmi? Bunday omad yo'q, yaxshi qobiliyat boshqa narsalarni o'rnatishda paketni do'zaxga yo'q qilishi mumkin. Bu tuyg'uni bilasizmi: qanday qilib? Qayerda? Nima? Men bu paketni allaqachon o'rnatdim !!! Xo'sh, bu uning qobiliyati - u butunlay pravoslav, ya'ni u patriarxal va erkin fikrlashga yo'l qo'ymaydi.

3. Shuning uchun shoshilinch manevr kerak: qobiliyatni ushlab turish paketi. "Nima, u yaxshi ushlab turadimi?" (c) Chunki bundan buyon qobiliyat sizning paketingizni yo'q qilmasdan bog'liqliklarni hal qila olmasligidan shikoyat qiladi.

4. Shu payt asablarim bo'shashib ketdi... Va men Gentoni kashf qildim va sochlarim yana yumshoq va ipakdek bo'lib qoldi!

"Endi, Skype-ni o'rnatish uchun quyidagilarni bajaring:

@iv_vl izohlari...
Va men Gentooni va sochlarimni kashf qildim ...
Gentaning shafqatsiz piari?! IN meniki blog??? Buning iloji yo'q! ;-)

1. Deb to'plamida ta'minotchi va boshqa bema'ni gaplar bo'lishi kerak
Standart siyosat - buzilgan paket uchun kimning yuziga urish kerakligini bilishingiz kerak :-) Va keyin, bu RPM fedora va zyuzalarda sodir bo'ladigan to'shakka qaraganda yaxshiroq.

2. Siz yig'dingiz, o'rnatdingiz va hammasi shu deb o'ylaysizmi? Bunday omad yo'q, yaxshi qobiliyat boshqa narsalarni o'rnatishda paketni do'zaxga yo'q qilishi mumkin.
Faqat paketni qo'ysangiz eski versiya- masalan, men Lenny-dan o'rnatgan IceWM-ni ushlab oldim (ahmoq xizmatchi Squeeze-ga muzni singan patnis bilan to'ldirgan). Qobiliyat, agar biror narsa bo'lsa, bunday manevrlardan oldin sizni ogohlantiradi.

3. Shuning uchun, zudlik bilan manevr kerak: aptitude hold package.... qobiliyat qaramliklarni hal qila olmasligiga qasam ichadi.
Bu yolg'on va provokatsiya: agar siz gcc yoki glibc kabi biror narsani ushlab turmagan bo'lsangiz, u odatdagidek bog'liqliklarni hal qiladi. "Xo'sh, qila olmadim, qila olmadim" tarzida darhol taslim bo'lishni yaxshi ko'radigan RPMlardan farqli o'laroq :-)

Qaramlikni hal qilish bilan bog'liq muammolar bo'lishi mumkin, bu haqiqat, lekin Genta yangi KDE yuklab olish tugashini kutib, protsessorda pastırma va tuxumni qovurishdan ko'ra yaxshiroqdir...

4. Shu payt asablarim bo'shashib ketdi...
Qandaydir tarzda siz tezda hayratda qoldingiz. Aytgancha, Gentdagi qaramliklar haqida nima deyish mumkin? Har safar aksirganingizda yo'tal bilan qanday yashaysiz?
Men shuni aytmoqchimanki...trolling uchun emas...odamlar manfaatdor.

iv_vl

Chiroyli tilga o'ting. Uning super kuchlaridan biri hamma narsani bitta binarga to'plash qobiliyatidir. Va bu juda qulay, siz bu faylni hamma joyda olib yurishingiz va uni istalgan mashinada ishlatishingiz mumkin. Lekin men dasturimizni oddiy tarzda o'rnatishni xohlayman.

Deb paketlari yordamida siz serverlaringizga joylashtirishni osongina tashkil qilishingiz mumkin. Shu bilan birga, sizda versiya va boshqa narsalar bo'ladi. Men ko'pincha ubuntu'dan foydalanaman, shuning uchun biz apt yordam dasturlari yordamida o'rnatilishi/o'chirilishi mumkin bo'lgan deb paketlari haqida alohida gaplashamiz.

Paketlar bilan o'z omboringizni yaratish uchun nima qilish kerak? Masalan, xuddi shu launchpad.net dan foydalanishingiz mumkin. Lekin, yaqinda, u juda yaxshi rivojlanmaydi va ishonchsiz ko'rinadi. Bundan tashqari, uni notijorat ishlanmalaringiz uchun ishlatish qulay, ammo uni korporativ dasturiy ta'minotni tarqatish uchun ishlatish muammoli bo'ladi.

Keling, muammoga boshqa tomondan yondashaylik. Birinchidan, biz deb paketlarini yig'ishimiz kerak va buni dpkg-deb yordam dasturi yordamida o'zimiz qilish juda oson. Ikkinchidan, biz ushbu paketlarni biron bir joyga joylashtirishimiz kerak va buning uchun biz super oddiydan foydalanamiz

Qurilish paketlari

Men foydalanadigan barcha loyihalarim uchun. Loyihaning tuzilishi quyidagicha ko'rinadi:

Loyiha/ |- bin/ | |- loyiha |- src/ | |- github.com/ | |- 4gophers/ | |- loyiha/ | |- main.go |- sotuvchi/

Gb build-ni ishga tushirganimda, barcha ikkilik fayllar bin papkasida qurilgan. Shunday qilib, bizga kerak bo'lgan narsa - kelajakdagi deb to'plamining spetsifikatsiyasini to'g'ridan-to'g'ri loyiha papkasiga qo'shish:

Mkdir loyihasi/DEBIAN sensorli loyihasi/DEBIAN/control

Natijada quyidagi tuzilma bo'ladi:

Loyiha/ |- DEBIAN/ | |- nazorat |- bin/ | |- loyiha |- src/ |- sotuvchi/

Boshqaruv faylida biz paketimiz haqidagi ma'lumotlarni ko'rsatishimiz kerak. Bo'sh oxirgi qatorni unutmang:

Paket: loyiha ustuvorligi: ixtiyoriy Bo'lim: devel O'rnatilgan o'lcham: 100 Ta'minotchi: Ivan Ivanov Arxitektura: i386 Versiya: 1.0 Bogʻliq: libc6 (>= 2.1) Tavsif: Qisqacha tavsifi bu yerda Uzoq tavsifi bu yerda

  • Paket - paketingiz nomi
  • Prioritet - paket ustuvorligi (ixtiyoriy, qo'shimcha, standart, muhim, zarur) oddiy dasturlar uchun ixtiyoriy ravishda o'rnatish yaxshiroqdir
  • Bo'lim - u tegishli bo'lim bu paket(administrator, tayanch, xabar, hissa, devel, doc, muharrirlar, elektronika, oʻrnatilgan, oʻyinlar, gnome, grafikalar, hamradio, tarjimonlar, kde, libs, libdevel, pochta, matematika, boshqa, net, yangiliklar, bepul, oldlibs , otherosfs, perl, python, fan, shells, sound, tex, text, utils, web, x11)
  • O'rnatilgan o'lcham - paketli fayllar hajmi kilobaytlarda
  • Maintainer - paket yaratuvchisining nomi va elektron pochtasi
  • Arxitektura - paket mo'ljallangan protsessor arxitekturasi (i386, amd64, hammasi, manba, barchasi)
  • Versiya - paket versiyasi
  • Bog'liq - bu maydonda paketingiz bog'liq bo'lgan paketlar nomlarini ko'rsatishingiz kerak (masalan, kutubxonalar)
  • Tavsif - birinchi qatorda biz paketning qisqacha tavsifini yozamiz, qolganlarida batafsilroq

Loyiha papkasidagi hamma narsa paketga tushadi. Va bin papkasi ham. Ushbu papkada o'rnatilishi kerak bo'lgan ikkilik faylimiz mavjud. Fayllaringiz foydalanuvchi kompyuteridagi kerakli katalogga tushishi uchun loyiha papkasida tegishli katalog strukturasini yaratishingiz kerak.

Shuni ta'kidlash kerakki, deb paketlarni yaratishga bunday yondashuv eng to'g'ri emas. Albatta, bizning holatlarimizda biz bu qadamni ongli ravishda qilamiz, lekin siz deb to'plami loyiha papkasining barcha mazmunini, shu jumladan src, vendor va hokazo papkalarni o'z ichiga olishini tushunishingiz kerak. Albatta, siz fayllarni boshqa papkaga nusxalashingiz va hatto buning uchun skript yozishingiz mumkin, ammo hamma narsa bizdan oldin ixtiro qilingan. Ko'proq to'g'ri yo'l- bu dh_make va dpkg-buildpackage yordam dasturlaridan foydalanish.

Endi siz paketni yig'ishingiz mumkin. Buning uchun buyruqni bir daraja yuqoriroq bajaring:

Dpkg-deb -z8 -Zgzip --build loyihasi

Bir daraja yuqoriga, buyruq yordamida o'rnatilishi mumkin bo'lgan project.deb fayli yaratiladi:

Sudo dpkg -i project.deb

O'zingizning paketlar omboringiz

Endi qiziqarli qismga o'tamiz. Paketlarimizni qanday tarqatamiz? Keling, o'zimizning ombor serverimizni ishga tushiraylik, albatta. Buning uchun biz deb-simple apt repository serveridan foydalanamiz.

Bu faqat bitta buyruq bilan o'rnatilishi mumkin bo'lgan juda oddiy server:

github.com/esell/deb-simple saytiga kiring

Agar serverni omborlar bilan ishga tushirmoqchi bo'lgan mashinada go o'rnatilmagan bo'lsa, siz ikkilik faylni mahalliy sifatida qurishingiz va uni oddiygina nusxalashingiz mumkin. Shu bilan bir qatorda siz docker-dan foydalanishingiz mumkin.

Keyin serverni ishga tushirishingiz kerak. Buni docker yordamida qilish mumkin, lekin men supervisordan foydalanishni afzal ko'raman. Mana mening xizmat konfiguratsiyasiga misol:

Buyruq=/home/user/go1.5/bin/deb-simple katalogi=/home/user/deb-simple/ autorestart=true stdout_logfile=none

Bu erda biz konfiguratsiyani joylashtiradigan ikkilik (buyruq) va ishchi papkaga (katalog) yo'lni ko'rsatish muhimdir.

Deb-oddiy server https-ni qo'llab-quvvatlaydi, ammo bizga hali kerak emas. Repozitariylar uchun siz repo papkasini yaratishingiz kerak. Bizning conf.json konfiguratsiyasi quyidagicha ko'rinadi:

( "listenPort" : "9090", "rootRepoPath" : "/home/user/deb-simple/repo", "supportedArch" : ["all","i386","amd64"], "enableSSL" : noto'g'ri, "SSLcert" : "server.crt", "SSLkey" : "server.key" )

Paketni omboringizga yuklash uchun siz xizmatning HTTP API-dan foydalanishingiz kerak:

Curl -XPOST "http://localhost:9090/upload?arch=amd64" -F " [elektron pochta himoyalangan]"

Xuddi shunday o'chirish uchun:

Curl -XDELETE "http://localhost:9090/delete" -d "("filename":"project.deb","arch":"amd64")"

Biz qilishimiz kerak bo'lgan narsa - bizning ombor serverimizni /etc/apt/source.list.d/ ro'yxatiga qo'shish. Siz yaratishingiz mumkin alohida fayl mazmuni bilan:

Deb http://my-hostname:9090/ barqaror asosiy

Endi sudo apt-get update-ni ishga tushiring va dasturlaringizni o'zingizning xohishingizga ko'ra o'rnating.


Muallif: Maykl Rid
Nashr qilingan sana: 2014 yil 4 yanvar
Tarjimasi: N. Romodanov
O'tkazish sanasi: 2014 yil iyun

Biz sizga tarqatish uchun ikkita eng keng tarqalgan Linux paketlarini qanday yaratishni aytib beramiz dasturiy ta'minot, va siz o'zingizning paketlaringizni o'zingiz tarqatishingiz mumkin.

Biz sizga ikkita eng mashhur paketli tizimlar, DEB va RPM uchun dasturiy paketlarni yaratish jarayonini ko'rsatamiz. Siz o'zingizning dasturiy ta'minotingizni paketlash uchun ushbu usullardan foydalanishingiz yoki hatto radar ostida uchayotganini his qilayotgan dasturiy ta'minot paketlarini saqlashingiz mumkin.

Biz Debian-dan olingan distribyutsiyalar uchun DEB ((.deb) fayllarini yaratish bo'yicha qo'llanmadan boshlaymiz - buning uchun biz Xubuntu'dan baza sifatida foydalanamiz. Shundan so'ng Red Hat'da foydalanish uchun RPM paketlarini yaratish uchun zarur bo'lgan usullarni batafsil bayon qilamiz. -almashtirilgan distributivlar va buning uchun biz Fedora-dan foydalanamiz. Ko'pincha bitta distributivda paket yaratish va keyin uni tegishli distributorga o'rnatish mumkin (masalan, Ubuntu>Debian), lekin agar bu muhim bo'lsa, sinab ko'rishingiz mumkin. o'zingiz.

Dasturga kelsak, biz manba kodidan tuzilgan namuna paketi sifatida engil veb-brauzer Dillodan foydalanamiz. Manbadan qurishda, agar qurish kutilganidek ishlamasa, siz odatdagidek Internetda echimlarni izlashingiz mumkin. Misol uchun, Dillo 3.0.3 misolida, manba kodi arxividagi kuzatuv tufayli, buyruqlar ishlashi uchun biz qurish buyruqlaridan oldin "LIBS = -lX11" ni qo'shishimiz kerak edi.

Qurilish buyruq satrida amalga oshiriladi

Resurslar

O'rnatish (yoki virtual mashina) Ubuntu va Fedora

Bosqichma-bosqich tavsif

01-qadam: Virtual mashinadan foydalanish

VirtualBox yoki Vmware kabi virtualizatsiya vositalaridan foydalanish ko'pincha boshqa tizimlar uchun paketlarni yaratishda eng yaxshi yondashuv hisoblanadi. Bir tomondan, bu yondashuv boshqalar bilan ishlashi mumkin bo'lgan sozlamalar bilan taqqoslanadigan nisbatan toza tayanch o'rnatishni saqlashga imkon beradi. Bu shuningdek, turli xil tarqatishlardan foydalangan holda maqsadli tizimlar to'plamini olishingiz mumkinligini anglatadi. Bundan tashqari, virtualizatsiya vositalarining aksariyati turli xil arxitekturalarni taqlid qilish imkonini beradi va shuning uchun 32-bitli platforma 64-bitli operatsion tizimlarni ishga tushirishi mumkin, garchi unumdorlik pasayadi.

02-qadam: Keling, noldan boshlaylik

Agar Ubuntu yoki Fedora-da biror narsa noto'g'ri bo'lsa, manba katalogini o'chirib tashlash va qaytadan boshlash mutlaqo xavfsizdir. E'tibor bering, Debian vositalari asl arxivni o'zgartiradi, shuning uchun siz yangi nusxadan boshlashingiz kerak bo'ladi.

1-qism: Debian

03-qadam: Qurilish muhitini o'rnating

Biz manba kodidan dasturlar yaratish uchun zarur bo'lgan ko'pgina vositalarni o'rnatishdan boshlaymiz. Terish:

$ sudo apt-get install build-essential autoconf automake autotools-dev

Endi biz DEB paketlari bilan ishlash uchun ishlatiladigan asboblarni o'rnatishimiz kerak. Buni quyidagi buyruq bilan bajaring ...

$ sudo apt-get install dh-make debhelper devscripts fakeroot xutils lintian pbuilder

04-qadam: GPG kalitini yarating

Agar siz ilgari GPG ochiq kalitini yaratmagan bo'lsangiz, paketlarni imzolash uchun hozir uni yaratishingiz kerak. Avval gpg –gen-key matnini kiriting. Standart qiymatlarni tanlang va so'ralganda haqiqiy ismingizni va aloqa ma'lumotlarini kiriting. Ehtiyotkorlik bilan barcha ma'lumotlarni yozing, chunki biz ularni keyinchalik konfiguratsiya faylida to'liq moslashtirishimiz kerak. Shundan so'ng, yangi kalit mavjudligiga ishonch hosil qilish uchun ls ~/.gnupg buyrug'ini kiriting (bu firstname_lastname.gpg fayli). Undan umumiy kalit yarating:

Gpg -a --output ~/.gnupg/.gpg --export "[sizning ismingiz]"

Uni import qiling:

Gpg --import ~/.gnupg/.gpg

05-qadam: Paketni yuklab oling

Ushbu misolda biz Dillo veb-brauzerining so'nggi versiyasini yuklab olamiz va quramiz. Dillo veb-saytiga (www.dillo.org) o'ting va eng so'nggi archive.tar.bz ni yuklab oling. Manba kodi uchun katalog yaratish va arxivni unga ko'chirish uchun mkdir ~/srcand buyrug'idan foydalaning.

06-qadam: Arxivni o'rash

Tar -xjvf [arxiv nomi].tar.bz2 buyrug'i yordamida arxivni oching. E'tibor bering, quyidagi katalog nomlash qoidalari (paket nomi-versiya) bizning maqsadlarimiz uchun muhim va xayriyatki, Dillo paketi ularga amal qiladi. Shuningdek, manba kodi arxivi manba kodlari katalogidan bir daraja yuqori bo'lishi ham muhimdir.

07-qadam: Debian uchun konfiguratsiya

Dh_make skriptini yangi ochilgan katalogga joylashtiring, u ishning ko'p qismini bajaradi - konfiguratsiya faylini qo'shish va katalog tuzilmasini yaratish va biz ilgari qo'shgan ishlab chiquvchi asboblar to'plamining bir qismidir.

Dh_make -e -c litsenziyasi -f ../

Bizning misolimizda, buyruq qatori u shunday ko'rinadi:

Dh_make -c gpl3 -e [elektron pochta himoyalangan]-f ../dillo-3.0.3.tar.bz2

So'ralganda, bitta ikkilik faylni tanlang. Skript yordamchi skripti manba kodi katalogida Debian nomli katalog yaratishi kerak.

08-qadam: Boshqaruv faylini oching

Ochish matn muharriri Debian pastki katalogidagi boshqaruv fayli. Bosh sahifa boʻlimini (Debian dasturi boʻlimlari roʻyxatini toʻldirish uchun Google’dan foydalaning) va ushbu fayl uchun tavsif maydonlarini toʻldiring.

09-qadam: Mavjud bog'liqliklaringizni o'rganing

Paket sifatida keladigan dasturni ishga tushirish uchun qanday bog'liqliklar kerakligini o'rganishingiz mumkin. Manba kodi bilan katalogga o'ting va terminalda dpkg-depcheck -d ./configure buyrug'ini kiriting. Agar shunday qilsangiz, dasturni yaratish uchun zarur bo'lgan qaysi paket etishmayotganligini ko'rsatadigan xatolarni olasiz (alohida beriladi). Siz ushbu paketni sudo apt-get build-dep [paket nomi] yozish orqali ochishingiz mumkin, bu sizning tarqatish omboringiz paketni qo'llab-quvvatlasa yordam beradi. Agar u qo'llab-quvvatlanmasa, dpkg-depcheck -d ./configur ni qayta-qayta ishga tushirishingiz va psudo apt-get install [paket nomi] ni kiritish orqali paketlarni qo'lda qo'shishingiz kerak bo'ladi.

10-qadam: Boshqaruv fayliga bog'liqliklarni qo'shing

Oldingi bosqichdagi barcha qadamlar tugagach, sizda barcha kerakli paketlar ro'yxati bo'lishi kerak. Ushbu bog'liqliklar ro'yxatini boshqaruv faylining bog'langan: bo'limiga qo'shing. Ro'yxatdagi elementlar vergul va bo'sh joy bilan ajratilishi kerak.

Ushbu bosqichni iloji boricha bajarishga harakat qiling va uni o'tkazib yubormang. Manba: - bu odatda bosh sahifa loyiha. Fayllar bo'limida: * mualliflik huquqi haqidagi ma'lumotni loyiha mualliflarining ismlari bilan almashtiring. Fayllar: debian/* bo'limini to'ldirish misolini ko'rishingiz mumkin, unda tegishli ma'lumotlar kiritilishi kerak. Kerakli ma'lumotni topish uchun siz biroz detektiv bo'lishingiz kerak bo'lishi mumkin. AUTHORS va COPYING kabi fayllar uchun manba katalogiga qarang.

12-qadam: O'zgartirish jurnali faylini tahrirlang

Changelog faylini oching va ism va manzil mavjudligiga ishonch hosil qiling elektron pochta GPG kalitini yaratishda kiritganlaringiz bilan bir xil. Odatda yordamchi skript faylga haqiqiy ismingizdan ko'ra foydalanuvchi nomingizni qo'shishi mumkin. Mualliflik huquqi faylida bo'lgani kabi, ushbu bo'limni o'tkazib yubormang, chunki bu paket yaratish jarayonini to'xtatishga yoki noto'g'ri paket yaratishga olib kelishi mumkin.

13-qadam: Paket yarating

Agar hamma narsa to'g'ri sozlangan bo'lsa, biz nihoyat DEB paketini yaratishimiz mumkin. Manba katalogiga o'ting va ~/src/ katalogiga joylashtiriladigan paketni yaratish uchun dpkg-buildpackage -b ni ishga tushiring. Masalan, dpkg -I [package] buyrug'i yordamida paket yarating. Debian siyosatlariga muvofiqligini tekshirish uchun lintian [package] buyrug'i yordamida Lintian dasturini ishga tushiring. Shuni esda tutingki, ushbu vosita juda qat'iydir va ba'zi bir kichik nomuvofiqlik ogohlantirishlari siz uchun maqbul bo'ladimi yoki yo'qligini o'zingiz hal qilasiz. Nihoyat, sudo dpgk -i [paket] buyrug'i yordamida paktni o'rnating.

2-qism: Fedora-da RPM paketlarini yaratish

14-qadam: Boshqaruv faylini oching

su yozish orqali root foydalanuvchi rejimiga o'ting. Yum-dagi Development Tools o'rnatish guruhidan boshlang, so'ngra gcc-c++ fedora-paketchini o'rnatish uchun yum-dan foydalaning. Foydalanuvchini soxta guruhga qo'shish uchun usermod -a -G mock buyrug'ini kiriting. Bu bizga root bo'lmasdan qurish protsedurasini bajarishga imkon beradi.

15-qadam: Qurilish muhitini yarating

Ildiz rolidan chiqish uchun Ctrl + D tugmalarini bosing. Bizga kerak bo'lgan katalog daraxtini (~/rpmbuild ostida) yaratish uchun rpmdev-setuptree ni kiriting.

16-qadam: Arxivni yuklab oling va uni kerakli joyga ko'chiring

Dillo to'plamini Dillo veb-saytidan yuklab oling va arxivni tegishli katalogga o'tkazing - mv [arxiv nomi] ~/rpmbuild/SOURCES yozing.

17-qadam:.spec faylini yarating

Red Hat-ga asoslangan tarqatishlar, masalan, Fedora, qurish jarayonini belgilash uchun .spec fayllaridan foydalanadi. CD ~/rpmbuild/SPECS/andcreateablank.spec yordamida bunday fayllarni o'z ichiga olgan katalogga o'ting va rpmdev-newspec dillo yordamida bo'sh .spec faylini yarating.

18-qadam:.spec faylini tahrirlang

gedit dillo.spec buyrug'ini kiriting. Versiya, Xulosa va Litsenziya maydonlarini to'ldiring (in Ushbu holatda- GPLv3+). bosh sahifa loyiha; Source0 manba kodining manzilini belgilaydi. BuildRequires va Requires maydonlarida sharhlar bering. Qo'shish to'liq tavsif% tavsif maydoniga.

19-qadam: Manba kodini yarating

Agar paket tizimda umuman qo'llab-quvvatlansa, yum-builddep [paket nomi] buyrug'ini ishga tushiring. IN aks holda, xato xabarlarini olish uchun qurish buyrug'ini takrorlashingiz yoki manba kodi arxivida hujjatlarni qidirishingiz kerak bo'ladi. SPEC katalogiga rpmbuild -ba[paket nomi].spec yozing. Agar bu tuzilma bajarilmasa va qo'shimcha siqilmagan fayllar haqida xabar bersa, ushbu fayllar ro'yxatini ajratib ko'rsating va the.spec faylining %files bo'limiga nusxa ko'chiring va qurish buyrug'ini qayta chiqaring. Paket endi RPMS katalogida joylashgan bo'ladi. Uni o'rnatish uchun rpm -ivh [paket] yozing. rpm -qa | buyrug'ini kiriting grep [paket] o'rnatilganligiga ishonch hosil qilish uchun.

Ushbu maqola to'liq emas. Siz uni yozishga yordam bera olasiz

    Maqolaning uslubini tuzatish

    Debianizatsiya uchun manba kodlarini tayyorlash haqida qo'shimcha ma'lumot qo'shish orqali

Debian-ga asoslangan distributivlar nafaqat bog'liqliklarni o'zi hal qiladigan mukammal APT paketlarni boshqarish tizimiga, balki paketlar va o'z omborlarini yaratish uchun qulay vositalarga ham ega. Agar siz allaqachon manba kodidan dastur yaratishga qaror qilgan bo'lsangiz, men sizga manba kodini qanday qilib o'rganishni maslahat beraman. Bu standartdan bir oz ko'proq vaqt oladi

./ configure && make && make install make o'chirish

lekin hamma manbalar buni qo'llab-quvvatlamaydi va undan ham keng tarqalgani shundaki, manbalar o'rnatishdan keyin o'chiriladi, keyin dasturni faqat qo'lda olib tashlash mumkin. Lekin buning uchun siz aniq nima o'rnatilganligini va qaerda ekanligini bilishingiz kerak. Va buni dastur ishlab chiquvchilarning o'zidan boshqa hech kim aniq bilmaydi (yaxshi yoki dasturning manba kodini ko'proq yoki kamroq tushunganlar).

Yig'ish holatlarining tasnifi

Mumkin quyidagi holatlar paket tuzilmalari:

    Manbadan yaratish;

    Ikkilik fayllardan yig'ish;

manba kodlari yoki ikkilik fayllar olinadi:

    Ombordan emas;

    Boshqa tarqatish omboridan;

    Boshqa Ubuntu relizlar omboridan, PPA'dan yoki Debian'dan;

debianizatsiya:

    Mavjud emas;

    Ubuntu omboridan, PPA yoki Debian'dan olingan:

    • Dasturning boshqa versiyasidan;

      Dasturning joriy versiyasidan:

      • Joriy Ubuntu repozitoridan emas;

        Joriy Ubuntu repozitoridan;

yig'ish sababi:

    Joriy Ubuntu ombori ham, PPA ham dasturning kerakli versiyasini o'z ichiga olmaydi;

    Ba'zi sabablarga ko'ra dasturning mavjud versiyasi sizni qoniqtirmayapti (dastur kodi yoki ma'lumotlari, konfiguratsiya parametrlari yoki nazorat ma'lumotlari paket);

    Ikkalasi ham.

Manbadan yarating

Nima kerak

Debian Developer uchun yangi boshlanuvchilar uchun to'liq qo'llanma mavjud.

Afsuski, rus tilidagi ma'lumotlar biroz eskirgan, eng so'nggi ko'rsatmalar ingliz tilida mavjud. Ammo printsiplar o'zgarmadi, shuning uchun siz tafsilotlarga qiziqsangiz, qo'llanmani yaxshilab o'qib chiqish yaxshiroqdir.

Bizga kamida buyruq bilan o'rnatilgan dasturlar kerak bo'ladi

sudo apt-get install autoconf automake libtool autotools-dev dpkg-dev fakeroot

Shuningdek, siz avtomatik bron qilishingiz mumkin - bu GNU yordam dasturlari Autoconf, Automake va Libtool uchun hujjatlar. Va, albatta, ularning o'zlari talab qiladigan narsa manba kodlari to'g'ri yig'ish uchun.

Shifrlash kalitini yaratish

Ushbu qadam ixtiyoriy va uni o'tkazib yuborish mumkin.

Kalit yaratish uchun ga o'ting Ilovalar → Aksessuarlar → Parollar va shifrlash kalitlari. Ochilgan oynada, menyuda Kalit → Yangi kalit, kalitni tanlang pgp. Maydonlarni to'ldirish To'liq ism Va E-pochta manzili.

Bepul dasturiy ta'minot dunyosida "o'g'irlik" yoki "qalbaki" ning oldini olish uchun "qimmatli" narsalaringizga imzo qo'yish odatiy holdir. elektron kalit, uning umumiy qismi umumiy serverlarda saqlanadi va boshqa foydalanuvchilarga ma'lum bir narsaning haqiqiyligi va yaxlitligini osongina aniqlash imkonini beradi.
Shuning uchun, kalit yaratishda juda mas'uliyatli bo'ling.
Hech kim sizni haqiqiy ismingiz va familiyangizni yoki boshqa shaxsiy ma'lumotlaringizni bu erga kiritishga majburlamaydi, lekin agar siz Interpol tomonidan qidirilmasa, familiyangizni va ismingizni kiritish to'g'ri qaror bo'ladi, deb o'ylayman, garchi siz shunchaki taxallusingizdan foydalanishingiz mumkin Umuman olganda, o'zingiz qaror qiling. Iltimos, haqiqiy pochta manzilini ko'rsating, uni o'zgartirmaysiz.

Agar sizda hali yo'q bo'lsa, ba'zi mashhurlarida quti yaratishingiz mumkin pochta serveri: masalan, gmail.com yoki yandex.ru.
Bu kelajakda sizni tanimaydigan, ammo u yoki bu sababga ko'ra siz imzolagan "narsa" ga duch kelgan odam bilan bog'lanishni osonlashtiradi.
Keyinchalik, sizdan qo'shimcha himoya sifatida parol kiritishingiz so'raladi. Agar siz 100% ishonib bo'lmaydigan mashinalarda shaxsiy kalitdan foydalansangiz foydali bo'lishi mumkin. Orqa tomon- har safar biror narsa imzolaganingizda parolingizni kiritishingiz kerak bo'ladi.

Garchi so'nggi versiya dasturlari dengiz oti GNOME sessiyasida avtomatik ravishda ishga tushadigan demonga ega va sessiya davomida “parolni eslab qolishi” mumkin, biroq u bilan hali hamma dasturlar ishlay olmaydi.

Shunday qilib, siz kalit yaratdingiz - endi undan paketlarni yaratishda foydalanish mumkin.
Buning uchun ~/.bashrc faylida yoki sevimli qobiqning boshqa ishga tushirish skriptida (zsh ~/.zshrc uchun) o'zgaruvchilarni kiritishingiz kerak.

DEBEMAIL=your@email-ni eksport qiling

Elektron pochtaga asoslanib, paketni imzolashda kalit pgp da qidiriladi.
O'zgarishlar kuchga kirishi uchun tizimdan chiqib, qayta kirishingiz kerak.
Esda tutingki, agar siz o'zingiz hal qilmagan paketni qayta ko'rsatayotgan bo'lsangiz, versiyani buyruq bilan o'zgartirishingiz kerak

dch -i

Sizning elektron pochtangiz o'zgarishlarga qo'shilishi uchun. Va ochiq kalitingiz serverga kirishi uchun siz " dengiz oti→ Parollar va shifrlash kalitlari”, umumiy kalit serveriga ulanishni o‘rnating.
Buning uchun menyuda Tahrirlash → Variantlar xatcho'pda Kalitlarni nashr qilish katakchani belgilashingiz kerak Kalitlarni nashr qilish....
Endi siz menyuda tugmachani tanlashingiz mumkin o'ng tugma tanlang Kalitlarni sinxronlash va nashr qilish.

Debianizatsiya mavjud emas

Shunday qilib, bizda faqat bor gcoolprog-0.5.3.tar.gz.

Men odatda quyidagilarni qilaman:

Ishchi katalogni oldindan tayyorlash

"http://<путь до файла>" #Siz, albatta, uni faqat brauzer orqali yuklab olishingiz mumkin, lekin u odatda tezroq

Biz faylni qabul qilamiz gcoolprog-0.5.3.tar.gz. Keling, uni ochamiz va natijada paydo bo'lgan katalogga o'tamiz:

tar zxvf gcoolprog-0.5.3.tar.gz cd gcoolprog-0.5.3

To'g'ri yig'ish uchun ildiz katalogida nafaqat nom, balki versiya ham bo'lishi kerak!

./ configure --prefix =/ usr && make

Agar buyruq muvaffaqiyatli bajarilgan bo'lsa, unda faqat debianizatsiya qilish qoladi.

Debianizatsiya

Buning hech qanday yomon joyi yo'q, men aytganimdek, bu jarayonni sezilarli darajada soddalashtiradigan skriptlar mavjud.
Umuman olganda, ushbu protseduraning maqsadi manbalarning ildizida debian katalogini yaratishdir kerakli fayllar konfiguratsiya va skript(lar).
Buning uchun manba matnlarining ildizida biz bajaramiz

Dh_make --createorig

Quyidagi dialogni nima uchun olishimiz kerak?

Paket turi: bitta ikkilik, ko'p binar, kutubxona, yadro moduli yoki CDB? [elektron pochta himoyalangan] Sana: Dushanba, 13 avgust 2007 12:40:33 +0400 Paket nomi: gcoolprog Versiya: 0.5.3 Litsenziya: bo'sh Paket turi: Yagona urish tasdiqlash uchun:

Bu erda biz bitta ikkilik fayl uchun paket yaratishni ko'rsatamiz.

Lekin siz va men ajoyibmiz va hamma narsa xatosiz o'tdi - manba kodining ildizida debian katalogi paydo bo'ldi, uning mazmuniga qarab, siz barcha holatlar uchun misollar bilan bir qator fayllarni (kengaytma .ex) ko'rasiz.

Tavsif:

O'rniga Va (burchak qo'shtirnoqsiz) qanday dastur ekanligini tavsiflashni kiritishingiz kerak.
Bu foydalanuvchi paket tavsifiga qaraganida ko'radigan ma'lumotdir.
Ikkinchi nuqta - faylni tuzatish debian/qoidalar
bo'limida ikkilik-ark: izohni olib tashlash kerak (ya'ni satr boshida # belgisini olib tashlang)

Dh_install

busiz biz bo'sh paketni olamiz.
Ba'zan debian/qoidalar faqat o'z ichiga oladi:

%:dh$@

Debhelper yordamida nima qabul qilinadi.
Ushbu sozlamalar umumiy kutubxonalarni o'z ichiga olmaydigan bitta dastur bilan paketni yaratish uchun etarli bo'ladi, ya'ni. faqat /usr/bin-dagi ikkilik va /usr/share-dagi ma'lumotlar.

Paketni qurish

Endi paketni yig'amiz:

Yuqoridagi katalogda, ya'ni. ~/src/gcoolprog/0.5.3 da biz fayllarni olamiz

Gcoolprog_0.5.3-1.diff.gz gcoolprog_0.5.3-1_i386.changes gcoolprog_0.5.3-1_i386.deb gcoolprog_0.5.3.orig.tar.gz

Endi biz paketni o'rnatishimiz mumkin

dpkg -i *.deb

Debianizatsiya Ubuntu omboridan, PPA yoki Debian'dan olingan

Debianizatsiya dasturning boshqa versiyasidan olingan

Bunday holda, u erdan debianizatsiyani olish va uni yangi versiya uchun tuzatish juda qulay.

Yuqorida aytganimdek, ehtimol bizga omad kulib boqadi va shunchaki versiyani o'zgartirish kifoya qiladi. Ammo taxmin qilmaylik.

Quyida men oldingi yechimda tasvirlangan narsalarni izohlamayman.

mkdir ~/ src/ gcoolprog mkdir ~/ src/ gcoolprog/ 0.5.3 cd ~/ src/ gcoolprog/ 0.5.3 wget "http://<путь до файла>"

gcoolprog-0.5.3.tar.bz2 faylini olamiz

bunzip2 gcoolprog-0.5.3.tar.bz2 gzip gcoolprog-0.5.3.tar mv gcoolprog-0.5.3.tar.gz gcoolprog_0.5.3.orig.tar.gz

endi uni o'ramidan chiqaramiz

tar zxvf ./ gcoolprog_0.5.3.orig.tar.gz

yuklab oling oldingi versiya http://packages.ubuntu.com yoki http://packages.debian.org, fayldan gcoolprog_0.5.1.diff.gz(pastki qismida gcoolprog haqida qo'shimcha ma'lumot bo'limida)

wget "http://archive.ubuntu.com/ubuntu/pool/universe/g/gcoolprog/gcoolprog_0.5.1.diff.gz" gunzip gcoolprog_0.5.1.diff.gz patch -p0< ./ gcoolprog_0.5.1.diff

katalogni oling

~/ src/ gcoolprog/ 0.5.3/ gcoolprog-0.5.1/ debian

gcoolprog-0.5.1/debian katalogini ~/src/gcoolprog/0.5.3/gcoolprog-0.5.3 katalogiga nusxalash

cp -a ~/ src/ gcoolprog/ 0.5.3/ gcoolprog-0.5.1/ debian ~/ src/ gcoolprog/ 0.5.3/ gcoolprog-0.5.3 dch -i

bu buyruq debian/changelog faylini o'zgartiradi, masalan, biz ko'ramiz

Gcoolprog (0.5.1-1ubuntu2) shiddatli; shoshilinchlik = past * -- denis< ubuntu_user@ mail.ru>

lekin bizda 0.5.3 versiyasi mavjud bo'lgani uchun biz qiymatlarni o'zgartirishimiz kerak

Gcoolprog (0.5.3-1ubuntu1) shiddatli; shoshilinchlik =past * Yuqori oqimning yangi versiyasi.< ubuntu_user@ mail.ru>--denis

Dushanba, 13 avgust 2007 14:13:27 +0400

o'zgarishlarni saqlang. Endi siz qurish buyrug'ini paketga kiritishingiz mumkin.

Dpkg-buildpackage -rfakeroot

fayllarni oling

cd .. ls -1 gcoolprog_0.5.3-1 .diff.gz gcoolprog_0.5.3-1 _i386.changes gcoolprog_0.5.3-1 _i386.deb gcoolprog_0.5.3.orig.tar.gz *.pkgde -i

Debianizatsiya dasturning joriy versiyasidan olingan

Debianizatsiya joriy Ubuntu relizlar omboridan olinmaydi Debian uchun http://packages.debian.org, Ubuntu uchun - http://packages.ubuntu.com saytidan foydalanishingiz kerak. Keyin, masalan, Ubuntu-da biz paketni qidiramiz gcoolprog

kelajakdagi versiya uchun omborda.

Avval ishchi katalogni tayyorlaymiz

mkdir ~/ src/ gcoolprog mkdir ~/ src/ gcoolprog/ 0.5.3 cd ~/ src/ gcoolprog/ 0.5.3

Endi uchta faylni yuklab oling

wget http:// archive.ubuntu.com/ ubuntu/ pool/ universe/ g/ gcoolprog/ gcoolprog_0.5.3-1 .dsc wget http:// archive.ubuntu.com/ ubuntu/ pool/ universe/ g/ gcoolprog/ gcoolprog_0 .5.3.orig.tar.gz wget http:// archive.ubuntu.com/ ubuntu/ pool/ universe/ g/ gcoolprog/ gcoolprog_0.5.3-1 .diff.gz

yoki bir xil narsa, lekin bitta buyruq bilan

Dget http:// archive.ubuntu.com/ ubuntu/ pool/ universe/ g/ gcoolprog/ gcoolprog_0.5.3-1 .dsc paketdan
devscripts

keyin buyruq bilan paketdan chiqaring

Dpkg-source -x ./ gcoolprog_0.5.3-1 .dsc

Biz gcoolprog-0.5.3 katalogini olamiz, keling, unga o'tamiz va versiyani o'zgartiramiz:< ubuntu_user@ mail.ru>--denis

cd gcoolprog-0.5.3 dch -i gcoolprog (0.5.3-1ubuntu1) feisty; shoshilinch =past * backport from gutsy -- denis

o'zgarishlarni saqlang. Endi siz qurish buyrug'ini paketga kiritishingiz mumkin.

Dpkg-buildpackage -rfakeroot

Endi siz paketni yig'ishingiz mumkin

cd .. ls -1 . gcoolprog_0.5.3-1 .diff.gz gcoolprog_0.5.3-1 _i386.changes gcoolprog_0.5.3-1 _i386.deb gcoolprog_0.5.3.orig.tar.gz dpkg -i * .deb

Debianizatsiya joriy Ubuntu relizlar omboridan olingan

Agar joriy Ubuntu versiyasining omborida dasturning kerakli versiyasi uchun paket mavjud bo'lsa, lekin negadir u qoniqarli bo'lmasa va uning manbalariga o'zgartirishlar kiritish kerak bo'lsa (masalan, qandaydir yamoqni qo'llang. ) va Debianization paketida mavjud bo'lgan narsalar asosida qayta qurilgan, siz quyidagilarni qilishingiz mumkin.

Qurish uchun sizga quyidagi paketlar kerak bo'ladi: fakeroot Build-essential devscripts. Rivojlanish paketlari ham talab qilinadi, ularni keyinroq o'rnatamiz.

Manbalarni yuklab oling: cd ~/ src apt-get manba

apt-get source manbalarni Ubuntu omboridan joriy katalogga yuklaydi. Repozitariydagi ko'pgina paketlar bir-biri bilan umumiy manbalarga ega, shuning uchun tanlangan paket manbalaridan tashqari, boshqa paketlarning manbalarini ham yuklab olish mumkin (bir nechta paketlar uchun umumiy manbalar).

Yig'ish uchun zarur bo'lgan ishlab chiqish paketlarini o'rnating:

sudo apt-get build-dep gcoolprog

Biz paketlarni yig'amiz:

cd gcoolprog-0.5.3 debuild -b -us -uc

debuild manba katalogida ishga tushirilishi kerak. -b -us -uc opsiyalari dpkg-buildpackage dasturiga uzatiladi. Birinchisi faqat ikkilik paketlarni yig'ishni talab qiladi, ikkinchi va uchinchisi imzolanmaslikni talab qiladi raqamli imzo, mos ravishda, manba paketi va .changes fayli. Olingan paketlar katalogda bir daraja yuqori bo'ladi.

Ikkilik fayllardan qurish

Quyida faqat deb to'plami mavjud bo'lsa va hech qanday debianizatsiyalangan manbalar bo'lmasa, nima qilishingiz mumkinligiga misol keltirilgan.

Faraz qilaylik, biz katalogda ishlayapmiz ~/tmp. Keling, kichik katalog yarataylik ~/tmp/someprog paketning fayllarini ochish uchun siz ishga tushirishingiz kerak

dpkg -x ~./tmp/some-prog-123 .deb ./someprog

Chiqarish uchun nazorat ma'lumotlari, qilaylik

mkdir ~/ tmp/ someprog/ DEBIAN dpkg -e ~/ tmp/ some-prog-123 .deb ./ someprog/ DEBIAN

Xo'sh, endi hammasini paketga qaytarish uchun siz qilishingiz kerak

dpkg -b ./ someprog ~/ tmp/ some-prog-123 -new.deb

Katalogda ~/tmp/someprog/DEBIAN paket nima ekanligini, nimaga bog'liqligini va tavsiflovchi fayllarni o'z ichiga oladi nazorat summalari undagi fayllar. Paketingizni yaratish uchun siz fayllarni katalogga joylashtirishingiz kerak ~/tmp/someprog xuddi ildiz katalogi, ya'ni fayl o'rnatilishini xohlasangiz /usr/bin, siz uni katalogga qo'yishingiz kerak ~/tmp/someprog/usr/bin, va shunga ko'ra, agar biror narsa bo'lishi kerak bo'lsa /va hokazo, keyin ichida ~/tmp/someprog/etc va hokazo.

Keyin ichkariga ~/tmp/someprog DEBIAN katalogini yarating, katta harflardan foydalanishni unutmang va unda fayl ~/tmp/someprog/DEBIAN/control, bu fayl paket nomini, uning bog'liqliklarini va tavsifini tavsiflaydi, formati juda oddiy. Masalan:

Paket: libcurl3 Versiya: 7.15.2-2 Boʻlim: libs Ustuvorlik: ixtiyoriy Arxitektura: i386 Bogʻliq: libc6 (>= 2.3.5-1), libcomerr2 (>= 1.33-3), libidn11 (>= 0.5.18), libkrb53 (>= 1.4.2), libssl0.9.8 (>= 0.9.8a-1), zlib1g (>= 1:1.2.1), ca-sertifikatlar Takliflar: libldap2 Oʻzgartirishlar: libcurl2 (<< 1:7.11.2-2) Installed-Size: 324 Maintainer: Domenico Andreoli Manba: curl Tavsif: Ko'p protokolli fayllarni uzatish kutubxonasi libcurl mustahkam, foydalanish mumkin, ishonchli va portativ ko'p protokolli fayllarni uzatish kutubxonasi bo'lish uchun mo'ljallangan.

.

SSL qo'llab-quvvatlash OpenSSL tomonidan taqdim etiladi.

LDAP qo'llab-quvvatlash paketini yoqish uchun libldap2-dev kerak.

© 2024 ermake.ru -- Kompyuterni ta'mirlash haqida - Axborot portali