Skip to Content
Building OsSérsniðin hugbúnaður úr frumkóðageymslum

Sérsniðin hugbúnaður úr frumkóðageymslum

OpenFactory uppskriftir geta vísað í Git geymslu sem sérsniðnum pakka-inntaki á studdum myndbyggjum. Þetta er birgðakeðjutæk leið: geymslan, leysta endurskoðunin, pökkunarleiðbeiningar, byggingar háðar og myndaður pakki þurfa yfirferð.

Stuðningur fer eftir markmiði. Sumir byggjarar hafna frumkóða-pakka byggingum, þar með talið núverandi Raspberry Pi og Proxmox leiðir. Staðfestu framboð í normaliseruðu uppskriftinni og byggingaráætluninni áður en þú lofar að pakki verði myndaður.

Uppskriftarform

Færslur fyrir sérsniðna pakka eru undir os.custom_packages:

{ "os": { "custom_packages": [ { "name": "my-agent", "git_url": "https://github.com/example/my-agent.git", "branch": "release-1.x" } ] } }

Skemað tekur við greinanafni, ekki óbreytanlegu commit reit. Fyrir stýrt release skaltu skrá nákvæman commit sem byggingin leysti og gera þann commit hluta af varðveittri uppruna. Eitt hreyfanlegt grein nafn er ekki endurtekið inntak.

Undirbúðu geymsluna

Núverandi pakka leiðin býst við innfæddum pökkunar lýsigögnum sem henta markmiðinu. Algeng dæmi eru Debian debian/ mappa eða RPM spec. Nákvæm hegðun byggjara og studdar útgáfur markmiðs geta breyst, svo staðfestu lágmarks pakka í útsettum umhverfi frekar en að treysta á fasta samhæfistöflu.

Fyrir Debian pökkun skaltu að minnsta kosti fara yfir:

  • debian/control fyrir auðkenni frumkóða/tvíundar og háðar;
  • debian/changelog fyrir útgáfu pakka;
  • debian/rules og önnur keyranleg maintainer skriftur;
  • uppsetningar yfirlýsingar og systemd einingar; og
  • leyfisveitingu og innifalda efni frá þriðja aðila.

Fyrir RPM pökkun skaltu fara yfir spec heimildir, byggingarkröfur, scriptlets, skráalista og leyfis lýsigögn.

Gerðu ekki ráð fyrir að eignarhald á geymslu geri byggingar skriftur öruggar. Pakka byggingar keyra ótraustan frumkóða og pökkunar röksemdarfærslu innan einangrunarmörka byggingar innviða.

Aðrar pakka stýringar

Innfæddir pakkar

Notaðu os.packages fyrir pakka sem valin dreifing eða skýrt stillt geymsla veitir nú þegar:

{ "os": { "packages": ["curl", "jq"] } }

Pakka yfirskrifanir

os.package_overrides getur lýst yfir add, remove eða replace:

{ "os": { "package_overrides": [ {"name": "nano", "action": "replace", "replacement": "neovim"}, {"name": "telnet", "action": "remove"} ] } }

Override sannar ekki að háða leysing virti það. Athugaðu lokaeignaskrá pakka og absence/presence assertions.

Viðbótar geymslur

os.extra_repos er ítarlegt inntak. Bættu ekki við óundirrituðu HTTP geymslu eins og sýnt er í eldri dæmum. Samþykkt geymslu samþætting þarf HTTPS flutning, festa undirritunar lykil, framfylgni undirritana, release lýsigögn sem henta package manager, og skráð eignarhald og uppfærslustefnu. Ef núverandi byggjari getur ekki lýst þessum trauststýringum skaltu ekki nota geymsluna.

Samþykktar sönnun

Fyrir hvern sérsniðinn pakka skaltu varðveita:

  • geymslu URL og leystan commit;
  • yfirferð á frumkóða og tilkynntri leyfi;
  • skyndimynd af byggingarumhverfi og háðum;
  • byggingar annála og nafn/útgáfu/vinnuvél myndaðs pakka;
  • pakka digest og sönnun um undirritun geymslu þar sem við á;
  • lokaeignaskrá myndar sem sýnir pakka uppsettan;
  • service eða keyranlega skrá smoke próf; og
  • hegðun við fjarlægingu og uppfærslu.

Tókst frumkóða pakka stig nægir ekki. Myndbygging getur síðar mist ekki að nota pakka, og uppsettur pakki getur samt verið ónothæfur.

Úrræðaleit

  • Pökkunar lýsigögn hafnað: staðfestu innfæddan pakka staðbundið með sömu dreifingu release og vinnuvél.
  • Byggingar háð vantar: notaðu háðar úr samþykktum geymslum fyrir það markmið; sóttu ekki handahófskenndar tvíundir í maintainer skriftu án þess að segja til.
  • Pakki vantar í mynd: berðu saman nafn myndaðs tvíundar pakka við normaliseruð uppsetningarbeiðni og lokaeignaskrá.
  • Útgáfa breyttist ekki: uppfærðu innfædd lýsigögn útgáfu og staðfestu að nýr frumkóða commit hafi verið leystur.
  • Service mistókst: skoðaðu unit, runtime háðar, heimildir og guest annála; bættu við hegðunar stigs assertion áður en endurbygging.