Program na vytváranie deb balíčkov. Vytváranie RPM alebo DEB balíkov pomocou Checkinstall v systéme Linux

Domov / Operačné systémy

deb súbor je archív vo formáte ar obsahujúce inštalačné súbory programy, informácie o programe, ako aj skripty ( dávkové súbory), vykonávané pred a po inštalácii a odinštalovaní programu (prítomnosť skriptov nie je povinná – nemusia byť súčasťou balenia).

Formát súboru deb je popísaný v manuálových stránkach deb(5) - táto pomoc sa zobrazí, ak do terminálu napíšete man deb. Na internete je tiež pomerne veľa stránok obsahujúcich tieto informácie – stačí vyhľadať deb(5), aby ste ich našli. Táto príručka tu nie je zahrnutá, pretože oficiálna príručka pre vývojárov Debianu, Pomocník formátu balíkov (ktorá sa v čase písania tejto príručky nachádza na adrese http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics. en.html) je napísané, že formát balíkov sa môže meniť, a preto sa na prácu s nimi odporúča použiť utilitu dpkg-deb. Pomoc pri práci s nástrojom dpkg-deb získate zadaním príkazu man dpkg-deb do terminálu.

Program GUI-deb funguje tak, že vytvorí adresár obsahujúci potrebné údaje a spustí program dpkg-deb, pričom zadá tento adresár a ďalšie potrebné parametre.

Správny adresár pre dpkg-deb na vytvorenie inštalačného balíka musí najprv obsahovať podadresár "DEBIAN". Tento adresár by mal obsahovať všetky údaje, ktoré sa nekopírujú do systému, ale priamo ich využívajú programy na prácu s balíkmi – informácie o balíku, skripty vykonávané pred a po inštalácii atď. Žiadne súbory obsiahnuté v adresári DEBIAN nebudú pri inštalácii balíka pridané do súborového systému počítača, na ktorom je balík nainštalovaný.

Mimo adresár "DEBIAN" obsahuje tie súbory, ktoré budú skopírované do súborového systému počítača, na ktorom bude balík nainštalovaný. Súbory sa musia nachádzať v adresároch, do ktorých budú umiestnené pri inštalácii balíka. To znamená, že vo vnútri adresára vytvoreného pre dpkg-deb by mala byť vytvorená kópia častí súborového systému, ktoré potrebujeme - ako keby tento adresár bol jeho koreňovým adresárom ("/"). To znamená, ak napríklad názov adresára, na základe ktorého bude balík vytvorený, je „~/TMP_DEBS/MyProgram“ a je potrebné, aby pri inštalácii v súborový systém súbor "MyProgram.png" bol zapísaný do adresára "/usr/share/pixmaps" - musíte vytvoriť adresár "usr" v adresári "~/TMP_DEBS/MyProgram", v ňom - ​​adresár "share", vnútri "share" - adresár "pixmaps" "a umiestnite súbor "MyProgram.png" do adresára "pixmaps". V dôsledku toho bude úplná cesta k súboru "~/TMP_DEBS/MyProgram/usr/share/pixmaps/MyProgram.png". Pri vytváraní balíka sa odreže časť adresára "~/TMP_DEBS/MyProgram" a počas inštalácie súbor "MyProgram.png" skončí na požadovanej adrese "/usr/share/pixmaps". Pre každý súbor teda musia byť vytvorené potrebné adresáre.

Po vytvorení adresára zostáva už len spustiť dpkg-deb a odovzdať potrebné parametre. Najpotrebnejšie parametre dpkg-deb na zostavovanie balíkov sú popísané v časti "Parametre príkazového riadku pre utilitu dpkg-deb". Ak v riadiacom súbore nie sú žiadne chyby, vytvorí sa inštalačný balík.

Vytvorte zoznam balíkov:

$dpkg-scanpackages. /dev/null | gzip -9c > ./Packages.gz
Mohli by sme dostať správu ako:

Dpkg-scanpackages: varovanie: Balíky v archíve, ale chýbajúce v prepisovacom súbore: dpkg-scanpackages: varovanie: fosílne 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: info: Napísal 8 záznamov do výstupného súboru Packages.
V našom úložisku je teraz 8 balíčkov. Skvelé, pridajme do súboru naše úložisko:

riadok ako:

Deb súbor:///home/username/zips/virensdebianrepository ./
Teraz musíte aktualizovať zoznam balíkov, aby boli dostupné na inštaláciu:

To je všetko, teraz si môžete nainštalovať napríklad čerstvo zostavený textový editor Sublime Text 2 (tam je výborný návod) ako vždy: Teraz, ak chcete nainštalovať SublimeText, stačí urobiť:
# apt-get install sublimetext

Čítanie zoznamov balíkov... Hotovo Vytváranie stromu závislostí Čítanie informácií o stave... Hotovo Budú nainštalované nasledujúce NOVÉ balíky: sublimetext 0 aktualizovaný, 1 novo nainštalovaný, 0 na odstránenie a 245 neaktualizovaný.

Potrebujete získať 0 B/11,4 MB archívov.

Po tejto operácii sa na disku použije ďalších 17,4 MB.

UPOZORNENIE: Nasledujúce balíky nie je možné overiť! sublimetext Inštalovať tieto balíčky bez overenia? Y Výber predtým zrušeného výberu balíka sublimetext.(Čítanie databázy ... 247813 aktuálne nainštalovaných súborov a adresárov.) Rozbaľovanie sublimetextu (z ..././sublimetext_2.0.2_i386.deb) ... Nastavenie sublimetextu (2.0.2) ... To je všetko, balík sa rozbalí a nainštaluje a skutočnosť, že je z lokálneho úložiska, môžete vidieť tu: (z ..././sublimetext_2.0.2_i386.deb)

Záver

Recepty opísané v tomto príspevku sú rýchle jedlá, nie foie gras s hľuzovkami. Pri veľkých úložiskách alebo zložitých balíkoch si stále budete musieť prečítať dokumentáciu a manuály. Môžete použiť aj program, ktorý dokáže úložiská nielen vytvárať, ale aj napaľovať na CD/DVD disky.

Špeciálne poďakovanie patrí súdruhovi.
mozgový prúd

, ktorý upozornil na chybu v príspevku s vykresľovaním prostredia PRE. Toto sa stane, keď veríte haskellovým remeslám ako pandoc :-)

Recepty opísané v tomto príspevku sú rýchle jedlá, nie foie gras s hľuzovkami. Pri veľkých úložiskách alebo zložitých balíkoch si stále budete musieť prečítať dokumentáciu a manuály. Môžete použiť aj program, ktorý dokáže úložiská nielen vytvárať, ale aj napaľovať na CD/DVD disky.

Áno, ak máte čo dodať, napíšte do komentárov, ale majte na pamäti, že toto je rýchly príspevok, bez toho, aby ste si museli znova prečítať Debian Packaging Guidelines a ďalšiu kvantovú fyziku.
Anonymné komentáre...

Recepty opísané v tomto príspevku sú rýchle jedlá, nie foie gras s hľuzovkami. Pri veľkých úložiskách alebo zložitých balíkoch si stále budete musieť prečítať dokumentáciu a manuály. Môžete použiť aj program, ktorý dokáže úložiská nielen vytvárať, ale aj napaľovať na CD/DVD disky.

Vo vašom texte je chyba:

"Teraz, ak chcete nainštalovať Skype, stačí urobiť:

# apt-get install sublimetext "

Balíky môžete rozbaliť pomocou dpkg-deb:

2. Zmontovali ste, nainštalovali a myslíte si, že je to všetko? Žiadne také šťastie, dobrá schopnosť môže zničiť balík pri inštalácii niečoho iného. Poznáte ten pocit: ako? kde? čo? Tento balík už mám nainštalovaný!!! No, to je jeho nadanie – celý je ortodoxný, čo znamená, že je patriarchálny a nedovoľuje slobodné myslenie.

3. Preto je potrebný naliehavý manéver: balík aptitude hold. "Čo, drží to dobre?" (c) Pretože odteraz sa bude aptitude sťažovať, že nedokáže vyriešiť závislosti bez zničenia vášho balíka.

4. V tomto bode mi povolili nervy... A objavil som Gentoo a moje vlasy boli opäť jemné a hodvábne!

"Teraz, ak chcete nainštalovať Skype, stačí urobiť:

@iv_vl komentáre...
A objavil som Gentoo a moje vlasy...
Drzé PR Genta?! IN môj blog??? Neexistuje žiadny spôsob! ;-)

1. Balíček deb musí obsahovať správcu a iné nezmysly
Štandardná politika - musíte vedieť, koho vraziť do tváre za rozbitý balík :-) A potom, toto je v každom prípade lepšie ako bedlam, ktorý sa deje v RPM fedorách a zyuzách.

2. Zmontovali ste, nainštalovali a myslíte si, že je to všetko? Žiadne také šťastie, dobrá schopnosť môže zničiť balík pri inštalácii niečoho iného.
Iba ak vložíte balík stará verzia- napríklad mám hold na IceWM, ktorý som nainštaloval od Lennyho (ten idiotský údržbár napchal do Squeeze ľad s rozbitým zásobníkom). Aptitude vás pred takýmito manévrami upozorní.

3. Preto je naliehavo potrebný manéver: balík aptitude hold.... aptitude prisahá, že nie je schopný vyriešiť závislosti
Toto je lož a ​​provokácia: iba ak ste nezadržali niečo ako gcc alebo glibc, normálne to vyrieši závislosti. Na rozdiel od RPM, ktorí to radi hneď vzdajú v štýle „No, nemohol som, nemohol som“ :-)

Môžu nastať problémy s riešením závislostí, to je fakt, ale je to lepšie ako smažiť vajíčka a slaninu na procesore pri čakaní na koniec sťahovania čerstvého KDE od Genty...

4. V tomto momente mi povolili nervy...
Nejako ťa to rýchlo strhlo. Mimochodom, ako je to so závislosťami v Gente? Ako sa vám tam žije s kašľom pri každom kýchnutí?
Toto myslím...nie kvôli trollingu...ľudí to zaujíma.

iv_vl

Choď krásny jazyk. Jednou z jeho superschopností je schopnosť skompilovať všetko do jednej binárky. A to je veľmi pohodlné, tento súbor môžete nosiť všade so sebou a použiť ho na akomkoľvek stroji. Chcem však mať možnosť nainštalovať náš program jednoduchým spôsobom.

Pomocou deb balíkov môžete jednoducho organizovať nasadenie na vaše servery. Zároveň budete mať verzovanie a to všetko. Najčastejšie používam ubuntu, takže budeme hovoriť konkrétne o deb balíčkoch, ktoré je možné nainštalovať/odstrániť pomocou utilít apt.

Čo musíte urobiť, aby ste si vytvorili vlastné úložisko s balíkmi? Môžete napríklad použiť rovnaký launchpad.net . ale, v poslednej dobe, nevyvíja sa veľmi dobre a pôsobí nespoľahlivo. Okrem toho je vhodné ho použiť pre vaše nekomerčné vývoj, ale jeho použitie na distribúciu podnikového softvéru bude problematické.

Pristúpme k problému z druhej strany. Po prvé, musíme zhromaždiť deb balíčky, a to je veľmi jednoduché urobiť sami pomocou nástroja dpkg-deb. Po druhé, tieto balíčky musíme niekde umiestniť a na to použijeme super jednoduchý

Stavebné balíčky

Pre všetky moje projekty, ktoré používam. Štruktúra projektu vyzerá asi takto:

Projekt/ |- kôš/ | |- projekt |- src/ | |- github.com/ | |- 4gophers/ | |- projekt/ | |- main.go |- predajca/

Keď spustím zostavenie gb, všetky binárne súbory sú zostavené v priečinku bin. Takže všetko, čo potrebujeme, je jednoducho pridať špecifikáciu nášho budúceho deb balíka priamo do priečinka projektu:

Projekt Mkdir/dotykový projekt DEBIAN/DEBIAN/ovládanie

Výsledkom bude takáto štruktúra:

Projekt/ |- DEBIAN/ | |- ovládanie |- kôš/ | |- projekt |- src/ |- dodávateľ/

V kontrolnom súbore musíme špecifikovať informácie o našom balíku. Nezabudnite na posledný prázdny riadok:

Balík: projekt Priorita: voliteľný Sekcia: vývoj Inštalovaná veľkosť: 100 Údržba: Ivan Ivanov Architektúra: i386 Verzia: 1.0 Závisí: libc6 (>= 2.1) Popis: Krátky popis tu Dlhý popis tu

  • Balík – názov vášho balíka
  • Priorita - priorita balíka (voliteľná, extra, štandardná, dôležitá, povinná) pre bežné programy je lepšie nastaviť voliteľnú
  • Sekcia – sekcia, do ktorej patrí tento balík(admin, base, comm, contrib, devel, doc, editors, electronics, embedded, games, gnome, graphics, hamradio, interpreters, kde, libs, libdevel, mail, math, misc, net, news, non-free, oldlibs , otherosfs, perl, python, science, shells, sound, tex, text, utils, web, x11)
  • Installed-Size - veľkosť súborov balíka v kilobajtoch
  • Správca – meno a email tvorcu balíka
  • Architektúra - architektúra procesora, pre ktorý je balík určený (i386, amd64, všetko, zdroj, všetko)
  • Verzia - verzia balíka
  • Závisí - v tomto poli musíte zadať názvy balíkov, od ktorých váš balík závisí (napríklad knižnice)
  • Popis - do prvého riadku napíšeme krátky popis balíka, do zvyšku podrobnejšie

Všetko, čo je v priečinku projektu, pôjde do balíka. A tiež priečinok koša. Tento priečinok obsahuje náš binárny súbor, ktorý je potrebné nainštalovať. Aby vaše súbory skončili v požadovanom adresári na počítači používateľa, musíte v priečinku projektu vytvoriť príslušnú adresárovú štruktúru.

Stojí za zmienku, že tento prístup k vytváraniu deb balíčkov nie je najsprávnejší. Samozrejme, v našom prípade robíme tento krok vedome, ale musíte pochopiť, že balík deb bude obsahovať celý obsah priečinka projektu vrátane priečinkov src, dodávateľa atď. Samozrejme, môžete kopírovať súbory do iného priečinka a dokonca na to napísať skript, ale všetko už bolo vynájdené pred nami. Viac správnym spôsobom- toto je použitie obslužných programov dh_make a dpkg-buildpackage.

Teraz môžete zostaviť balík. Ak to chcete urobiť, spustite príkaz o úroveň vyššie:

Dpkg-deb -z8 -Zgzip --zostavenie projektu

O úroveň vyššie sa vytvorí súbor project.deb, ktorý je možné nainštalovať pomocou príkazu:

Sudo dpkg -i projekt.deb

Vaše vlastné úložisko balíkov

Teraz poďme k zábavnej časti. Ako distribuujeme naše balíčky? Samozrejme, spustíme náš vlastný repozitársky server. A na to použijeme apt repository server deb-simple.

Toto je skutočne jednoduchý server, ktorý je možné nainštalovať iba jedným príkazom:

Prejdite na stránku github.com/esell/deb-simple

Ak go nie je nainštalovaný na počítači, na ktorom sa chystáte spustiť server s úložiskami, môžete binárny súbor vytvoriť lokálne a jednoducho ho skopírovať. Prípadne môžete použiť docker.

Potom musíte spustiť server. Dá sa to urobiť pomocou docker, ale radšej používam supervízor. Tu je príklad mojej konfigurácie služby:

Command=/home/user/go1.5/bin/deb-simple directory=/home/user/deb-simple/ autorestart=true stdout_logfile=none

Tu je dôležité uviesť cestu k binárnemu súboru (príkaz) a pracovnému priečinku (adresár), do ktorého umiestnime našu konfiguráciu.

Server deb-simple podporuje https, ale zatiaľ ho nepotrebujeme. Pre úložiská musíte vytvoriť priečinok repo. Naša konfigurácia conf.json bude vyzerať takto:

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

Ak chcete nahrať balík do svojho úložiska, musíte použiť HTTP API samotnej služby:

Curl -XPOST "http://localhost:9090/upload?arch=amd64" -F " [chránený e-mailom]"

Podobne pre vymazanie:

Curl -XDELETE "http://localhost:9090/delete" -d "("názov súboru":"project.deb","arch":"amd64")"

Všetko, čo musíme urobiť, je pridať náš server s úložiskom do zoznamu v /etc/apt/source.list.d/. Môžete vytvárať samostatný súbor s obsahom:

Deb http://my-hostname:9090/ stabilný hlavný

Teraz spustite sudo apt-get update a nainštalujte si programy podľa svojich predstáv.


Autor: Michael Reed
Dátum zverejnenia: 4. januára 2014
Preklad: N. Romodanov
Dátum prestupu: jún 2014

Povieme vám, ako vytvoriť dva najbežnejšie typy linuxových balíkov na distribúciu softvér a môžete sami distribuovať svoje vlastné balíčky.

Prevedieme vás procesom vytvárania softvérových balíkov pre dva najpopulárnejšie balíkové systémy, DEB a RPM. Tieto techniky môžete použiť na balenie vlastného softvéru alebo dokonca na údržbu balíkov pre softvér, o ktorom máte pocit, že letí pod radarom.

Začneme s návodom na vytváranie DEB ((.deb) súborov pre distribúcie odvodené od Debianu – na tento účel používame Xubuntu ako náš základ. Potom podrobne popíšeme techniky potrebné na vytvorenie RPM balíkov pre použitie na Red Hat -odvodené distribúcie a na to použijeme Fedoru Často je možné vytvoriť balík na jednej distribúcii a potom ho nainštalovať do súvisiacej distribúcie (napr. Ubuntu>Debian), ale ak je to dôležité, možno by ste to mali skúsiť. to sami.

Pokiaľ ide o program, ako príklad balíka vytvorený zo zdrojového kódu použijeme ľahký webový prehliadač Dillo. Ak pri zostavovaní zo zdroja nefunguje podľa očakávania, môžete ako obvykle hľadať riešenia na internete. Napríklad v prípade Dillo 3.0.3 sme kvôli prehliadnutiu v archíve zdrojového kódu museli pridať "LIBS = -lX11" pred príkazy na zostavenie, aby príkazy fungovali.

Zostavenie prebieha na príkazovom riadku

Zdroje

Inštalácia (resp virtuálny stroj) Ubuntu a Fedora

Popis krok za krokom

Krok 01: Pomocou virtuálneho stroja

Používanie virtualizačných nástrojov ako VirtualBox alebo Vmware je často najlepším prístupom k vytváraniu balíkov pre iné systémy. Na jednej strane vám tento prístup umožňuje udržiavať relatívne čistú základnú inštaláciu, porovnateľnú s nastaveniami, s ktorými budú pravdepodobne pracovať iní. To tiež znamená, že môžete získať kolekciu cieľových systémov pomocou rôznych distribúcií. Väčšina virtualizačných nástrojov vám navyše umožňuje emulovať rôzne architektúry, a preto môže 32-bitová platforma prevádzkovať 64-bitové operačné systémy, aj keď tým utrpí výkon.

Krok 02: Začnime od nuly

Ak sa v Ubuntu alebo Fedore niečo pokazí, je úplne bezpečné jednoducho odstrániť zdrojový adresár a začať odznova. Upozorňujeme, že nástroje Debianu upravujú pôvodný archív, takže budete musieť začať od novej kópie.

Časť 1: Debian

Krok 03: Nainštalujte prostredie zostavy

Začneme inštaláciou väčšiny nástrojov, ktoré potrebujeme na vytváranie programov zo zdrojového kódu. Vytočiť:

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

Teraz musíme nainštalovať nástroje, ktoré sa používajú na prácu s balíkmi DEB. Urobte to pomocou nasledujúceho príkazu...

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

Krok 04: Vytvorte kľúč GPG

Ak ste v minulosti nevytvorili verejný kľúč GPG, musíte si ho vytvoriť teraz, aby ste mohli podpisovať balíčky. Najprv zadajte text gpg –gen-key. Vyberte predvolené hodnoty a po zobrazení výzvy zadajte svoje skutočné meno a kontaktné informácie. Opatrne si zapíšte všetky údaje, pretože neskôr ich budeme musieť presne zhodovať v konfiguračnom súbore. Potom zadajte príkaz ls ~/.gnupg, aby ste sa uistili, že nový kľúč existuje (toto je súbor meno_priezvisko.gpg). Vytvorte z neho verejný kľúč:

Gpg -a --output ~/.gnupg/.gpg --export "[vaše meno]"

Importujte ho pomocou:

Gpg --import ~/.gnupg/.gpg

Krok 05: Stiahnite si balík

V tomto príklade si stiahneme a zostavíme najnovšiu verziu webového prehliadača Dillo. Prejdite na webovú stránku Dillo (www.dillo.org) a stiahnite si najnovší archív.tar.bz. Pomocou príkazu mkdir ~/srcand vytvorte adresár pre zdrojový kód a presuňte doň archív.

Krok 06: Rozbaľte archív

Rozbaľte archív pomocou príkazu tar -xjvf [názov archívu].tar.bz2. Všimnite si, že dodržiavanie konvencií pomenovávania adresárov (názov balíka-verzia) je pre naše účely dôležité a balík Dillo ich našťastie dodržiava. Je tiež dôležité, aby bol archív zdrojového kódu o úroveň vyššie ako adresár zdrojového kódu.

Krok 07: Konfigurácia pre Debian

Do novo rozbaleného adresára umiestnite skript dh_make, ktorý sa postará o väčšinu práce – pridanie konfiguračného súboru a vytvorenie adresárovej štruktúry a ktorý je súčasťou sady nástrojov pre vývojárov, ktorú sme pridali skôr.

Dh_make -e -c licencia -f ../

V našom príklade príkazový riadok bude to vyzerať takto:

Dh_make -c gpl3 -e [chránený e-mailom]-f ../dillo-3.0.3.tar.bz2

Po zobrazení výzvy vyberte jeden binárny súbor. Pomocný skript skriptu musí vytvoriť adresár s názvom Debian v adresári zdrojového kódu.

Krok 08: Otvorte ovládací súbor

Otvoriť v textový editor riadiaci súbor v podadresári Debian. Vyplňte sekciu Domovská stránka (na dokončenie zoznamu sekcií programu Debian použite Google) a polia popisu tohto súboru.

Krok 09: Preskúmajte svoje existujúce závislosti

Môžete preskúmať, aké závislosti sú potrebné na spustenie programu, ktorý sa dodáva ako balík. Prejdite do adresára so zdrojovým kódom a do terminálu zadajte príkaz dpkg-depcheck -d ./configure. Ak tak urobíte, zobrazia sa chyby označujúce, ktorý balík chýba, ktorý je potrebný na zostavenie programu (dodáva sa samostatne). Tento balík môžete otvoriť zadaním sudo apt-get build-dep [názov balíka], čo by malo pomôcť, ak úložisko vašej distribúcie balík podporuje. Ak to nie je podporované, budete musieť opakovane spustiť dpkg-depcheck -d ./config a balíky pridať manuálne zadaním psudo apt-get install [názov balíka].

Krok 10: Pridajte závislosti do riadiaceho súboru

Po dokončení všetkých krokov z predchádzajúceho kroku by ste mali mať zoznam všetkých požadovaných balíkov. Pridajte tento zoznam závislostí do sekcie depend: riadiaceho súboru. Položky v zozname musia byť oddelené čiarkou a medzerou.

Pokúste sa dokončiť tento krok čo najviac a nepreskakujte ho. Zdroj: - to je zvyčajne domovskej stránke projektu. V sekcii Súbory: * nahraďte informácie o autorských právach menami autorov projektu. Môžete vidieť príklad vyplnenia sekcie Súbory: debian/*, do ktorej treba zadať príslušné informácie. Možno budete musieť byť trochu detektív, aby ste našli potrebné informácie. V zdrojovom adresári vyhľadajte súbory ako AUTORI a KOPÍROVANIE.

Krok 12: Upravte súbor denníka zmien

Otvorte súbor changelog a uistite sa, že meno a adresa sú uvedené email sú rovnaké ako tie, ktoré ste zadali pri vytváraní kľúča GPG. Pomocný skript môže zvyčajne pridať do súboru vaše používateľské meno namiesto vášho skutočného mena. Rovnako ako v prípade súboru s autorskými právami túto časť nepreskakujte, pretože môže spôsobiť zastavenie procesu vytvárania balíka alebo vytvorenie nesprávneho balíka.

Krok 13: Vytvorte balík

Ak je všetko správne nakonfigurované, môžeme konečne zostaviť balík DEB. Prejdite do zdrojového adresára a spustite príkaz dpkg-buildpackage -b na zostavenie balíka, ktorý bude umiestnený v adresári ~/src/. Napríklad vytvorte balík pomocou príkazu dpkg -I [balík]. Ak chcete skontrolovať súlad s pravidlami Debianu, spustite program Lintian pomocou príkazu lintian [package]. Upozorňujeme, že tento nástroj je notoricky prísny a je na vás, aby ste sa rozhodli, či sú pre vás prijateľné niektoré menšie upozornenia na nesúlad. Nakoniec nainštalujte pakt pomocou príkazu sudo dpgk -i [balík].

Časť 2: Vytváranie RPM balíkov vo Fedore

Krok 14: Otvorte ovládací súbor

Prepnite sa do režimu používateľa root zadaním su. Začnite s inštalačnou skupinou Development Tools v yum a potom použite yum na inštaláciu balíčka gcc-c++ fedora. Zadajte príkaz usermod -a -G mock, aby ste pridali svojho používateľa do skupiny napodobňovania. To nám umožňuje vykonať procedúru zostavenia bez toho, aby sme sa museli stať rootom.

Krok 15: Vytvorte prostredie na zostavenie

Stlačením klávesov Ctrl + D ukončíte koreňovú rolu. Napíšte rpmdev-setuptree a vytvorte strom adresárov (pod ~/rpmbuild), ktorý potrebujeme.

Krok 16: Stiahnite si archív a presuňte ho na požadované miesto

Stiahnite si balík Dillo z webovej stránky Dillo a presuňte archív do príslušného adresára - zadajte mv [názov archívu] ~/rpmbuild/SOURCES.

Krok 17: Vytvorte súbor .spec

Distribúcie založené na Red Hat, ako napríklad Fedora, používajú súbory .spec na určenie procesu zostavovania. Prejdite do adresára obsahujúceho takéto súbory pomocou cd ~/rpmbuild/SPECS/andcreateablank.spec a vytvorte prázdny súbor .spec pomocou rpmdev-newspec dillo.

Krok 18: Upravte súbor .spec

Zadajte príkaz gedit dillo.spec. Vyplňte polia Verzia, Súhrn a Licencia (v v tomto prípade- GPLv3+). domovskej stránke projekt; Source0 určuje adresu zdrojového kódu. Zadajte komentáre do polí BuildRequires a Requires. Pridať úplný popis do oblasti %popis.

Krok 19: Zostavte zdrojový kód

Ak je balík v systéme vôbec podporovaný, spustite príkaz yum-builddep [názov balíka]. IN inak, budete musieť zopakovať príkaz build, aby ste dostali chybové hlásenia, alebo vyhľadať dokumentáciu v archíve zdrojového kódu. Do adresára SPEC napíšte rpmbuild -ba[názov balíka].spec. Ak táto zostava zlyhá a hlási ďalšie nekomprimované súbory, zvýraznite a skopírujte tento zoznam súborov do sekcie %files súboru .spec a znova zadajte príkaz zostavenia. Balík sa teraz bude nachádzať v adresári RPMS. Nainštalujte ho napísaním rpm -ivh [balík]. Zadajte príkaz rpm -qa | grep [balík], aby ste sa uistili, že je nainštalovaný.

Tento článok nie je úplný. Môžete pomôcť napísať

    Oprava štýlu článku

    Pridávame ďalšie informácie o príprave zdrojových kódov na debianizáciu

Distribúcie založené na Debiane majú nielen vynikajúci systém správy balíkov APT, ktorý sám rieši závislosti, ale aj pohodlné nástroje na vytváranie balíkov a ich vlastných úložísk. Ak ste sa už rozhodli zostaviť program zo zdrojového kódu, potom vám odporúčam naštudovať si aj spôsob debianizácie zdrojového kódu. Bude to trvať trochu dlhšie ako štandardné

./ configure && make && make install make uninstall

ale nie všetky zdroje to podporujú a čo je ešte bežnejšie je, že zdroje sa po inštalácii vymažú, potom je možné program odstrániť iba manuálne. Ale aby ste to urobili, musíte presne vedieť, čo je nainštalované a kde. A nikto to nevie s istotou, okrem samotných vývojárov programu (dobre, alebo tých, ktorí viac-menej rozumeli zdrojovému kódu programu).

Klasifikácia montážnych puzdier

možné nasledujúce prípady zostavy balíkov:

    Zostavte zo zdroja;

    Montáž z binárnych súborov;

zdrojové kódy alebo binárne súbory sa berú:

    Nie z úložiska;

    Z úložiska inej distribúcie;

    Z úložiska iného vydania Ubuntu, z PPA alebo z Debianu;

debianizácia:

    Nie je k dispozícii;

    Prevzaté z úložiska Ubuntu, z PPA alebo z Debianu:

    • Z inej verzie programu;

      Z aktuálnej verzie programu:

      • Nie z aktuálneho úložiska vydania Ubuntu;

        Z aktuálneho úložiska vydania Ubuntu;

dôvod montáže:

    Ani aktuálne úložisko Ubuntu, ani PPA neobsahujú požadovanú verziu programu;

    Z nejakého dôvodu nie ste spokojný s dostupnou verziou programu (nie ste spokojný s programovým kódom alebo údajmi, konfiguračnými parametrami resp. kontrolné informácie balík);

    Obaja.

Zostavte zo zdroja

Čo je potrebné

K dispozícii je kompletná príručka pre začiatočníkov pre vývojárov Debianu.

Bohužiaľ, informácie v ruštine sú trochu zastarané, najnovšie pokyny sú k dispozícii v angličtine. Princípy sa ale nezmenili, takže ak vás zaujímajú detaily, je lepšie si poriadne prečítať návod.

Budeme potrebovať minimálne programy nainštalované príkazom

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

Môžete tiež automaticky rezervovať - ​​toto je dokumentácia pre GNU nástroje Autoconf, Automake a Libtool. A samozrejme, čo oni sami vyžadujú zdrojové kódy pre správnu montáž.

Vytvorenie šifrovacieho kľúča

Tento krok je voliteľný a možno ho preskočiť.

Ak chcete vytvoriť kľúč, prejdite na Aplikácie → Príslušenstvo → Heslá a šifrovacie kľúče. V okne, ktoré sa otvorí, v ponuke Kľúč → Nový kľúč, vyberte kľúč pgp. Vyplnenie polí Celé meno A E-mailová adresa.

Vo svete slobodného softvéru, aby sa zabránilo „krádeži“ alebo „falšovaniu“, je zvykom podpisovať svoje „cenné“ veci elektronický kľúč, ktorej verejná časť je uložená na verejných serveroch a umožňuje ostatným používateľom jednoducho určiť pravosť a integritu konkrétnej veci.
Preto buďte pri vytváraní kľúča veľmi zodpovední.
Nikto ťa nenúti zadávať sem svoje skutočné meno a priezvisko, ani žiadne iné osobné údaje, ale ak ťa Interpol nechce, myslím, že zadanie priezviska a mena bude správnym rozhodnutím, aj keď môžeš použiť len svoju prezývku Vo všeobecnosti sa rozhodnite sami. Uveďte však prosím skutočnú poštovú adresu, ktorú nebudete meniť.

Môžete si vytvoriť krabicu, ak ju ešte nemáte, na niektorých populárnych poštový server: napríklad gmail.com alebo yandex.ru.
V budúcnosti vás tak bude môcť ľahko kontaktovať niekto, kto vás nepozná, ale z nejakého dôvodu natrafil na „vec“, ktorú ste podpísali.
Ďalej sa zobrazí výzva na zadanie hesla ako dodatočnej ochrany. Môže to byť užitočné, ak budete súkromný kľúč používať na počítačoch, ktorým nemôžete 100% dôverovať. Opačná strana- budete musieť zadať svoje heslo zakaždým, keď niečo podpisujete.

Hoci najnovšiu verziu programy morský koník má démona, ktorý sa automaticky spustí v relácii GNOME a dokáže si „zapamätať heslo“ počas trvania relácie, ale nie všetky programy s ním ešte dokážu pracovať.

Takže ste vytvorili kľúč - teraz ho možno použiť pri vytváraní balíkov.
Ak to chcete urobiť, v súbore ~/.bashrc alebo v inom spúšťacom skripte vášho obľúbeného shellu (pre zsh ~/.zshrc) musíte zadať premenné

Exportovať DEBEMAIL=váš@e-mail

Na základe e-mailu sa pri podpise balíka vyhľadá kľúč v pgp.
Aby sa zmeny prejavili, musíte sa odhlásiť a znova prihlásiť.
Pamätajte, že ak backportujete balík, ktorý ste nedebianizovali, musíte zmeniť verziu pomocou príkazu

dch -i

aby bol váš e-mail zahrnutý do zmien. A aby sa váš verejný kľúč dostal na server, musíte „ morský koník→ Heslá a šifrovacie kľúče“, nastavte pripojenie k serveru verejného kľúča.
Ak to chcete urobiť, v ponuke Upraviť → Možnosti na záložke Zverejnenie kľúčov musíte zaškrtnúť políčko Zverejniť kľúče....
Teraz môžete vybrať kľúč v ponuke pomocou pravé tlačidlo vybrať Synchronizácia a zverejnenie kľúčov.

Debianizácia nie je dostupná

Takže máme len gcoolprog-0.5.3.tar.gz.

Zvyčajne robím nasledovné:

Predpríprava pracovného adresára

"http://<путь до файла>" #Môžete si ho, samozrejme, jednoducho stiahnuť cez prehliadač, ale zvyčajne je to rýchlejšie

Prijímame súbor gcoolprog-0.5.3.tar.gz. Rozbalíme ho a prejdeme do výsledného adresára:

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

Pre správne zostavenie musí koreňový adresár obsahovať nielen názov, ale aj verziu!

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

Ak bol príkaz úspešne dokončený, zostáva už len debianizovať.

Debianizácia

Na tom nie je nič zlé, ako som už povedal, existujú skripty, ktoré tento proces výrazne zjednodušujú.
Vo všeobecnosti je zmyslom celej tejto procedúry vytvorenie adresára debian v koreňovom adresári zdrojov s potrebné súbory konfigurácia a skript(y).
Za týmto účelom vykonáme v koreni zdrojových textov

Dh_make --createorig

Na čo by sme mali dostať nasledujúci dialóg?

Typ balíka: jednoduchý binárny, viacnásobný binárny, knižnica, modul jadra alebo cdbs? [chránený e-mailom] Dátum: Po, 13. augusta 2007 12:40:33 +0400 Názov balíka: gcoolprog Verzia: 0.5.3 Licencia: prázdna Typ balíka: Single Hit na potvrdenie:

Tu naznačujeme vytvorenie balíka pre jeden binárny súbor.

Ale vy a ja sme skvelí a všetko prebehlo bez chýb - v koreňovom adresári zdrojového kódu sa objavil adresár debian, pri pohľade na jeho obsah uvidíte kopu súborov (prípona .ex) s príkladmi pre všetky príležitosti.

Popis:

Namiesto toho A (bez rohových úvodzoviek) treba zadať popis o aký program ide.
Toto sú informácie, ktoré používateľ uvidí, keď sa pozrie na popis balíka.
Druhým bodom je oprava súboru debian/pravidlá
v sekcii binárny-oblúk: musí byť bez komentára (t. j. odstráňte znak # na začiatku riadku)

Dh_install

bez toho dostaneme prázdny balíček.
Niekedy debian/pravidlá obsahuje len:

%:dh$@

Čo je prijateľné pomocou debhelper.
Tieto nastavenia budú postačovať na zostavenie balíka s jedným programom, ktorý neobsahuje zdieľané knižnice, t.j. iba binárny súbor v /usr/bin a údaje v /usr/share.

Zostavenie balíka

Teraz zostavíme balík:

V adresári vyššie, t.j. v ~/src/gcoolprog/0.5.3 dostaneme súbory

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

Teraz môžeme nainštalovať balík

dpkg -i *.deb

Debianizácia je prevzatá z úložiska Ubuntu, z PPA alebo z Debianu

Debianizácia je prevzatá z inej verzie programu

V tomto prípade je veľmi vhodné odtiaľ prevziať debianizáciu a opraviť ju pre novú verziu.

Ako som už povedal, snáď budeme mať šťastie a bude stačiť len zmeniť verziu. Ale nehádajme.

Nižšie sa nebudem vyjadrovať k tomu, čo je popísané v predchádzajúcom riešení.

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

dostaneme súbor gcoolprog-0.5.3.tar.bz2

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

teraz to rozbalíme

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

stiahnuť predchádzajúca verzia zo súboru http://packages.ubuntu.com alebo http://packages.debian.org gcoolprog_0.5.1.diff.gz(úplne dole v sekcii Viac informácií o gcoolprog)

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

dostaneme adresár

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

skopírujte adresár gcoolprog-0.5.1/debian do adresára ~/src/gcoolprog/0.5.3/gcoolprog-0.5.3

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

tento príkaz zmení súbor debian/changelog, napríklad uvidíme

Gcoolprog (0.5.1-1ubuntu2) feisty; naliehavosť = nízka * -- denis< ubuntu_user@ mail.ru>

ale keďže máme verziu 0.5.3, musíme zmeniť hodnoty na

Gcoolprog (0.5.3-1ubuntu1) feisty; naliehavosť = nízka * Nové predchádzajúce vydanie.< ubuntu_user@ mail.ru>-- Denis

Po, 13. august 2007 14:13:27 +0400

uložiť zmeny. Teraz môžete spustiť príkaz build do balíka.

Dpkg-buildpackage -rfakeroot

získať súbory

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 * dpdekg

Debianizácia je prevzatá z aktuálnej verzie programu

Debianizácia nie je prevzatá z úložiska aktuálneho vydania Ubuntu Pre Debian musíte použiť stránku http://packages.debian.org, pre Ubuntu - http://packages.ubuntu.com. Potom napríklad v Ubuntu hľadáme balík gcoolprog

v úložisku pre budúce vydanie.

Najprv si pripravíme pracovný adresár

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

teraz si stiahnite tri súbory

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

alebo to isté, ale s jedným príkazom

Dget http:// archive.ubuntu.com/ ubuntu/ pool/ Universe/ g/ gcoolprog/ gcoolprog_0.5.3-1 .dsc z balíka
popisy

potom rozbaľte príkazom

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

Získame adresár gcoolprog-0.5.3 Poďme do neho a zmeňte verziu:< ubuntu_user@ mail.ru>-- Denis

cd gcoolprog-0.5.3 dch -i gcoolprog (0.5.3-1ubuntu1) feisty; naliehavosť = nízka * backport od gutsy -- denis

uložiť zmeny. Teraz môžete spustiť príkaz build do balíka.

Dpkg-buildpackage -rfakeroot

Teraz môžete zostaviť balík

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

Debianizácia je prevzatá z úložiska aktuálneho vydania Ubuntu

V prípade, že sa v úložisku aktuálneho vydania Ubuntu nachádza balík pre požadovanú verziu programu, ale z nejakého dôvodu nie je vyhovujúci a je potrebné vykonať zmeny v jeho zdrojoch (napríklad je potrebné použiť nejaký patch ) a prestavaný na základe toho, čo je už v balíku Debianization, môžete urobiť nasledovné.

Na zostavenie budete potrebovať nasledujúce balíčky: build-essential devscripts fakeroot. Vyžadované budú aj vývojové balíčky, tie nainštalujeme neskôr.

Stiahnite si zdroje: cd ~/ src apt-get zdroj

apt-get source stiahne zdroje z úložiska Ubuntu do aktuálneho adresára. Mnohé balíky v repozitári majú navzájom spoločné zdroje, takže okrem zdrojov zvoleného balíka je možné stiahnuť aj zdroje iných balíkov (zdroje spoločné pre viacero balíkov).

Nainštalujte vývojové balíky potrebné na zostavenie:

sudo apt-get build-dep gcoolprog

Zbierame balíčky:

cd gcoolprog-0.5.3 debuild -b -us -uc

debuild by sa mal spustiť v zdrojovom adresári. Voľby -b -us -uc sú odovzdané programu dpkg-buildpackage. Prvý vyžaduje zhromažďovanie iba binárnych balíkov, druhý a tretí vyžaduje nepodpisovanie digitálny podpis, respektíve zdrojový balík a súbor .changes. Výsledné balíčky budú v adresári o úroveň vyššie.

Budovanie z binárnych súborov

Nižšie je uvedený príklad toho, čo môžete urobiť, ak je k dispozícii iba balík deb a neexistujú žiadne debianizované zdroje.

Predpokladajme, že pracujeme v adresári ~/tmp. Vytvorme podadresár ~/tmp/someprog Ak chcete rozbaliť súbory balíka, musíte spustiť

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

S cieľom extrahovať kontrolné informácie, poďme

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

No, teraz, aby ste to všetko vložili späť do balíka, musíte urobiť

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

V katalógu ~/tmp/someprog/DEBIAN obsahuje súbory popisujúce, čo je balík, na čom závisí a kontrolné súčty súbory v ňom obsiahnuté. Aby ste mohli zostaviť svoj balík, musíte umiestniť súbory do adresára ~/tmp/someprog ako keby to bol koreňový adresár, teda ak chcete, aby bol súbor nainštalovaný /usr/bin, musíte ho vložiť do adresára ~/tmp/someprog/usr/bin, a podľa toho, ak by niečo malo byť in /atď, potom dovnútra ~/tmp/someprog/atď atď.

Potom v ~/tmp/someprog vytvorte adresár DEBIAN, nezabudnite použiť veľké písmená a v ňom súbor ~/tmp/someprog/DEBIAN/control, tento súbor popisuje názov balíka, jeho závislosti a popis, formát je veľmi jednoduchý. Napríklad:

Balík: libcurl3 Verzia: 7.15.2-2 Sekcia: libs Priorita: voliteľná Architektúra: i386 Závisí: 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-certifikáty Navrhuje: libldap2 Náhrady: libcurl2 (<< 1:7.11.2-2) Installed-Size: 324 Maintainer: Domenico Andreoli Zdroj: curl Popis: Knižnica na prenos súborov s viacerými protokolmi libcurl je navrhnutá ako solídna, použiteľná, spoľahlivá a prenosná knižnica na prenos súborov s viacerými protokolmi.

.

Podporu SSL poskytuje OpenSSL.

Na povolenie podpory LDAP je potrebný balík libldap2-dev.

Možností inštalácie tohto operačného systému je viacero a všetky sa líšia len drobnými odchýlkami od...