{"id":38929,"date":"2019-10-31T22:26:48","date_gmt":"2019-10-31T19:26:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive\/"},"modified":"2019-10-31T22:26:48","modified_gmt":"2019-10-31T19:26:48","slug":"linux-mnogolikij-kak-rabotat-na-lyubom-distributive","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive","title":{"rendered":"\u0160aj\u0101 rakst\u0101 tiks atkl\u0101ts.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"\u0160aj\u0101 rakst\u0101 tiks atkl\u0101ts.\" src=\"\/wp-content\/uploads\/2019\/10\/ee1aaad566204532c974a3ce8f13b915.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIzveidot dubl\u0113\u0161anas lietotni, kas darbojas jebkur\u0101 izplat\u012bjum\u0101 \u2014 tas ir sare\u017e\u0123\u012bts uzdevums. Lai nodro\u0161in\u0101tu Veeam Agent for Linux darb\u012bbu izplat\u012bjumos no Red Hat 6 un Debian 6 l\u012bdz OpenSUSE 15.1 un Ubuntu 19.04, ir j\u0101risina daudzas probl\u0113mas, \u012bpa\u0161i \u0146emot v\u0113r\u0101, ka programmat\u016bras produkt\u0101 ir iek\u013cauts kodola modulis.<\/p>\n<p>Raksts izveidots, pamatojoties uz uzst\u0101\u0161anos konferenc\u0113 <noindex><a rel=\"nofollow\" href=\"https:\/\/linuxpiter.com\/materials\/2636\"> LinuxPiter 2019<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nLinux \u2014 t\u0101 nav tikai viena no popul\u0101r\u0101kaj\u0101m OS. Faktiski t\u0101 ir platforma, uz kuras var izveidot kaut ko unik\u0101lu, kaut ko savu. \u0160\u012b iemesla d\u0113\u013c Linux ir daudz izplat\u012bjumu, kas at\u0161\u0137iras ar programmat\u016bras komponentu komplektu. Un \u0161eit rodas probl\u0113ma: lai programmat\u016bras produkts darbotos jebkur\u0101 izplat\u012bjum\u0101, ir j\u0101patur pr\u0101t\u0101 katra izplat\u012bjuma \u012bpatn\u012bbas.<\/p>\n<h2>Paket\u0113\u0161anas p\u0101rvaldnieki. .deb vs .rpm<\/h2>\n<p>\nS\u0101ksim ar ac\u012bmredzamo probl\u0113mu produkta izplat\u012b\u0161an\u0101 da\u017e\u0101dos izplat\u012bjumos.<br \/>\nPats tipisk\u0101kais veids, k\u0101 izplat\u012bt programmat\u016bras produktus, ir aug\u0161upiel\u0101d\u0113t paketi repozitorij\u0101, lai ieb\u016bv\u0113tais sist\u0113mas paket\u0113\u0161anas p\u0101rvaldnieks var\u0113tu to no turienes instal\u0113t.<br \/>\nTom\u0113r mums ir divi popul\u0101ri pakot\u0146u form\u0101ti: <i>rpm<\/i> un <i>deb<\/i>. Tas noz\u012bm\u0113, ka b\u016bs j\u0101atbalsta katrs.<\/p>\n<p>Deb-pakot\u0146u pasaul\u0113 sader\u012bbas l\u012bmenis ir p\u0101rsteidzo\u0161s. Viena un t\u0101 pati pakete vien\u0101di labi tiek instal\u0113ta un darbojas gan Debian 6, gan Ubuntu 19.04. Pakot\u0146u veido\u0161anas un apstr\u0101des procesi, kas noteikti vecajos Debian izplat\u012bjumos, joproj\u0101m ir aktu\u0101li ar\u012b modernajos Linux Mint un elementary OS. T\u0101d\u0113\u013c Veeam Agent for Linux gad\u012bjum\u0101 pietiek ar vienu deb-paketi katrai aparat\u016bras platformai.<\/p>\n<p>Savuk\u0101rt rpm-pakot\u0146u pasaul\u0113 at\u0161\u0137ir\u012bbas ir lielas. Pirmk\u0101rt, t\u0101p\u0113c, ka ir divi piln\u012bgi neatkar\u012bgi izplat\u012bt\u0101ji Red Hat un SUSE, kur\u0101m nav nepiecie\u0161ama sader\u012bba. Otrk\u0101rt, \u0161iem izplat\u012bt\u0101jiem ir izplat\u012bjumi ar tehnisko atbalstu un eksperiment\u0101lie. Starp tiem sader\u012bba ar\u012b nav nepiecie\u0161ama. Mums ir izveidoju\u0161ies paketi el6, el7 un el8. Atsevi\u0161\u0137a pakete Fedora. Paketes SLES11 un 12 un atsevi\u0161\u0137a openSUSE. Galven\u0101 probl\u0113ma \u2014 atkar\u012bb\u0101s un pakot\u0146u nosaukumos. <\/p>\n<h2>Atkar\u012bbu probl\u0113ma<\/h2>\n<p>\nDiem\u017e\u0113l vienas un t\u0101s pa\u0161as paketes bie\u017ei ir ar da\u017e\u0101diem nosaukumiem da\u017e\u0101dos izplat\u012bjumos. Zem\u0101k ir nepiln\u012bgs veeam paketes atkar\u012bbu saraksts.<\/p>\n<p>EL7 gad\u012bjum\u0101:<br \/>\nSLES 12 gad\u012bjum\u0101:<\/p>\n<ul>\n<li>libblkid<\/li>\n<li>libgcc<\/li>\n<li>libstdc++<\/li>\n<li>ncurses-libs<\/li>\n<li>fuse-libs<\/li>\n<li>file-libs<\/li>\n<li>veeamsnap = 3.0.2.1185<\/li>\n<\/ul>\n<ul>\n<li>libblkid1<\/li>\n<li>libgcc_s1<\/li>\n<li>libstdc++6<\/li>\n<li>libmagic1<\/li>\n<li>libfuse2<\/li>\n<li>veeamsnap-kmp = 3.0.2.1185<\/li>\n<\/ul>\n<p>\nK\u0101 rezult\u0101t\u0101 atkar\u012bbu saraksts izr\u0101d\u0101s unik\u0101ls katram izplat\u012bjumam. <\/p>\n<p>Slikt\u0101k ir tad, kad zem vec\u0101 pakotnes nosaukuma s\u0101k sl\u0113pties atjaunin\u0101ta versija. <\/p>\n<p><b>IsClosed = 0 AND Canceled = 0 AND Enabled = 0<\/b><\/p>\n<p>Fedora 24 ir atjaunin\u0101ta pakotne <i>ncurses<\/i> no 5. versijas uz 6. versiju. M\u016bsu produkts tika veidots tie\u0161i ar 5. versiju, lai nodro\u0161in\u0101tu sader\u012bbu ar vecajiem izplat\u012bjumiem. Lai izmantotu veco 5. versiju bibliot\u0113kas Fedora 24, bija j\u0101izmanto pakotne <i>ncurses-compat-libs<\/i>. <\/p>\n<p>K\u0101 rezult\u0101t\u0101 Fedora par\u0101d\u0101s divas pakotnes ar da\u017e\u0101d\u0101m atkar\u012bb\u0101m. <\/p>\n<p>T\u0101l\u0101k interesant\u0101k. P\u0113c k\u0101rt\u0113j\u0101 izplat\u012bjuma atjaunin\u0101juma pakotne <i>ncurses-compat-libs<\/i> ar 5. versijas bibliot\u0113ku izr\u0101d\u0101s nepieejama. Izplat\u012bt\u0101jam ir neizdev\u012bgi tur\u0113t vec\u0101s bibliot\u0113kas jaunaj\u0101 izplat\u012bjum\u0101. P\u0113c k\u0101da laika probl\u0113ma atk\u0101rtoj\u0101s ar\u012b SUSE izplat\u012bjumos.<\/p>\n<p>K\u0101 rezult\u0101t\u0101 da\u017eiem izplat\u012bjumiem n\u0101c\u0101s atteikties no ac\u012bmredzamas atkar\u012bbas no <i>ncurses-libs<\/i>, un produktu labot t\u0101, lai tas var\u0113tu str\u0101d\u0101t ar jebkuru bibliot\u0113kas versiju.<\/p>\n<p>Starpcitu, 8. versij\u0101 Red Hat vairs nav meta-pakotnes <i>python<\/i>, kas atsauc\u0101s uz veco labu <i>python 2.7<\/i>. Ir <i>python2<\/i> un <i>python<\/i>3. <\/p>\n<h2>Alternat\u012bva pakot\u0146u p\u0101rvaldniekiem<\/h2>\n<p>\nProbl\u0113ma ar atkar\u012bb\u0101m ir sena un jau sen ac\u012bmredzama. Atcer\u0113simies vismaz Dependency hell. <br \/>\nApvienot da\u017e\u0101das bibliot\u0113kas un lietojumprogrammas t\u0101, lai t\u0101s visas stabilit\u0101ti str\u0101d\u0101tu un nesadz\u012btu \u2014 \u012bsum\u0101, \u0161o uzdevumu cent\u0101s risin\u0101t ikviens Linux izplat\u012bt\u0101js.<\/p>\n<p>Piln\u012bgi cit\u0101di \u0161o probl\u0113mu cent\u0101s risin\u0101t pakot\u0146u p\u0101rvaldnieks <b>Snappy<\/b> no Canonical. Galven\u0101 ideja: lietojumprogramma tiek izpild\u012bta izol\u0113t\u0101 un aizsarg\u0101t\u0101 smil\u0161u kast\u0113. Ja lietojumprogrammai ir nepiecie\u0161amas bibliot\u0113kas, tad t\u0101s tiek pieg\u0101d\u0101tas kop\u0101 ar pa\u0161u lietojumprogrammu.<\/p>\n<p><b>Flatpak<\/b> t\u0101pat \u013cauj palaist lietojumprogrammas smil\u0161u kast\u0113, izmantojot Linux Containers. Smil\u0161u kastes ideju izmanto ar\u012b <b>AppImage<\/b>.<\/p>\n<p>\u0160ie risin\u0101jumi \u013cauj izveidot vienu pakotni jebkuriem izplat\u012bjumiem. Gad\u012bjum\u0101 ar <b>Flatpak<\/b> uzst\u0101d\u012b\u0161ana un lietojumprogrammas palai\u0161ana ir iesp\u0113jama pat bez administratora zin\u0101\u0161an\u0101m.<\/p>\n<p>Galven\u0101 probl\u0113ma ir t\u0101, ka ne visas lietojumprogrammas var darboties smil\u0161u kast\u0113. Da\u017e\u0101m nepiecie\u0161ama tie\u0161a piek\u013cuve platformai. Jau nerun\u0101jot par kodola modu\u013ciem, kas stingri atkar\u012bgi no kodola un jau nemaz neietilpst smil\u0161u kastes koncept\u0101. <\/p>\n<p>Otr\u0101 probl\u0113ma \u2013 popul\u0101rie enterprise vid\u0113 izplat\u012bjumi no Red Hat un SUSE v\u0113l nevar atbalst\u012bt Snappy un Flatpak. <\/p>\n<p>\u0160\u012b iemesla d\u0113\u013c Veeam Agent for Linux nav ne uz <noindex><a rel=\"nofollow\" href=\"https:\/\/snapcraft.io\/\">snapcraft.io<\/a><\/noindex> ne uz <noindex><a rel=\"nofollow\" href=\"https:\/\/flathub.org\/home\">flathub.org<\/a><\/noindex>.<\/p>\n<p>Nosl\u0113dzot jaut\u0101jumu par pakot\u0146u p\u0101rvaldniekiem, varu piebilst, ka past\u0101v iesp\u0113ja piln\u012bb\u0101 atteikties no pakot\u0146u p\u0101rvaldniekiem, apvienojot vien\u0101 pakotn\u0113 bin\u0101r\u0101s failus un skriptu to uzst\u0101d\u012b\u0161anai. <\/p>\n<p>\u0160\u0101da pakotne \u013cauj izveidot vienu kop\u012bgu pakotni da\u017e\u0101d\u0101m distrib\u016bcij\u0101m un platform\u0101m, veicot interakt\u012bvu uzst\u0101d\u012b\u0161anas procesu ar nepiecie\u0161amo piel\u0101go\u0161anu. Esmu sask\u0101ries ar t\u0101d\u0101m pakotn\u0113m Linux vid\u0113 tikai no VMware.<\/p>\n<h2>Atjaunin\u0101jumu probl\u0113ma<\/h2>\n<p>\n<img decoding=\"async\" alt=\"\u0160aj\u0101 rakst\u0101 tiks atkl\u0101ts.\" src=\"\/wp-content\/uploads\/2019\/10\/aa14b10a434c28541574421d97807de7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPat ja visas atkar\u012bbu probl\u0113mas ir atrisin\u0101tas, programma var darboties at\u0161\u0137ir\u012bgi uz viena un t\u0101 pa\u0161a distrib\u016bcijas. Probl\u0113ma sl\u0113pjas atjaunin\u0101jumos.<\/p>\n<p>Ir 3 atjaunin\u0101\u0161anas strat\u0113\u0123ijas:<\/p>\n<ul>\n<li>Vienk\u0101r\u0161\u0101k\u0101 ir nekad neatjaunin\u0101t. Uzst\u0101diet serveri un aizmirstiet. K\u0101p\u0113c atjaunin\u0101jumi, ja viss str\u0101d\u0101? Probl\u0113mas s\u0101kas, sazinoties ar atbalsta dienestu. Distrib\u016bcijas veidot\u0101js atbalsta tikai jaun\u0101ko laidienu. <\/li>\n<li>Var uztic\u0113ties pieg\u0101d\u0101t\u0101jam un iestat\u012bt autom\u0101tisko atjaunin\u0101jumu. \u0160aj\u0101 gad\u012bjum\u0101 zvans uz atbalsta dienestu ir iesp\u0113jams t\u016bl\u012bt p\u0113c neveiksm\u012bga atjaunin\u0101juma.<\/li>\n<li>Rokas atjaunin\u0101\u0161anas variants, tikai p\u0113c t\u0101 test\u0113\u0161anas test\u0113\u0161anas infrastrukt\u016br\u0101, ir visdro\u0161\u0101kais, ta\u010du d\u0101rgs un darbietilp\u012bgs. T\u0101lu ne visi to var at\u013cauties.<\/li>\n<\/ul>\n<p>\nT\u0101 k\u0101 da\u017e\u0101di lietot\u0101ji izmanto da\u017e\u0101das atjaunin\u0101\u0161anas strat\u0113\u0123ijas, nepiecie\u0161ams atbalst\u012bt gan visjaun\u0101ko laidienu, gan visus iepriek\u0161\u0113jos. Tas apgr\u016btina gan izstr\u0101des procesu, gan test\u0113\u0161anu, radot galvass\u0101pes atbalsta dienestam.<\/p>\n<h2>Da\u017e\u0101d\u012bba aparat\u016bras platform\u0101s<\/h2>\n<p>\nDa\u017e\u0101das aparat\u016bras platformas ir probl\u0113ma, kas liel\u0101 m\u0113r\u0101 ir specifiska tie\u0161i native kodam. Vismaz ir j\u0101veido bin\u0101rie faili katrai atbalst\u012btai platformai.<\/p>\n<p>Veeam Agent for Linux projekt\u0101 m\u0113s joproj\u0101m nevaram atbalst\u012bt neko l\u012bdz\u012bgu RISC.<\/p>\n<p>Par \u0161o jaut\u0101jumu neizpl\u016bdu. Vien\u012bgais, ko varu nor\u0101d\u012bt, ir galven\u0101s probl\u0113mas: platformu atkar\u012bg\u0101s tipos, piem\u0113ram, <code>size_t<\/code>, strukt\u016bru izl\u012bdzin\u0101\u0161ana un byte order.<\/p>\n<h2>Statisk\u0101 un\/vai dinamisk\u0101 saist\u012b\u0161ana<\/h2>\n<p>\n<img decoding=\"async\" alt=\"\u0160aj\u0101 rakst\u0101 tiks atkl\u0101ts.\" src=\"\/wp-content\/uploads\/2019\/10\/dc473aad4ea0818940af7eafdbc641fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nTa\u010du jaut\u0101jums \u201eK\u0101 saist\u012bties ar bibliot\u0113k\u0101m \u2014 dinamisk\u0101 vai statisk\u0101 veid\u0101?\u201d ir v\u0113rts apspriest.<\/p>\n<p>Parasti C\/C++ lietojumprogrammas Linux vid\u0113 izmanto dinamisko saist\u012b\u0161anu. Tas lieliski darbojas gad\u012bjum\u0101, ja lietojumprogramma ir speci\u0101li izveidota konkr\u0113tai distrib\u016bcijai.<\/p>\n<p>Ja, ja ir m\u0113r\u0137is iek\u013caut da\u017e\u0101dus distrib\u016bcijas ar vienu bin\u0101ro failu, tad ir j\u0101orient\u0113jas uz visvec\u0101ko atbalst\u012bto distrib\u016bciju. Mums tas ir Red Hat 6. Tas satur gcc 4.4, kas pat nepiln\u012bgi atbalsta C++11 standartus. <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/projects\/cxx-status.html\">piln\u012bb\u0101<\/a><\/noindex>.<\/p>\n<p>M\u0113s veidojam m\u016bsu projektu, izmantojot gcc 6.3, kas piln\u012bb\u0101 atbalsta C++14. Protams, \u0161\u0101d\u0101 gad\u012bjum\u0101 uz Red Hat 6 ir j\u0101nodro\u0161ina, ka libstdc++ un boost bibliot\u0113kas tiek iek\u013cautas. Vienk\u0101r\u0161\u0101k ir saist\u012bt ar t\u0101m statiski.<\/p>\n<p>Diem\u017e\u0113l ne visas bibliot\u0113kas var tikt saist\u012btas statiski.<\/p>\n<p>Vispirms, sist\u0113mas bibliot\u0113kas, piem\u0113ram, <i>libfuse<\/i>, <i>libblkid<\/i> ir j\u0101saista dinamiski, lai nodro\u0161in\u0101tu to sader\u012bbu ar kodolu un t\u0101 modu\u013ciem. <\/p>\n<p>Otrk\u0101rt, ir nianses ar licenc\u0113m. <\/p>\n<p>GPL licence princip\u0101 at\u013cauj saist\u012bt bibliot\u0113kas tikai ar atv\u0113rta koda programm\u0101m. MIT un BSD at\u013cauj statisko saist\u012b\u0161anu un \u013cauj iek\u013caut bibliot\u0113kas projekt\u0101. Bet \u0161\u0137iet, ka LGPL nav pret statisko saist\u012b\u0161anu, bet prasa nodro\u0161in\u0101t piek\u013cuvi failiem, kas nepiecie\u0161ami saist\u012b\u0161anai. <\/p>\n<p>Visp\u0101r\u012bgi run\u0101jot, dinamisk\u0101 saist\u012b\u0161ana aizsarg\u0101 no nepiecie\u0161am\u012bbas kaut ko nodro\u0161in\u0101t.<\/p>\n<h2>C\/C++ programmu veido\u0161ana<\/h2>\n<p>\nLai veidotu C\/C++ programmas da\u017e\u0101d\u0101m platform\u0101m un distrib\u016bcij\u0101m, pietiek izv\u0113l\u0113ties vai sav\u0101kt atbilsto\u0161u gcc versiju un izmantot krustkompilerus specifisk\u0101m arhitekt\u016br\u0101m, sagatavot visu bibliot\u0113ku komplektu. \u0160is darbs ir piln\u012bgi \u012bstenojams, ta\u010du diezgan apgr\u016btino\u0161s. Un nav nek\u0101du garantiju, ka izv\u0113l\u0113tais kompilators un bibliot\u0113kas nodro\u0161in\u0101s darboties sp\u0113j\u012bgu versiju. <\/p>\n<p>Ac\u012bmredzams ieguvums: infrastrukt\u016bra tiek \u013coti vienk\u0101r\u0161ota, jo visu b\u016bvniec\u012bbas procesu var veikt uz vienas ma\u0161\u012bnas. Turkl\u0101t pietiek sagatavot vienu bin\u0101ro failu komplektu vienai arhitekt\u016brai, un var tos iepackot pakot\u0113s da\u017e\u0101diem distrib\u016bcij\u0101m. Tie\u0161i t\u0101 tiek sagatavotas veeam paketes Veeam Agent for Linux.<\/p>\n<p>Pretrun\u0101\u0161ot \u0161im variantam, var vienk\u0101r\u0161i sagatavot build fermu, proti, vair\u0101kas ma\u0161\u012bnas kompil\u0113\u0161anai. Katrs \u0161\u0101ds dators nodro\u0161in\u0101s lietojumprogrammas kompil\u0101ciju un pakotnes izveidi konkr\u0113tam izplat\u012bjumam un noteiktai arhitekt\u016brai. \u0160\u0101d\u0101 gad\u012bjum\u0101 kompil\u0101cija tiek veikta ar l\u012bdzek\u013ciem, kurus sagatavojis izplat\u012bt\u0101js. Tas noz\u012bm\u0113, ka kompilatora sagatavo\u0161anas un bibliot\u0113ku izv\u0113les posms atkr\u012bt. Turkl\u0101t izveides procesu var viegli paraleliz\u0113t. <\/p>\n<p>Ir, protams, ar\u012b \u0161\u0101da pieejas tr\u016bkums: katram izplat\u012bjumam vien\u0101 arhitekt\u016br\u0101 b\u016bs j\u0101sav\u0101c savs bin\u0101ro failu komplekts. T\u0101pat tr\u016bkums ir tas, ka \u0161\u0101dus p\u0101ru datorus j\u0101apkalpo, j\u0101izvieto liels disks un operat\u012bv\u0101 atmi\u0146a. <\/p>\n<p>T\u0101d\u0113j\u0101di tiek veidotas KMOD paketes veeamsnap kodola moduliem Red Hat izplat\u012bjumiem.<\/p>\n<h2>Open Build Service<\/h2>\n<p>\nSUSE kol\u0113\u0123i m\u0113\u0123in\u0101ja \u012bstenot k\u0101du zelta vidusce\u013cu, izstr\u0101d\u0101jot \u012bpa\u0161u pakalpojumu lietojumprogrammu kompil\u0113\u0161anai un pakot\u0146u izveidei \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/openbuildservice.org\/\">openbuildservice<\/a><\/noindex>.<\/p>\n<p>Patiess, \u0161is ir hipervizors, kas izveido virtu\u0101lo ma\u0161\u012bnu, instal\u0113 taj\u0101 visus nepiecie\u0161amos pakotn\u0113, veic lietojumprogrammas kompil\u0101ciju un pakotnes izveidi \u0161aj\u0101 izol\u0113taj\u0101 vid\u0113, p\u0113c tam \u0161\u012b virtu\u0101l\u0101 ma\u0161\u012bna tiek atbr\u012bvota.<\/p>\n<p><img decoding=\"async\" alt=\"\u0160aj\u0101 rakst\u0101 tiks atkl\u0101ts.\" src=\"\/wp-content\/uploads\/2019\/10\/93d2a70c589a7186ecef85a7863e59e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOpenBuildService \u012bstenotais pl\u0101not\u0101js pats noteiks, cik virtu\u0101lo ma\u0161\u012bnu tas var palaist, lai nodro\u0161in\u0101tu optim\u0101lu pakot\u0146u izveides \u0101trumu. Ieb\u016bv\u0113tais parakst\u012b\u0161anas meh\u0101nisms pats parakst\u012bs pakotnes un ievietos t\u0101s ieb\u016bv\u0113taj\u0101 repozitorij\u0101. Ieb\u016bv\u0113t\u0101 versiju kontroles sist\u0113ma saglab\u0101s izmai\u0146u un izveides v\u0113sturi. Atliek tikai pievienot \u0161ai sist\u0113mai savus avotus. Pat servera paaugstin\u0101\u0161ana nav oblig\u0101ta, var izmantot atv\u0113rtu.<\/p>\n<p>Tom\u0113r \u0161eit ir probl\u0113ma: \u0161\u0101ds kombains gr\u016bti iek\u013caujas eso\u0161aj\u0101 infrastrukt\u016br\u0101. Piem\u0113ram, versiju kontrole nav nepiecie\u0161ama, mums jau ir sava avotiem. Parakst\u012b\u0161anas meh\u0101nisms m\u016bsu gad\u012bjum\u0101 at\u0161\u0137iras: tiek izmantots \u012bpa\u0161s servers. Repozitorijs ar\u012b nav nepiecie\u0161ams. <\/p>\n<p>Turkl\u0101t citu izplat\u012bjumu atbalsts \u2014 piem\u0113ram, Red Hat \u2014 ir realiz\u0113ts diezgan nabadz\u012bgi, kas ir visai saprotami.<\/p>\n<p>\u0160\u0101da pakalpojuma priek\u0161roc\u012bba ir \u0101tra jaun\u0101k\u0101s SUSE izplat\u012b\u0161anas versijas atbalsts. Pirms ofici\u0101l\u0101s pazi\u0146o\u0161anas par izlai\u0161anu nepiecie\u0161am\u0101s b\u016bv\u0113\u0161anas pakotnes tiek public\u0113tas publiskaj\u0101 repozitorij\u0101. Jaun\u0101 izplat\u012b\u0161ana tiek pievienota pieejamo izplat\u012bjumu sarakstam OpenBuildService. Ievietojam atz\u012bmi, un t\u0101 tiek pievienota b\u016bv\u0113\u0161anas pl\u0101nam. T\u0101d\u0113j\u0101di jaun\u0101s izplat\u012b\u0161anas versijas pievieno\u0161ana notiek gandr\u012bz ar vienu klik\u0161\u0137i.<\/p>\n<p>M\u016bsu infrastrukt\u016br\u0101, izmantojot OpenBuildService, tiek b\u016bv\u0113ts viss KMP pakot\u0146u kl\u0101sts veeamsnap modu\u013ciem SUSE izplat\u012bjumiem.<\/p>\n<p>T\u0101l\u0101k es v\u0113l\u0113tos piev\u0113rsties jaut\u0101jumiem, kas ir specifiski tie\u0161i kodola modu\u013ciem.<\/p>\n<h2>kernel ABI<\/h2>\n<p>\nLinux kodola modu\u013ci v\u0113sturiski tika izplat\u012bti k\u0101 avota kodi. Proti, kodola autori neuz\u0146emas atbild\u012bbu par stabila API atbalstu kodola modu\u013ciem, \u012bpa\u0161i bin\u0101r\u0101 l\u012bmen\u012b, t\u0101l\u0101k kABI.<\/p>\n<p>Lai uzb\u016bv\u0113tu moduli vani\u013cas kodolam, ir oblig\u0101ti nepiecie\u0161ami tie\u0161i \u0161\u012b kodola header faili, un tas darbosies tikai uz \u0161\u012b kodola. <\/p>\n<p>DKMS \u013cauj automatiz\u0113t modu\u013cu b\u016bv\u0113\u0161anas procesu, atjauninot kodolu. Rezult\u0101t\u0101 Debian repozitoriju lietot\u0101ji (un vi\u0146a neskait\u0101mie radinieki) izmanto vai nu kodola modu\u013cus no distributora repozitorija, vai no avotiem, kas tiek b\u016bv\u0113ti ar DKMS pal\u012bdz\u012bbu.<\/p>\n<p>Tom\u0113r \u0161\u0101da situ\u0101cija neapmierina Enterprise segmentu. Propriet\u0101ro kodu izplat\u012bt\u0101ji v\u0113las izplat\u012bt produktu k\u0101 sagatavotus bin\u0101ros failus. <\/p>\n<p>Administratori nev\u0113las tur\u0113t izstr\u0101des r\u012bkus produkcijas serveros dro\u0161\u012bbas apsv\u0113rumu d\u0113\u013c. Enterprise Linux disponenti, piem\u0113ram, Red Hat un SUSE, ir nol\u0113mu\u0161i, ka vi\u0146i sp\u0113s nodro\u0161in\u0101t stabilu kABI saviem lietot\u0101jiem. Rezult\u0101t\u0101 tika izveidoti KMOD pakotnes Red Hat un KMP pakotnes SUSE.<\/p>\n<p>\u0160\u0101da risin\u0101juma b\u016bt\u012bba ir diezgan vienk\u0101r\u0161a. Konkretiz\u0113tai izplat\u012b\u0161anas versijai kodola API tiek sasald\u0113ts. Distributors apgalvo, ka izmanto tie\u0161i kodolu, piem\u0113ram, 3.10, un veic tikai labojumus un uzlabojumus, kas nek\u0101d\u0101 veid\u0101 neietekm\u0113 kodola interfeisus, un s\u0101kotn\u0113j\u0101 kodola modu\u013ci var tikt izmantoti vis\u0101m n\u0101kamaj\u0101m versij\u0101m bez p\u0101rb\u016bves.<\/p>\n<p>Red Hat pazi\u0146o par kABI sader\u012bbu savam izsniegumam visa dz\u012bves cikla laik\u0101. Tas noz\u012bm\u0113, ka sav\u0101ktais modulis RHEL 6.0 (izdots 2010. gada novembr\u012b) ar\u012b darbosies versij\u0101 6.10 (izdota 2018. gada j\u016bnij\u0101). Tas ir gandr\u012bz 8 gadi. Protams, \u0161is uzdevums ir diezgan sare\u017e\u0123\u012bts. <br \/>\nM\u0113s esam re\u0123istr\u0113ju\u0161i vair\u0101kus gad\u012bjumus, kad modulis veeamsnap p\u0101rst\u0101ja darboties kABI sader\u012bbas probl\u0113mu d\u0113\u013c. <\/p>\n<p>P\u0113c tam, kad modulis veeamsnap, kas tika sav\u0101kts RHEL 7.0, izr\u0101d\u012bj\u0101s nesader\u012bgs ar RHEL 7.5 kodolu, ta\u010du turpin\u0101ja start\u0113t un garant\u0113ti krita serveri, m\u0113s atteic\u0101mies no kABI sader\u012bbas izmanto\u0161anas RHEL 7 visp\u0101r. <\/p>\n<p>Pa\u0161laik KMOD pakotne RHEL 7 satur sav\u0101k\u0161anu katrai izlai\u0161anas versijai un skriptu, kas nodro\u0161ina modu\u013ca iel\u0101di.<\/p>\n<p>SUSE pie kABI sader\u012bbas uzdevuma ir piesardz\u012bg\u0101ka. Tie nodro\u0161ina kABI sader\u012bbu tikai viena servisa pakotn\u0113. <\/p>\n<p>Piem\u0113ram, SLES 12 izlai\u0161ana notika 2014. gada septembr\u012b. Savuk\u0101rt SLES 12 SP1 jau 2015. gada decembr\u012b, t\u0101tad pag\u0101ja nedaudz vair\u0101k nek\u0101 gads. Neskatoties uz to, ka abas versijas izmanto kodolu 3.12, t\u0101s nav kABI sader\u012bgas. Ac\u012bmredzot, uztur\u0113t kABI sader\u012bbu vien tikai gadu ir iev\u0113rojami viegl\u0101k. Gada modifikasiem kodola nesadar\u012bbai nevajadz\u0113tu rad\u012bt probl\u0113mas modu\u013cu izstr\u0101d\u0101t\u0101jiem. <\/p>\n<p>Galu gal\u0101, t\u0101das politikas d\u0113\u013c, ko piekopj SUSE, m\u0113s neesam re\u0123istr\u0113ju\u0161i nevienu kABI sader\u012bbas probl\u0113mu m\u016bsu modulim veeamsnap. Paties\u012bb\u0101, ar\u012b pakot\u0146u skaits SUSE ir gandr\u012bz par vienu k\u0101rtu liel\u0101ks.<\/p>\n<h2>Iegultie labojumi un atpaka\u013cp\u0101rnesumi<\/h2>\n<p>\nNeskatoties uz to, ka izplat\u012bt\u0101ji cen\u0161as nodro\u0161in\u0101t kABI sader\u012bbu un kodola stabilit\u0101ti, tie ar\u012b cen\u0161as uzlabot veiktsp\u0113ju un nov\u0113rst stabil\u0101 kodola defektus. <\/p>\n<p>Taj\u0101 pa\u0161\u0101 laik\u0101, iz\u0146emot pa\u0161a \u00abklasikalistus\u00bb kodola izstr\u0101d\u0101t\u0101ji enterprise Linux seko izmai\u0146\u0101m vani\u013cas kodol\u0101 un p\u0101rnes t\u0101s uz savu \u00abstabilo\u00bb versiju.<\/p>\n<p>Da\u017ek\u0101rt tas noved pie jauniem <noindex><a rel=\"nofollow\" href=\"https:\/\/access.redhat.com\/solutions\/3658111\">defektiem<\/a><\/noindex>.<\/p>\n<p>P\u0113d\u0113j\u0101 Red Hat 6 izlaidum\u0101 vien\u0101 no mazaj\u0101m atjaunin\u0101jumiem bija pie\u013cauta k\u013c\u016bda. T\u0101 rad\u012bja situ\u0101ciju, kad modulis veeamsnap garant\u0113ti izraisa sist\u0113mas sabruk\u0161anu, kad tiek atbr\u012bvots snapshots. Sal\u012bdzinot kodola avotus pirms un p\u0113c atjaunin\u0101\u0161anas, m\u0113s noskaidroj\u0101m, ka viss bija atkar\u012bgs no atpaka\u013cp\u0101rcel\u0161anas. L\u012bdz\u012bgs labojums tika veikts vani\u013cas kodolam 4.19. Bet vani\u013cas kodol\u0101 \u0161is labojums darboj\u0101s norm\u0101li, kam\u0113r to p\u0101rnesa uz \u00abstabilo\u00bb 2.6.32 rad\u0101s probl\u0113ma ar spin-lock.<\/p>\n<p>Protams, k\u013c\u016bdas rodas visiem un vienm\u0113r, bet vai bija v\u0113rts vilkt kodu no 4.19 uz 2.6.32, risk\u0113jot ar stabilit\u0101ti?.. Es neesmu p\u0101rliecin\u0101ts...<\/p>\n<p>Slikt\u0101k\u0101 situ\u0101cija ir tad, kad pie st\u012bgas \u00abstabilit\u0101te\u00bb\u00abmoderniz\u0101cija\u00bb piesl\u0113dzas m\u0101rketings. M\u0101rketinga noda\u013cai ir nepiecie\u0161ams, lai atjaunot\u0101 sadal\u012bjuma kods b\u016btu stabils, no vienas puses, un vienlaikus lab\u0101ks veiktsp\u0113j\u0101 un ar jaun\u0101m funkcij\u0101m. Tas noved pie d\u012bvainiem kompromisiem. <\/p>\n<p>Kad es m\u0113\u0123in\u0101ju izveidot moduli uz kodola 4.4 no SLES 12 SP3, es ar p\u0101rsteigumu atkl\u0101ju taj\u0101 funkcionalit\u0101ti no standarta 4.8. Manupr\u0101t, blo\u0137\u0113t\u0101 ievade\/izvade kodol\u0101 4.4 no SLES 12 SP3 vair\u0101k atbilst kodolam 4.8 nek\u0101 iepriek\u0161\u0113jai stabil\u0101 4.4 versijai no SLES12 SP2. Es nevaru spriest, k\u0101ds bija p\u0101rvietot\u0101 koda procents no kodola 4.8 uz SLES-ovsku 4.4 SP3, ta\u010du saukt kodolu par stabilu 4.4 man valoda ne\u013cauj. <\/p>\n<p>Visnepat\u012bkam\u0101kais ir tas, ka rakstot moduli, kas vien\u0101di labi str\u0101d\u0101tu uz da\u017e\u0101diem kodoliem, vairs nevar pa\u013cauties uz kodola versiju. Ir j\u0101\u0146em v\u0113r\u0101 ar\u012b sadal\u012bjums. Ir labi, ka da\u017ereiz var pa\u013cauties uz defin\u012bciju, kas par\u0101d\u0101s kop\u0101 ar jauno funkcionalit\u0101ti, ta\u010du \u0161\u0101da iesp\u0113ja ne vienm\u0113r ir pieejama. <\/p>\n<p>Rezult\u0101t\u0101 kods apaug ar d\u012bvain\u0101m nosac\u012bt\u0101s kompil\u0101cijas direkt\u012bv\u0101m.<\/p>\n<p>Sastopami ar\u012b iel\u0101pi, kas maina dokument\u0113to kodola API. <br \/>\nUzg\u0101ju sadal\u012bjumu <noindex><a rel=\"nofollow\" href=\"https:\/\/neon.kde.org\/\">KDE neon<\/a><\/noindex> 5.16 un biju \u013coti p\u0101rsteigts, redzot, ka izsaukuma lookup_bdev \u0161aj\u0101 kodola versij\u0101 tika main\u012bti ieejas parametru saraksts.<\/p>\n<p>Lai izveidotos, n\u0101c\u0101s makefile pievienot skriptu, kas p\u0101rbauda, vai ir parametrs mask funkcij\u0101 lookup_bdev.<\/p>\n<h2>Kodolmodu\u013cu paraksts<\/h2>\n<p>\nBet atgriez\u012bsimies pie jaut\u0101juma par pakot\u0146u izplat\u012b\u0161anu.<\/p>\n<p>Viens no stabil\u0101 kABI priek\u0161roc\u012bb\u0101m ir tas, ka kodola modu\u013cus bin\u0101r\u0101 faila veid\u0101 var parakst\u012bt. \u0160\u0101d\u0101 gad\u012bjum\u0101 izstr\u0101d\u0101t\u0101js var b\u016bt p\u0101rliecin\u0101ts, ka modulis nav nejau\u0161i boj\u0101ts vai apzin\u0101ti izmain\u012bts. To var p\u0101rbaud\u012bt ar komandu modinfo. <\/p>\n<p>Red Hat un SUSE sadal\u012bjumi \u013cauj p\u0101rbaud\u012bt modu\u013ca parakstu un iel\u0101d\u0113t to tikai tad, ja sist\u0113m\u0101 ir re\u0123istr\u0113ts attiec\u012bgais sertifik\u0101ts. Sertifik\u0101ts ir publiskais atsl\u0113ga, ar kuru paraksta moduli. M\u0113s to izplat\u0101m k\u0101 atsevi\u0161\u0137u pakotni.<\/p>\n<p>Probl\u0113ma ir t\u0101da, ka sertifik\u0101ti var b\u016bt vai nu ieb\u016bv\u0113ti kodol\u0101 (tos izmanto izplat\u012bt\u0101ji), vai ar\u012b tie j\u0101ieraksta ener\u0123ijas neatkar\u012bg\u0101 EFI atmi\u0146\u0101, izmantojot util\u012btu. <i>mokutil<\/i>. R\u012bks <i>mokutil<\/i> Sertifik\u0101ta uzst\u0101d\u012b\u0161anas laik\u0101 ir nepiecie\u0161ama sist\u0113mas restart\u0113\u0161ana, un v\u0113l pirms oper\u0113t\u0101jsist\u0113mas kodola iel\u0101des tiek pied\u0101v\u0101ts administratoram at\u013caut jaun\u0101 sertifik\u0101ta iel\u0101di. <\/p>\n<p>T\u0101d\u0113j\u0101di sertifik\u0101ta pievieno\u0161anai ir nepiecie\u0161ama administratora fiziska piek\u013cuve sist\u0113mai. Ja ma\u0161\u012bna atrodas kaut kur m\u0101ko\u0146os vai vienk\u0101r\u0161i att\u0101lin\u0101t\u0101 server\u012b, un piek\u013cuve ir tikai pa t\u012bklu (piem\u0113ram, pa ssh), tad sertifik\u0101tu pievienot neb\u016bs iesp\u0113jams. <\/p>\n<h2>EFI virtu\u0101laj\u0101s ma\u0161\u012bn\u0101s<\/h2>\n<p>\nNeskatoties uz to, ka EFI jau sen atbalsta gandr\u012bz visi m\u0101tesplat\u0146u ra\u017eot\u0101ji, uzst\u0101dot sist\u0113mu, administrators var nepadom\u0101t par EFI nepiecie\u0161am\u012bbu, un tas var b\u016bt izsl\u0113gts. <\/p>\n<p>Ne visi hipervizori atbalsta EFI. VMWare vSphere atbalsta EFI, s\u0101kot no versijas 5. <br \/>\nMicrosoft Hyper-V ar\u012b ir ieguvis EFI atbalstu, s\u0101kot ar Hyper-V Windows Server 2012R2. <\/p>\n<p>Tom\u0113r noklus\u0113juma konfigur\u0101cij\u0101 \u0161\u012b funkcionalit\u0101te Linux ma\u0161\u012bn\u0101m ir atsl\u0113gta, t\u0101p\u0113c sertifik\u0101tu uzst\u0101d\u012bt nav iesp\u0113jams. <\/p>\n<p>vSphere 6.5 opciju <b>Secure Boot<\/b> var iestat\u012bt tikai vecaj\u0101 versij\u0101 t\u012bmek\u013ca saskarnes, kas darbojas caur Flash. HTML-5 t\u012bmek\u013ca saskarne joproj\u0101m iev\u0113rojami atpaliek.<\/p>\n<h2>Eksperiment\u0101l\u0101s distrib\u016bcijas<\/h2>\n<p>\nUn visbeidzot apl\u016bkosim eksperiment\u0101lo distrib\u016bciju un distrib\u016bciju bez ofici\u0101las atbalsta jaut\u0101jumu. No vienas puses, \u0161\u0101das distrib\u016bcijas, visticam\u0101k, netiks sastaptas nopietnu organiz\u0101ciju serveros. Ofici\u0101la atbalsta \u0161\u0101d\u0101m distrib\u016bcij\u0101m nav. T\u0101p\u0113c tehnisko atbalstu \u0161\u0101dam produktam nodro\u0161in\u0101t nav iesp\u0113jams. <\/p>\n<p>Tom\u0113r \u0161\u0101das distrib\u016bcijas k\u013c\u016bst par \u0113rtiem laukumiem jauno eksperiment\u0101lo risin\u0101jumu izm\u0113\u0123in\u0101\u0161anai. Piem\u0113ram, Fedora, OpenSUSE Tumbleweed vai Debian nestabila versija. T\u0101s ir diezgan stabilas. Taj\u0101s vienm\u0113r ir jaunas programmu versijas un vienm\u0113r jauns kodols. P\u0113c gada \u0161\u012b eksperiment\u0101l\u0101 funkcionalit\u0101te var par\u0101d\u012bties atjaunin\u0101taj\u0101 RHEL, SLES vai Ubuntu. <\/p>\n<p>T\u0101tad, ja kaut kas nedarbojas eksperiment\u0101laj\u0101 distrib\u016bcij\u0101, tas ir iemesls izp\u0113t\u012bt probl\u0113mu un to atrisin\u0101t. J\u0101b\u016bt gatavam tam, ka \u0161\u012b funkcionalit\u0101te dr\u012bz par\u0101d\u012bsies lietot\u0101ju ra\u017eot\u0101ja serveros.<\/p>\n<p>Eso, kas \u0161obr\u012bd ir ofici\u0101li atbalst\u012btu izplat\u012bjumu saraksts versijai 3.0, varat izp\u0113t\u012bt <noindex><a rel=\"nofollow\" href=\"https:\/\/helpcenter.veeam.com\/docs\/agentforlinux\/userguide\/system_requirements.html?ver=30\">\u0161eit<\/a><\/noindex>. Tom\u0113r re\u0101lais izplat\u012bjumu saraksts, uz kuriem m\u016bsu produkts var str\u0101d\u0101t, ir iev\u0113rojami pla\u0161\u0101ks.<\/p>\n<p>Man person\u012bgi bija interesants eksperiment\u0113t ar OS \"Elbrus\". P\u0113c veidlapas veido\u0161anas ar veeam m\u016bsu produkts tika uzst\u0101d\u012bts un str\u0101d\u0101ja. Par \u0161o eksperimentu es rakst\u012bju Habr\u0101 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/veeam\/blog\/447960\/\">rakst\u0101<\/a><\/noindex>. <\/p>\n<p>Jaun\u0101ku izplat\u012bjumu atbalsts turpin\u0101s. M\u0113s gaid\u0101m versijas 4.0 izn\u0101k\u0161anu. L\u012bdz dr\u012bz par\u0101d\u012bsies beta versija, t\u0101p\u0113c sekojiet l\u012bdzi <noindex><a rel=\"nofollow\" href=\"https:\/\/www.veeam.com\/whats-new-linux-agent.html\">whats-new<\/a><\/noindex>!<br \/>\n<br \/>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/veeam\/blog\/471226\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 \u2014 \u0437\u0430\u0434\u0430\u0447\u043a\u0430 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u0430\u044f. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 Veeam Agent for Linux \u043d\u0430 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 \u043e\u0442 Red Hat 6 \u0438 Debian 6, \u0434\u043e OpenSUSE 15.1 \u0438 Ubuntu 19.04 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043f\u0435\u043a\u0442\u0440 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u044f\u0434\u0440\u0430. \u0421\u0442\u0430\u0442\u044c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043f\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29206,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38929","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Linux \u043c\u043d\u043e\u0433\u043e\u043b\u0438\u043a\u0438\u0439: \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:26:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:26:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Linux ir daudzveid\u012bgs: k\u0101 str\u0101d\u0101t ar jebkuru izplat\u012bjumu | ProHoster","description":"Izveidot rezerves kopijas lietotni.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Linux \u043c\u043d\u043e\u0433\u043e\u043b\u0438\u043a\u0438\u0439: \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 | ProHoster","og:description":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e.","og:url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/linux-mnogolikij-kak-rabotat-na-lyubom-distributive","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:26:48+00:00","article:modified_time":"2019-10-31T19:26:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38929","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 23:59:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:00:26","updated":"2026-01-23 23:59:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/38929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=38929"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/38929\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/29206"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=38929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=38929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=38929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}