Ohjelma deb-pakettien luomiseen. RPM- tai DEB-pakettien luominen Checkinstallilla Linuxissa

Kotiin / Käyttöjärjestelmät

deb-tiedosto on arkisto muodossa ar sisältävät asennustiedostot ohjelmat, tiedot ohjelmasta sekä skriptit ( erätiedostot), suoritetaan ennen ohjelman asentamista ja poistamista ja sen jälkeen (skriptien läsnäolo ei ole pakollista - ne eivät välttämättä ole osa pakettia).

Deb-tiedostomuoto on kuvattu deb(5) -man-sivuilla - tämä ohje tulee näkyviin, jos kirjoitat terminaaliin man deb. Internetissä on myös useita sivuja, jotka sisältävät nämä tiedot - etsi vain deb(5) löytääksesi ne. Tämä opas ei sisälly tähän, koska virallinen Debian-kehittäjien opas, Package Format Help (joka tätä opasta kirjoitettaessa sijaitsee osoitteessa http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics). en.html) on kirjoitettu, että pakettien muoto voi muuttua, ja siksi on suositeltavaa käyttää dpkg-deb -apuohjelmaa niiden kanssa työskentelemiseen. Apua dpkg-deb-apuohjelman käyttöön saa kirjoittamalla komento man dpkg-deb terminaaliin.

GUI-deb-ohjelma toimii luomalla tarvittavat tiedot sisältävän hakemiston ja suorittamalla dpkg-deb-ohjelman, joka määrittää tämän hakemiston ja muut tarvittavat parametrit.

Oikean hakemiston dpkg-deb asennuspaketin luomista varten täytyy ensin sisältää "DEBIAN"-alihakemisto. Tämän hakemiston tulee sisältää kaikki tiedot, joita ei kopioida järjestelmään, mutta joita ohjelmat käyttävät suoraan pakettien kanssa työskentelemiseen - tiedot paketista, ennen asennusta ja sen jälkeen suoritetut komentosarjat jne. Mitään DEBIAN-hakemiston sisältämiä tiedostoja ei lisätä sen tietokoneen tiedostojärjestelmään, johon paketti on asennettu, kun paketti asennetaan.

"DEBIAN"-hakemiston ulkopuolella on ne tiedostot, jotka kopioidaan sen tietokoneen tiedostojärjestelmään, johon paketti asennetaan. Tiedostojen tulee sijaita hakemistoissa, joihin ne sijoitetaan pakettia asennettaessa. Eli dpkg-deb:lle luodun hakemiston sisään pitäisi luoda kopio tarvitsemistamme tiedostojärjestelmän osista - ikään kuin tämä hakemisto olisi sen juuri ("/"). Eli jos esimerkiksi sen hakemiston nimi, jonka perusteella paketti luodaan, on “~/TMP_DEBS/MyProgram”, ja se on välttämätöntä asennuksen yhteydessä tiedostojärjestelmä tiedosto "MyProgram.png" kirjoitettiin hakemistoon "/usr/share/pixmaps" - sinun on luotava hakemisto "usr" hakemistoon "~/TMP_DEBS/MyProgram", siihen - hakemisto "share", "share" -hakemistoon "pixmaps" "ja sijoita tiedosto "MyProgram.png" "pixmaps"-hakemistoon. Tämän seurauksena tiedoston koko polku on "~/TMP_DEBS/MyProgram/usr/share/pixmaps/MyProgram.png". Pakettia luotaessa osa hakemistosta "~/TMP_DEBS/MyProgram" leikataan pois ja asennuksen aikana tiedosto "MyProgram.png" päätyy haluttuun osoitteeseen "/usr/share/pixmaps". Jokaiselle tiedostolle on siis luotava tarvittavat hakemistot.

Hakemiston luomisen jälkeen jäljellä on vain ajaa dpkg-deb ja välittää tarvittavat parametrit. Pakettien rakentamiseen tarvittavat dpkg-deb-parametrit on kuvattu osiossa "Dpkg-deb-apuohjelman komentoriviparametrit". Jos ohjaustiedostossa ei ole virheitä, asennuspaketti luodaan.

Luo luettelo paketeista:

$dpkg-skannauspaketit. /dev/null | gzip -9c > ./Packages.gz
Saatamme saada seuraavanlaisen viestin:

Dpkg-scanpackages: varoitus: Paketit arkistossa, mutta puuttuvat ohitustiedostosta: dpkg-scanpackages: varoitus: 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: info: Kirjoitti 8 merkintää Packages-tulostustiedostoon.
Varastossamme on nyt 8 pakettia. Hienoa, lisätään arkistomme tiedostoon:

rivi kuten:

Deb-tiedosto:///home/username/zips/virensdebianrepository ./
Nyt sinun on päivitettävä pakettiluettelo, jotta ne ovat asennettavissa:

Siinä kaikki, nyt voit asentaa esimerkiksi juuri kootun tekstieditorin Sublime Text 2 (siellä on erinomaiset ohjeet) kuten aina: Nyt voit asentaa SublimeTextin tekemällä:
# apt-get install sublimetext

Pakettiluetteloiden lukeminen... Valmis Riippuvuuspuun rakentaminen Tilatietojen lukeminen... Valmis Seuraavat UUDET paketit asennetaan: sublimetext 0 päivitetty, 1 äskettäin asennettu, 0 poistettava ja 245 ei päivitetä.

Tarvitset 0 B/11,4 Mt arkistoja.

Tämän toimenpiteen jälkeen käytetään 17,4 Mt lisää levytilaa.

VAROITUS: Seuraavia paketteja ei voida todentaa! sublimetext Asennetaanko nämä paketit ilman vahvistusta ? Y Valitsee aiemmin poistetun paketin alitekstin.(Luetaan tietokantaa... 247813 tiedostoa ja hakemistoa asennettuna.) Sublimetextin purkaminen (osoitteesta ..././sublimetext_2.0.2_i386.deb) ... Sublimetextin asetukset (2.0.2) ... Siinä kaikki, paketti puretaan ja asennetaan, ja se, että se on peräisin paikallisesta arkistosta, näkyy täällä: (osoitteesta ..././sublimetext_2.0.2_i386.deb)

Johtopäätös

Tässä postauksessa kuvatut reseptit ovat nopeita aterioita, ei hanhenmaksaa tryffelien kanssa. Suurien tietovarastojen tai monimutkaisten pakettien osalta sinun on silti luettava dokumentaatio ja käsikirjat. Voit myös käyttää ohjelmaa, joka ei voi vain luoda arkistoja, vaan myös polttaa ne CD/DVD-levyille.

Erityinen kiitos toverille.
aivovirtaan

, joka huomautti virheestä viestissä PRE-ympäristön hahmontamisessa. Näin tapahtuu, kun luotat Haskellin askarteluun, kuten pandociin :-)

Tässä postauksessa kuvatut reseptit ovat nopeita aterioita, ei hanhenmaksaa tryffelien kanssa. Suurien tietovarastojen tai monimutkaisten pakettien osalta sinun on silti luettava dokumentaatio ja käsikirjat. Voit myös käyttää ohjelmaa, joka ei voi vain luoda arkistoja, vaan myös polttaa ne CD/DVD-levyille.

Kyllä, jos sinulla on jotain lisättävää, kirjoita kommentteihin, mutta muista, että tämä on nopea postaus, ilman että sinun tarvitsee lukea uudelleen Debianin pakkausohjeita ja muuta kvanttifysiikkaa.
Anonyymit kommentit...

Tässä postauksessa kuvatut reseptit ovat nopeita aterioita, ei hanhenmaksaa tryffelien kanssa. Suurien tietovarastojen tai monimutkaisten pakettien osalta sinun on silti luettava dokumentaatio ja käsikirjat. Voit myös käyttää ohjelmaa, joka ei voi vain luoda arkistoja, vaan myös polttaa ne CD/DVD-levyille.

Tekstissäsi on virhe:

"Nyt, jos haluat asentaa Skypen, tee:

# apt-get install sublimetext "

Voit purkaa paketit komennolla dpkg-deb:

2. Oletko koonnut, asentanut ja luuletko, että siinä kaikki? Ei sellaista onnea, hyvä aptitude voi tuhota paketin helvettiin, kun asennat jotain muuta. Tiedätkö sen tunteen: miten? Jossa? Mitä? Olen jo asentanut tämän paketin!!! No, se on hänen kykynsä - hän on kokonaan ortodoksinen, mikä tarkoittaa, että hän on patriarkaalinen eikä salli vapaa-ajattelua.

3. Siksi tarvitaan kiireellinen toimenpide: aptitude hold -paketti. "Mitä, kestääkö se hyvin, ole nyt niin ystävällinen ja kuori se pois!" (c) Koska tästä lähtien aptitude valittaa, ettei se pysty ratkaisemaan riippuvuuksia tuhoamatta pakettiasi.

4. Tässä vaiheessa hermoni antoi periksi... Ja löysin Gentoon, ja hiuksistani tuli taas pehmeät ja silkkiset!

"Nyt, jos haluat asentaa Skypen, tee:

@iv_vl kommentit...
Ja löysin Gentoon ja hiukseni...
Gentan röyhkeä PR?! IN minun blogi??? Ei ole mitään keinoa! ;-)

1. Deb-paketin tulee sisältää ylläpitäjä ja muuta hölynpölyä
Vakiopolitiikka - sinun täytyy tietää ketä lyödä naamaan rikkinäisen paketin vuoksi :-) Ja sitten tämä on millään tavalla parempi kuin RPM fedoroissa ja zyuzoissa meneillään oleva bedlam.

2. Oletko koonnut, asentanut ja luuletko, että siinä kaikki? Ei sellaista onnea, hyvä aptitude voi tuhota paketin helvettiin, kun asennat jotain muuta.
Vain jos laitat paketin vanha versio- minulla on esimerkiksi Hold IceWM, jonka asensin Lennyltä (idiootti ylläpitäjä täytti Squeezeen rikkoutuneen tarjottimen jään). Aptitude varoittaa sinua ennen tällaisia ​​liikkeitä, jos mitään.

3. Siksi tarvitaan kiireesti toimenpide: aptitude hold paketti... aptitude vannoo, että se ei pysty ratkaisemaan riippuvuuksia
Tämä on valhetta ja provokaatiota: vain jos et ole ottanut kiinni jostain, kuten gcc tai glibc, se ratkaisee riippuvuudet normaalisti. Toisin kuin RPM:t, jotka haluavat luovuttaa heti tyyliin "No, en voinut, en voinut" :-)

Riippuvuuden ratkaisussa voi olla ongelmia, se on tosiasia, mutta se on parempi kuin paistaa pekonia ja munia prosessorissa odottaessa Gentan tuoreen KDE:n latauksen loppua...

4. Tässä vaiheessa hermoni antoi periksi...
Jotenkin ällistyt nopeasti. Muuten, entä riippuvuudet Gentissä? Kuinka elät siellä yskän kanssa joka kerta aivastaessasi?
Tarkoitan tätä...ei trollauksen vuoksi...ihmiset ovat kiinnostuneita.

iv_vl

Käy kauniilla kielellä. Yksi sen supervoimista on kyky koota kaikki yhdeksi binääriksi. Ja tämä on erittäin kätevää, voit kuljettaa tätä tiedostoa kaikkialla ja käyttää sitä missä tahansa koneessa. Mutta haluan pystyä asentamaan ohjelmamme yksinkertaisella tavalla.

Deb-pakettien avulla voit helposti järjestää käyttöönoton palvelimillesi. Samaan aikaan sinulla on versiointi ja kaikki muut. Käytän useimmiten ubuntua, joten puhumme erityisesti deb-paketeista, jotka voidaan asentaa/poistaa apt-apuohjelmilla.

Mitä sinun tulee tehdä luodaksesi oman arkiston pakettien kanssa? Voit käyttää esimerkiksi samaa launchpad.net:iä. Mutta, viime aikoina, se ei kehity kovin hyvin ja näyttää epäluotettavalta. Lisäksi on kätevää käyttää sitä ei-kaupalliseen kehitykseen, mutta sen käyttö yritysohjelmistojen jakeluun on ongelmallista.

Lähestytään ongelmaa toiselta puolelta. Ensinnäkin meidän on kerättävä deb-paketit, ja tämä on erittäin helppoa tehdä itse dpkg-deb-apuohjelmalla. Toiseksi, meidän on sijoitettava nämä paketit jonnekin, ja tähän käytämme erittäin yksinkertaista

Pakettien rakentaminen

Kaikissa projekteissani, joita käytän. Hankkeen rakenne näyttää suunnilleen tältä:

Projekti/ |- bin/ | |- projekti |- src/ | |- github.com/ | |- 4gophers/ | |- projekti/ | |- main.go |- myyjä/

Kun suoritan gb buildin, kaikki binaarit rakennetaan bin-kansioon. Siksi meidän tarvitsee vain lisätä tulevan deb-pakettimme tiedot suoraan projektikansioon:

Mkdir-projekti/DEBIAN-kosketusprojekti/DEBIAN/ohjaus

Tuloksena tulee seuraavanlainen rakenne:

Projekti/ |- DEBIAN/ | |- ohjaus |- bin/ | |- projekti |- src/ |- toimittaja/

Ohjaustiedostossa meidän on määritettävä tiedot paketistamme. Älä unohda tyhjää viimeistä riviä:

Paketti: projekti Prioriteetti: valinnainen Osio: kehitys Asennettu koko: 100 Ylläpitäjä: Ivan Ivanov Arkkitehtuuri: i386 Versio: 1.0 Riippuu: libc6 (>= 2.1) Kuvaus: Lyhyt kuvaus täällä Pitkä kuvaus täällä

  • Paketti - paketin nimi
  • Priority - paketin prioriteetti (valinnainen, ylimääräinen, vakio, tärkeä, pakollinen) tavallisille ohjelmille on parempi asettaa valinnainen
  • Osasto - osasto, johon se kuuluu tämä paketti(admin, base, comm, contrib, devel, doc, editors, elektroniikka, sulautettu, pelit, gnome, grafiikka, hamradio, tulkit, kde, libs, libdevel, posti, matematiikka, muut, verkko, uutiset, ei-ilmainen, oldlibs , otherosfs, perl, python, tiede, kuoret, ääni, tex, teksti, apuohjelmat, verkko, x11)
  • Installed-Size - pakettitiedostojen koko kilotavuina
  • Ylläpitäjä - paketin laatijan nimi ja sähköpostiosoite
  • Arkkitehtuuri - prosessoriarkkitehtuuri, jolle paketti on tarkoitettu (i386, amd64, kaikki, lähde, kaikki)
  • Versio - pakettiversio
  • Riippuu - tässä kentässä sinun on määritettävä pakettien nimet, joista pakettisi riippuu (esimerkiksi kirjastot)
  • Kuvaus - ensimmäisellä rivillä kirjoitamme lyhyen kuvauksen paketista, loput yksityiskohtaisemmin

Kaikki projektikansiossa oleva menee pakettiin. Ja roskakorikansio myös. Tämä kansio sisältää binaaritiedoston, joka on asennettava. Jotta tiedostosi päätyvät haluttuun hakemistoon käyttäjän tietokoneella, sinun on luotava sopiva hakemistorakenne projektikansioosi.

On syytä huomata, että tämä lähestymistapa deb-pakettien luomiseen ei ole oikein. Tietenkin meidän tapauksessamme otamme tämän askeleen tietoisesti, mutta sinun on ymmärrettävä, että deb-paketti sisältää kaiken projektikansion sisällön, mukaan lukien kansiot src, toimittaja ja niin edelleen. Tietysti voit kopioida tiedostoja toiseen kansioon ja jopa kirjoittaa skriptin, mutta kaikki on jo keksitty ennen meitä. Lisää oikea tapa- Tässä käytetään dh_make- ja dpkg-buildpackage-apuohjelmia.

Nyt voit koota paketin. Voit tehdä tämän suorittamalla komennon yhden tason korkeammalle:

Dpkg-deb -z8 -Zgzip --build-projekti

Yhden tason ylöspäin luodaan project.deb-tiedosto, joka voidaan asentaa komennolla:

Sudo dpkg -i project.deb

Oma pakettivarasto

Siirrytään nyt hauskaan osaan. Kuinka jaamme pakettejamme? Käynnistetään tietysti oma arkistopalvelin. Ja tähän käytämme apt arkistopalvelinta deb-simple.

Tämä on todella yksinkertainen palvelin, joka voidaan asentaa yhdellä komennolla:

Siirry osoitteeseen github.com/esell/deb-simple

Jos goa ei ole asennettu koneelle, jossa aiot käyttää palvelinta arkistoilla, voit rakentaa binaarin paikallisesti ja kopioida sen. Vaihtoehtoisesti voit käyttää dockeria.

Sitten sinun on käynnistettävä palvelin. Tämä voidaan tehdä dockerilla, mutta käytän mieluummin supervisoria. Tässä on esimerkki palvelukokoonpanostani:

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

Tässä on tärkeää ilmoittaa polku binaariin (komento) ja työkansioon (hakemisto), johon asetamme asetuksemme.

Deb-simple-palvelin tukee https:ää, mutta emme vielä tarvitse sitä. Arkistot varten sinun on luotava repo-kansio. Conf.json-kokoonpanomme näyttää tältä:

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

Jos haluat ladata paketin arkistoon, sinun on käytettävä itse palvelun HTTP API:ta:

Curl -XPOST "http://localhost:9090/upload?arch=amd64" -F " [sähköposti suojattu]"

Samoin poistamiseen:

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

Meidän tarvitsee vain lisätä arkistopalvelimemme /etc/apt/source.list.d/ -luetteloon. Voit luoda erillinen tiedosto sisällöllä:

Deb http://oma-isäntänimi:9090/ vakaa pää

Suorita nyt sudo apt-get update ja asenna ohjelmasi mielesi mukaan.


Kirjailija: Michael Reed
Julkaisupäivä: 4.1.2014
Käännös: N. Romodanov
Siirtopäivä: kesäkuu 2014

Kerromme sinulle, kuinka luodaan kaksi yleisintä Linux-pakettityyppiä jakelua varten ohjelmisto, ja voit jakaa omia pakettejasi itse.

Ohjaamme sinut ohjelmistopakettien luomiseen kahdelle suosituimmalle pakettijärjestelmälle, DEB:lle ja RPM:lle. Voit käyttää näitä tekniikoita oman ohjelmistosi paketointiin tai jopa ylläpitää paketteja ohjelmistoille, jotka sinusta tuntuu lentävän tutkan alla.

Aloitamme oppaasta DEB ((.deb) -tiedostojen luomiseen Debian-pohjaisille jakeluille - tätä varten käytämme perustana Xubuntua. Sen jälkeen kerromme yksityiskohtaisesti tekniikat, joita tarvitaan RPM-pakettien luomiseen Red Hatissa käytettäviksi. -johdannaiset jakelut , ja käytämme tähän Fedoraa. Usein on mahdollista luoda paketti yhteen jakeluun ja asentaa se sitten vastaavaan jakeluun (esim. Ubuntu>Debian), mutta jos tämä on tärkeää, kannattaa kokeilla. se itse.

Mitä tulee ohjelmaan, aiomme käyttää kevyttä verkkoselainta Dilloa esimerkkipaketina, joka on rakennettu lähdekoodista. Jos rakentaminen ei toimi lähdekoodista, voit tuttuun tapaan etsiä ratkaisuja Internetistä. Esimerkiksi Dillo 3.0.3:n tapauksessa meidän piti lisätä "LIBS = -lX11" ennen rakennuskomentoja lähdekoodiarkiston virheen vuoksi, jotta komennot toimisivat.

Rakentaminen tapahtuu komentorivillä

Resurssit

Asennus (tai virtuaalikone) Ubuntu ja Fedora

Vaiheittainen kuvaus

Vaihe 01: Virtuaalikoneen käyttö

Virtualointityökalujen, kuten VirtualBox tai Vmware, käyttö on usein paras tapa luoda paketteja muille järjestelmille. Toisaalta tämä lähestymistapa mahdollistaa suhteellisen puhtaan perusasennuksen ylläpitämisen, joka on verrattavissa asetuksiin, joiden kanssa muut todennäköisesti työskentelevät. Tämä tarkoittaa myös sitä, että voit saada kokoelman kohdejärjestelmiä eri jakeluilla. Lisäksi useimmat virtualisointityökalut mahdollistavat erilaisten arkkitehtuurien emuloinnin, ja siksi 32-bittinen alusta voi käyttää 64-bittisiä käyttöjärjestelmiä, vaikka suorituskyky kärsii.

Vaihe 02: Aloitetaan alusta

Jos jokin menee pieleen Ubuntussa tai Fedorassa, on täysin turvallista poistaa lähdehakemisto ja aloittaa alusta. Huomaa, että Debian-työkalut muokkaavat alkuperäistä arkistoa, joten sinun on aloitettava uudesta kopiosta.

Osa 1: Debian

Vaihe 03: Asenna rakennusympäristö

Aloitamme asentamalla useimmat työkalut, joita tarvitsemme ohjelmien luomiseen lähdekoodista. Soita:

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

Nyt meidän on asennettava työkalut, joita käytetään työskentelemään DEB-pakettien kanssa. Tee tämä seuraavalla komennolla...

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

Vaihe 04: Luo GPG-avain

Jos et ole aiemmin luonut julkista GPG-avainta, sinun on luotava sellainen nyt, jotta voit allekirjoittaa paketteja. Kirjoita ensin teksti gpg –gen-key. Valitse oletusarvot ja kirjoita pyydettäessä oikea nimesi ja yhteystietosi. Kirjoita kaikki tiedot huolellisesti muistiin, koska meidän on yhdistettävä ne tarkasti määritystiedostoon myöhemmin. Kirjoita tämän jälkeen komento ls ~/.gnupg varmistaaksesi, että uusi avain on olemassa (tämä on tiedosto etunimi_sukunimi.gpg). Luo siitä julkinen avain:

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

Tuo se:

Gpg --import ~/.gnupg/.gpg

Vaihe 05: Lataa paketti

Tässä esimerkissä aiomme ladata ja rakentaa Dillo-verkkoselaimen uusimman version. Siirry Dillon verkkosivustolle (www.dillo.org) ja lataa uusin tiedosto arkisto.tar.bz. Käytä komentoa mkdir ~/srcand luodaksesi hakemiston lähdekoodille ja siirtämällä arkisto siihen.

Vaihe 06: Pura arkisto

Pura arkisto komennolla tar -xjvf [arkiston nimi].tar.bz2. Huomaa, että hakemistojen nimeämiskäytäntöjen (paketin nimi-versio) noudattaminen on meille tärkeää, ja onneksi Dillo-paketti noudattaa niitä. On myös tärkeää, että lähdekoodiarkisto on yhden tason lähdekoodihakemiston yläpuolella.

Vaihe 07: Määritetään Debianille

Sijoita dh_make-skripti juuri purettuun hakemistoon, joka hoitaa suurimman osan työstä - asetustiedoston lisäämisestä ja hakemistorakenteen luomisesta, ja joka on osa aiemmin lisäämäämme kehittäjän työkalupakkia.

Dh_make -e -c -lisenssi -f ../

Esimerkissämme komentorivi se näyttää tältä:

Dh_make -c gpl3 -e [sähköposti suojattu]-f ../dillo-3.0.3.tar.bz2

Valitse pyydettäessä yksi binääritiedosto. Komentosarjan apuohjelman on luotava Debian-niminen hakemisto lähdekoodihakemistoon.

Vaihe 08: Avaa ohjaustiedosto

Avaa sisään tekstieditori ohjaustiedosto Debian-alihakemistossa. Täytä tämän tiedoston Kotisivu-osio (käyttäkää Googlea Debian-ohjelman osien luettelon täyttämiseen) ja kuvauskentät.

Vaihe 09: Tutki olemassa olevia riippuvuuksiasi

Voit tutkia, mitä riippuvuuksia tarvitaan pakettina toimitettavan ohjelman suorittamiseen. Mene hakemistoon, jossa on lähdekoodi ja kirjoita komento dpkg-depcheck -d ./configure terminaaliin. Jos teet tämän, saat virheilmoituksia, jotka osoittavat, mikä ohjelman rakentamiseen tarvittava paketti puuttuu (toimitetaan erikseen). Voit avata tämän paketin kirjoittamalla sudo apt-get build-dep [paketin nimi], jonka pitäisi auttaa, jos jakelusi arkisto tukee pakettia. Jos sitä ei tueta, sinun on suoritettava toistuvasti komento dpkg-depcheck -d ./configur ja lisättävä paketit manuaalisesti kirjoittamalla psudo apt-get install [paketin nimi].

Vaihe 10: Lisää riippuvuuksia ohjaustiedostoon

Kun kaikki edellisen vaiheen vaiheet on suoritettu, sinulla pitäisi olla luettelo kaikista vaadituista paketeista. Lisää tämä riippuvuusluettelo ohjaustiedoston riippuvuusosaan. Luettelon kohteet on erotettava toisistaan ​​pilkulla ja välilyönnillä.

Yritä suorittaa tämä vaihe niin paljon kuin voit, äläkä ohita sitä. Lähde: - Tämä on yleensä kotisivu hanke. Tiedostot-osiossa: * korvaa tekijänoikeustiedot projektin tekijöiden nimillä. Näet esimerkin Tiedostot: debian/* -osion täyttämisestä, johon tarvittavat tiedot tulee syöttää. Saatat joutua olemaan vähän etsivä löytääksesi tarvitsemasi tiedot. Etsi lähdehakemistosta tiedostoja, kuten AUTHORS ja COPYING.

Vaihe 12: Muokkaa muutoslokitiedostoa

Avaa muutoslokitiedosto ja varmista, että nimi ja osoite ovat kunnossa sähköposti ovat samat kuin ne, jotka annoit luodessasi GPG-avainta. Tyypillisesti apuohjelma saattaa lisätä tiedostoon käyttäjänimesi oikean nimesi sijaan. Kuten tekijänoikeustiedoston kohdalla, älä ohita tätä osaa, koska se voi aiheuttaa paketin luontiprosessin pysähtymisen tai väärän paketin luomisen.

Vaihe 13: Luo paketti

Jos kaikki on määritetty oikein, voimme vihdoin rakentaa DEB-paketin. Mene lähdehakemistoon ja suorita dpkg-buildpackage -b rakentaaksesi paketin, joka sijoitetaan ~/src/-hakemistoon. Luo esimerkiksi paketti komennolla dpkg -I [paketti]. Voit tarkistaa Debianin käytäntöjen noudattamisen suorittamalla Lintian-ohjelman komennolla lintian [paketti]. Huomaa, että tämä työkalu on tunnetusti tiukka, ja sinun on päätettävä, hyväksytkö jotkin pienet. Asenna lopuksi sopimus komennolla sudo dpgk -i [paketti].

Osa 2: RPM-pakettien luominen Fedorassa

Vaihe 14: Avaa ohjaustiedosto

Vaihda pääkäyttäjätilaan kirjoittamalla su. Aloita Kehitystyökalut-asennusryhmästä yumissa ja asenna sitten gcc-c++ fedora-pakkaaja yumilla. Kirjoita komento usermod -a -G mock lisätäksesi käyttäjän valeryhmään. Tämä antaa meille mahdollisuuden suorittaa koontiprosessin ilman, että meidän tarvitsee tulla pääkäyttäjäksi.

Vaihe 15: Luo rakennusympäristö

Paina Ctrl + D poistuaksesi pääroolista. Kirjoita rpmdev-setuptree luodaksesi tarvitsemamme hakemistopuun (kohdassa ~/rpmbuild).

Vaihe 16: Lataa arkisto ja siirrä se haluamaasi paikkaan

Lataa Dillo-paketti Dillon verkkosivuilta ja siirrä arkisto sopivaan hakemistoon - kirjoita mv [arkiston nimi] ~/rpmbuild/SOURCES.

Vaihe 17: Luo .spec-tiedosto

Red Hatiin perustuvat jakelut, kuten Fedora, käyttävät .spec-tiedostoja rakennusprosessin määrittämiseen. Vaihda tällaiset tiedostot sisältävään hakemistoon komennolla cd ~/rpmbuild/SPECS/andcreateablank.spec ja luo tyhjä .spec-tiedosto käyttämällä rpmdev-newspec dilloa.

Vaihe 18: Muokkaa .spec-tiedostoa

Kirjoita komento gedit dillo.spec. Täytä Versio-, Yhteenveto- ja Lisenssi-kentät (in tässä tapauksessa- GPLv3+). kotisivu hanke; Lähde0 määrittää lähdekoodin osoitteen. Kirjoita kommentit BuildRequires- ja Requires-kenttiin. Lisätä täydellinen kuvaus%kuvausalueelle.

Vaihe 19: Rakenna lähdekoodi

Jos järjestelmä tukee pakettia ollenkaan, suorita komento yum-builddep [paketin nimi]. IN muuten, sinun on toistettava build-komento saadaksesi virheilmoitukset tai etsittävä dokumentaatiota lähdekoodiarkistosta. Kirjoita SPEC-hakemistoon rpmbuild -ba[paketin nimi].spec. Jos tämä koontiversio epäonnistuu ja raportoi lisää pakkaamattomia tiedostoja, korosta ja kopioi tämä tiedostoluettelo .spec-tiedoston %files-osioon ja anna koontikomento uudelleen. Paketti sijaitsee nyt RPMS-hakemistossa. Asenna se kirjoittamalla rpm -ivh [paketti]. Kirjoita komento rpm -qa | grep [paketti] varmistaaksesi, että se on asennettu.

Tämä artikkeli ei ole täydellinen. Voit auttaa sen kirjoittamisessa

    Artikkelin tyylin korjaaminen

    Lisäämällä lisätietoja lähdekoodien valmistelusta debianointia varten

Debian-pohjaisissa jakeluissa ei ole vain erinomainen APT-paketinhallintajärjestelmä, joka ratkaisee riippuvuudet itse, vaan myös käteviä työkaluja pakettien ja omien arkistoiden luomiseen. Jos olet jo päättänyt rakentaa ohjelman lähdekoodista, suosittelen tutustumaan myös lähdekoodin debianointiin. Se kestää hieman tavallista kauemmin

./ määritä && tee && tee asennus tee poista

mutta kaikki lähteet eivät tue tätä, ja vielä yleisempää on, että lähteet poistetaan asennuksen jälkeen, jolloin ohjelman voi poistaa vain manuaalisesti. Mutta tehdäksesi tämän, sinun on tiedettävä tarkalleen, mikä on asennettu ja missä. Ja kukaan ei tiedä tätä varmasti, paitsi ohjelman kehittäjät itse (tai ne, jotka enemmän tai vähemmän ymmärsivät ohjelman lähdekoodin).

Asennuskoteloiden luokittelu

mahdollista seuraavat tapaukset paketin rakennelmat:

    Rakenna lähteestä;

    Kokoaminen binääritiedostoista;

lähdekoodit tai binaaritiedostot otetaan:

    Ei arkistosta;

    Toisen jakelun arkistosta;

    Toisen Ubuntu-julkaisun arkistosta, PPA:sta tai Debianista;

debianointi:

    Ei saatavilla;

    Otettu Ubuntu-arkistosta, PPA:sta tai Debianista:

    • Ohjelman toisesta versiosta;

      Ohjelman nykyisestä versiosta:

      • Ei nykyisestä Ubuntun julkaisuvarastosta;

        Nykyisestä Ubuntun julkaisuvarastosta;

kokoamisen syy:

    Nykyinen Ubuntu-arkisto tai PPA eivät sisällä vaadittua versiota ohjelmasta;

    Jostain syystä et ole tyytyväinen ohjelman saatavilla olevaan versioon (et ole tyytyväinen ohjelmakoodiin tai tietoihin, konfigurointiparametreihin tai ohjaustiedot paketti);

    Molemmat.

Rakenna lähteestä

Mitä tarvitaan

Täydellinen Debianin kehittäjän opas on saatavilla.

Valitettavasti venäjänkieliset tiedot ovat hieman vanhentuneita, uusimmat ohjeet ovat saatavilla englanniksi. Mutta periaatteet eivät ole muuttuneet, joten jos olet kiinnostunut yksityiskohdista, on parempi lukea käsikirja huolellisesti.

Tarvitsemme vähintään komennon asentamia ohjelmia

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

Voit myös tehdä automaattisen varauksen - tämä on GNU-apuohjelmien Autoconf, Automake ja Libtool dokumentaatio. Ja tietysti mitä he itse vaativat lähdekoodeja oikeaa kokoonpanoa varten.

Salausavaimen luominen

Tämä vaihe on valinnainen ja voidaan ohittaa.

Voit luoda avaimen siirtymällä kohtaan Sovellukset → Apuohjelmat → Salasanat ja salausavaimet. Avautuvassa ikkunassa valikossa Näppäin → Uusi näppäin, valitse avain pgp. Kenttien täyttäminen Koko nimi Ja Sähköpostiosoite.

Ilmaisten ohjelmistojen maailmassa "varkauksien" tai "väärennösten" estämiseksi on tapana allekirjoittaa "arvokkaat" tavarasi elektroninen avain, jonka julkinen osa on tallennettu julkisille palvelimille ja jonka avulla muut käyttäjät voivat helposti määrittää tietyn asian aitouden ja eheyden.
Ole siis erittäin vastuullinen avainta luodessasi.
Kukaan ei pakota sinua syöttämään tänne oikeaa etu- ja sukunimeäsi tai muita henkilötietojasi, mutta jos et ole Interpolin haluttu, uskon, että suku- ja etunimesi kirjoittaminen on oikea päätös, vaikka voit käyttää vain lempinimeäsi. Yleensä päätä itse. Ilmoita kuitenkin oikea postiosoite, jota et muuta.

Voit luoda laatikon, jos sinulla ei vielä ole sellaista, joillekin suosituille sähköpostipalvelin: esimerkiksi gmail.com tai yandex.ru.
Tämä helpottaa sellaisen henkilön jatkossa yhteydenottoa, joka ei tunne sinua, mutta joka syystä tai toisesta on törmännyt allekirjoittamaasi "asiaan".
Seuraavaksi sinua pyydetään antamaan salasana lisäsuojaksi. Se voi olla hyödyllistä, jos käytät yksityistä avainta koneissa, joihin et voi 100% luottaa. Kääntöpuoli- Sinun on syötettävä salasanasi aina, kun allekirjoitat jotain.

Vaikka uusin versio ohjelmia merihevonen sisältää daemonin, joka käynnistyy automaattisesti GNOME-istunnossa ja voi "muistaa salasanan" koko istunnon ajan, mutta kaikki ohjelmat eivät vielä toimi sen kanssa.

Joten, olet luonut avaimen - nyt sitä voidaan käyttää pakettien luomiseen.
Tätä varten sinun on syötettävä muuttujia tiedostoon ~/.bashrc tai toiseen suosikkikuoresi käynnistysskriptiin (zsh ~/.zshrc).

Vie DEBEMAIL=oma@sähköpostiosoitteesi

Sähköpostin perusteella avainta haetaan pgp:ssä pakettia allekirjoitettaessa.
Sinun on kirjauduttava ulos ja uudelleen sisään, jotta muutokset tulevat voimaan.
Muista, että jos olet backportoimassa pakettia, jota et ole debianisoinut, sinun on vaihdettava versio komennolla

dch -i

jotta sähköpostisi sisällytetään muutoksiin. Ja jotta julkinen avaimesi pääsisi palvelimelle, sinun on " merihevonen→ Salasanat ja salausavaimet”, muodosta yhteys julkisen avaimen palvelimeen.
Voit tehdä tämän valikossa Muokkaa → Valinnat kirjanmerkissä Avainten julkaiseminen sinun on valittava ruutu Julkaise avaimet....
Nyt voit valita avaimen valikosta painamalla oikea painike valita Synkronoi ja julkaise avaimet.

Debianointi ei ole käytettävissä

Meillä on siis vain gcoolprog-0.5.3.tar.gz.

Yleensä teen seuraavaa:

Työhakemiston valmistelu

"http://<путь до файла>" #Voit tietysti vain ladata sen selaimen kautta, mutta se on yleensä nopeampi

Saamme tiedoston gcoolprog-0.5.3.tar.gz. Puretaan se pakkauksesta ja siirrytään tuloksena olevaan hakemistoon:

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

Oikeaa kokoonpanoa varten juurihakemistossa on oltava paitsi nimi, myös versio!

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

Jos komento on suoritettu onnistuneesti, jäljellä on vain debianize.

Debianointi

Tässä ei ole mitään väärää, kuten jo sanoin, on olemassa skriptejä, jotka yksinkertaistavat tätä prosessia suuresti.
Yleisesti ottaen koko tämän menettelyn tarkoitus on luoda debian-hakemisto lähteiden juureen, kanssa tarvittavat tiedostot kokoonpano ja komentosarjat.
Tätä varten suoritamme lähdetekstien juurella

Dh_make --createorig

Mitä varten meidän pitäisi saada seuraava dialogi?

Paketin tyyppi: yksi binaari, useita binaaritiedostoja, kirjasto, ydinmoduuli vai cdbs? [sähköposti suojattu] Päivämäärä: Ma, 13 Aug 2007 12:40:33 +0400 Paketin nimi: gcoolprog Versio: 0.5.3 Lisenssi: blank Paketin tyyppi: Yksittäinen osuma vahvistaaksesi:

Tässä kehotetaan luomaan paketti yhdelle binääritiedostolle.

Mutta sinä ja minä olemme mahtavia ja kaikki sujui ilman virheitä - lähdekoodin juureen ilmestyi debian-hakemisto, jonka sisältöä tarkasteltaessa näet joukon tiedostoja (laajennus .ex) ja esimerkkejä kaikkiin tilanteisiin.

Kuvaus:

Sijasta Ja (ilman kulmalainausmerkkejä) sinun on annettava kuvaus siitä, millainen ohjelma on kyseessä.
Tämä on tieto, jonka käyttäjä näkee katsoessaan paketin kuvausta.
Toinen kohta on tiedoston korjaaminen debian/rules
osiossa binäärikaari: täytyy jättää kommentoimatta (eli poista # rivin alusta)

Dh_install

ilman tätä saamme tyhjän paketin.
Joskus debian/rules sisältää vain:

%:dh$@

Mikä on hyväksyttävää käyttämällä debhelperiä.
Nämä asetukset riittävät rakentamaan paketin yhdestä ohjelmasta, joka ei sisällä jaettuja kirjastoja, ts. vain binaari /usr/bin ja tiedot /usr/share.

Paketin rakentaminen

Nyt kootaan paketti:

Yllä olevassa hakemistossa, ts. tiedostosta ~/src/gcoolprog/0.5.3, saamme tiedostot

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

Nyt voimme asentaa paketin

dpkg -i *.deb

Debianointi otetaan Ubuntun arkistosta, PPA:sta tai Debianista

Debianointi on otettu ohjelman toisesta versiosta

Tässä tapauksessa on erittäin kätevää ottaa debianointi sieltä ja korjata se uudelle versiolle.

Kuten jo sanoin, ehkä meillä on onnea ja riittää, että vaihdamme version. Mutta älkäämme arvaako.

Jäljempänä en kommentoi edellisessä ratkaisussa kuvattua.

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

saamme tiedoston 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

nyt puretaan se

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

lataa edellinen versio osoitteesta http://packages.ubuntu.com tai http://packages.debian.org, tiedosto gcoolprog_0.5.1.diff.gz( aivan alareunassa Lisätietoja gcoolprogista -osiossa)

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

hanki hakemisto

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

kopioi hakemisto gcoolprog-0.5.1/debian hakemistoon ~/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

tämä komento muuttaa debian/changelog-tiedoston, esimerkiksi näemme

Gcoolprog (0.5.1-1ubuntu2) feisty; kiireellisyys = alhainen * -- denis< ubuntu_user@ mail.ru>

mutta koska meillä on versio 0.5.3, meidän on muutettava arvot

Gcoolprog (0.5.3-1ubuntu1) feisty; urgency = alhainen * Uusi alkupään julkaisu.< ubuntu_user@ mail.ru>--denis

Ma, 13. elokuuta 2007 14:13:27 +0400

tallenna muutokset. Nyt voit ajaa build-komennon paketiksi.

Dpkg-buildpackage -rfakeroot

hanki tiedostot

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

Debianointi on otettu ohjelman nykyisestä versiosta

Debianointia ei ole otettu nykyisen Ubuntu-julkaisun arkistosta Debianille on käytettävä sivustoa http://packages.debian.org, Ubuntulle - http://packages.ubuntu.com. Sitten esimerkiksi Ubuntusta etsitään paketti gcoolprog

arkistoon tulevaa julkaisua varten.

Valmistetaan ensin työhakemisto

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

lataa nyt kolme tiedostoa

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

tai sama asia, mutta yhdellä komennolla

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

pura sitten pakkaus komennolla

Dpkg-lähde -x ./ gcoolprog_0.5.3-1 .dsc

Haetaan hakemisto gcoolprog-0.5.3. Mennään siihen ja muutetaan versiota:< ubuntu_user@ mail.ru>--denis

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

tallenna muutokset. Nyt voit ajaa build-komennon paketiksi.

Dpkg-buildpackage -rfakeroot

Nyt voit koota paketin

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

Debianointi on otettu nykyisen Ubuntu-julkaisun arkistosta

Siinä tapauksessa, että nykyisen Ubuntu-julkaisun arkistossa on paketti halutulle ohjelman versiolle, mutta jostain syystä se ei ole tyydyttävä ja sen lähteisiin on tehtävä muutoksia (esimerkiksi asentaa jonkinlainen korjaustiedosto ) ja rakennettu uudelleen Debianization-paketissa jo olevan sisällön perusteella, voit tehdä seuraavasti.

Rakentaaksesi tarvitset seuraavat paketit: build-essential devscripts fakeroot. Myös kehityspaketteja tarvitaan, asennamme ne myöhemmin.

Lataa lähteet: cd ~/src apt-get lähde

apt-get source lataa lähteet Ubuntu-arkistosta nykyiseen hakemistoon. Monilla arkiston paketeilla on yhteiset lähteet keskenään, joten valitun paketin lähteiden lisäksi voidaan ladata myös muiden pakettien lähteitä (useammille paketeille yhteiset lähteet).

Asenna kokoonpanoon tarvittavat kehityspaketit:

sudo apt-get build-dep gcoolprog

Keräämme paketteja:

cd gcoolprog-0.5.3 debuild -b -us -uc

debuild tulee suorittaa lähdehakemistossa. -b -us -uc -vaihtoehdot välitetään dpkg-buildpackage-ohjelmalle. Ensimmäinen edellyttää vain binääripakettien keräämistä, toinen ja kolmas eivät allekirjoita digitaalinen allekirjoitus, lähdepaketti ja .changes-tiedosto. Tuloksena olevat paketit ovat hakemistossa yhden tason korkeammalla.

Rakentaminen binääritiedostoista

Alla on esimerkki siitä, mitä voit tehdä, jos vain deb-paketti on saatavilla eikä debianisoituja lähteitä ole.

Oletetaan, että työskentelemme hakemistossa ~/tmp. Luodaan alihakemisto ~/tmp/someprog Jos haluat purkaa paketin tiedostot, sinun on suoritettava

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

Poimiakseen ohjaustiedot, tehdään

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

No, nyt, jotta voit laittaa kaiken takaisin pakettiin, sinun on tehtävä

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

Luettelossa ~/tmp/someprog/DEBIAN sisältää tiedostoja, jotka kuvaavat paketin, mistä se riippuu ja tarkistussummat sen sisältämät tiedostot. Jotta voit rakentaa paketin, sinun on sijoitettava tiedostot hakemistoon ~/tmp/someprog ikään kuin se olisi juurihakemisto, eli jos haluat, että tiedosto asennetaan /usr/bin, sinun täytyy laittaa se hakemistoon ~/tmp/someprog/usr/bin, ja vastaavasti, jos jotain pitäisi olla /jne, sitten sisään ~/tmp/someprog/etc jne.

Sitten sisään ~/tmp/someprog Luo hakemisto DEBIAN, muista käyttää isoja kirjaimia ja siinä tiedosto ~/tmp/someprog/DEBIAN/control, tämä tiedosto kuvaa paketin nimen, sen riippuvuudet ja kuvauksen, muoto on hyvin yksinkertainen. Esimerkiksi:

Paketti: libcurl3 Versio: 7.15.2-2 Osio: libs Prioriteetti: valinnainen Arkkitehtuuri: i386 Riippuu: 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-sertifikaatit Ehdotukset: libldap2 Korvaukset: libcurl2 (<< 1:7.11.2-2) Installed-Size: 324 Maintainer: Domenico Andreoli Lähde: curl Kuvaus: Multi-protocol-tiedostonsiirtokirjasto libcurl on suunniteltu kiinteäksi, käyttökelpoiseksi, luotettavaksi ja kannettavaksi usean protokollan tiedostonsiirtokirjastoksi.

.

SSL-tuen tarjoaa OpenSSL.

LDAP-tukipaketin käyttöönotto edellyttää libldap2-dev.

Kuinka säätää värimaailmaa oikein kannettavassa tietokoneessa? Vastaus mestarilta: No, ostit vihdoin kannettavan tietokoneen! Sellaisia...