Linux multas facies habet: quomodo operari in quavis distributione

Linux multas facies habet: quomodo operari in quavis distributione

Applicatio tergum creare quod in quavis distributione operatur, non est facile. Ut Veeam Agens pro Linux opera in distributionibus ex Red Hat 6 et Debian 6, ad Aperiendum 15.1 et Ubuntu 19.04 solvendum habeas, problematum amplitudinem solvendi, praesertim cum programmata nuclei moduli comprehendat.

Articulus creatus est ex materia ex oratione in colloquio Linux Peter 2019.

Linux non solum una rationum popularium operandi. Essentialiter hoc suggestum est ex quo aliquid singulare, quod tuum facere potes. Propter hoc, Linux multas habet distributiones quae in suis instrumentorum programmatibus differunt. Hic oboritur quaestio: ut programmatis pro quavis distributione fungantur, lineamenta cuiusque considerare oportet.

Sarcina mancipes. .deb .rpm . vs

Incipiamus cum manifesto problemate distribuendi productum per diversas distributiones.
Modus typicus ad programmatum distribuendum est sarcina in promptuario imponenda ut sarcina procurator in systema aedificatum inde instituere possit.
Sed duas formas involucrum vulgaris habemus: rPM ΠΈ deb. Hoc modo quisque erit auxilio.

In mundo fasciculorum debitorum, gradu convenientiae mirabilis est. Eadem involucrum inaugurat et opera pariter bene in utroque Debian 6 et Ubuntu 19.04. Signa pro processu sarcinarum aedificandi et cum illis operandi, in antiquis distributionibus Debianis positae, pertinentes in recenti Linux monetaria et elementaria OS manent. Ideo in causa Veeam agentis Linux, unum denarium pro singulis ferramentis suggestum sufficit.

Sed in mundo rpm fasciculorum magnae sunt differentiae. Uno modo, propter hoc quod sunt duo distributores omnino independentes, Rubrum Hat et SUSE, propter quod convenientia omnino necessaria est. Secundo, hi distributores habent ab his ornamenta distribuendi. auxilio et experimentis. Non est opus inter eos vel convenientiam. Contigit quod el6, el7 et el8 suas sarcinas habent. Involucrum separatum pro Fedora. Sarcinae pro SLES11 et 12 et singulae pro openSUSE. Praecipua quaestio est clientelas et sarcina nomina.

Dependentia problema

Infeliciter, iidem fasciculi saepe sub diversis nominibus in diversis distributionibus evadunt. Infra indicem partialem veeam involucrum clientelas est.

Nam EL7;
pro SLES XII;

  • libblkid
  • libgcc
  • libstdc ++
  • ncurses-libs
  • fuse-libs
  • file-libs
  • veeamsnap=3.0.2.1185
  • libblkid1
  • libgcc_s1
  • libstdc++6
  • libmagic1
  • libfuse2
  • veeamsnap-kmp=3.0.2.1185

Quam ob rem index clientium singulare est distributioni.

Quod peius est, cum renovatio versionis incipit sub veteri sarcina nomine latens.

exempli gratia:

Sarcina renovata in Fedora 24 ncurses a versione 5 ad versionem 6. Productum nostrum cum versione 5 constructum est ut convenientiam cum distributionibus vetustioribus curet. Uti vetere 5th versione bibliothecae in Fedora 24, Ego uti involucrum habui ncurses-compat-libs.

Quam ob rem duae fasciculi Fedora cum diversis dependentiis sunt.

Praeterea magis placet. Distributio altera post update, sarcina ncurses-compat-libs cum versione 5 bibliothecae evenit ut perpendat. Carum est distributorem vetustas bibliothecas in novam distributionem trahere. Post aliquod tempus quaestio in distributionibus SUSE se repetita est.

Quam ob rem nonnullas distributiones suas explicite dependentiae deponendi erant ncurses-libsac productum ut in quavis versione bibliothecae possit operari.

Obiter in versione 8 rubrae Hat iam non est meta sarcina pythonquae referuntur ad bonum vetus python 2.7. sunt python2 ΠΈ python3.

Alter ad sarcina managers

Difficultas clientelas vetus est et iam diu patet. Iustus memor Dependentiae inferni.
Varias bibliothecas et applicationes coniungere ut stabiliter omnes laborent et non pugnent - re vera, hoc munus est quod quilibet distributor Linux solvere conatur.

Procurator sarcinarius hoc problema omnino alio modo solvere conatur. RAPIDUS de Canonicis. Praecipua idea: applicatio in sandbox separatim et a principali systematis praesidio decurrit. Si applicatio bibliothecas requirit, ipsi applicatione suppleantur.

Flatpak etiam sinit ut applicationes in sandbox uti Linux Vasa curras. Idea etiam sandbox usus est AppImage.

Hae solutiones permittunt te unam sarcinam pro quavis distributione creare. In casu Flatpak installation et applicationis fieri potest etiam sine cognitione administratoris.

Praecipuum problema est quod non omnes applicationes in sandbox currere possunt. Quidam recta aditus ad suggestum opus. Nolo quidem de modulis nucleis loqui, quae stricte a nucleo pendent et in conceptu sandbox non conveniunt.

Secundum problema est quod distributiones populares in incepti ambitus a Red Hat et SUSE nondum subsidium Snappy et Flatpak continent.

Hac de re Veeam agens pro Linux praesto non est snapcraft.io non on- flathub.org.

Ut quaestionem de actoribus involucris concludas, notare vellem optionem esse ut mancipes sarcinas deserendi omnino componendo binarii fasciculi et scriptum ut eas in unam sarcinam instituas.

Talis fasciculus permittit te unum sarcinam communem pro diversis distributionibus et suggestis creare, processum institutionis interactivum explere, necessariam customizationem exsequi. Tales fasciculos pro Linux ex VMware tantum offendit.

Update quaestio

Linux multas facies habet: quomodo operari in quavis distributione
Etiamsi omnes quaestiones dependentiae solvuntur, ratio potest aliter currere in eadem distributione. Res updates est.

Sunt III update consilia:

  • Simplicissimum est numquam update. Erexi servo et oblitus est. Cur renovatio si omnia operatur? Problemata incipiunt primum contactum auxilium. Distributionis creator solus renovationem emissionem sustinet.
  • Distributori confidere potes et in updates automatice erigere. Hoc in casu, invitatio ad sustentationem statim post infelicis renovationis rationem verisimile est.
  • Optio adaequationis manualis solum post currit eam in infrastructura test certissima est, sed pretiosa et temporis edax. Quisque non efficitur est.

Cum diversi utentes utantur diversis rationibus renovationis, necesse est tam recentissimam missionem et omnes antea emissas sustinere. Hoc implicat et processum et evolutionem et probationem et adiungit dolores ad equos sustentandos.

Variis hardware platforms

Tabulae ferrariae variae problemati sunt quae late specificae in codice indigenae sunt. Ad minimum, binarios colligere debebis pro quolibet suggestu sustentato.

In Veeam agente pro Linux, adhuc aliquid simile hoc RISC sustinere non possumus.

Non moror in hac re singillatim. Tantum praecipua problemata effingam: catasta-dependens genera, qualia sunt size_t, structure alignment and byte order.

Static et / vel dynamica conjunctio

Linux multas facies habet: quomodo operari in quavis distributione
Sed quaestio est "Quomodo cum bibliothecis ligare - dynamice vel immobiliter?" discutere dignum est.

Pro regula C/C++ applicationes sub Linux usu dynamicae conjunctionis. Magna haec opera facit si applicatio specialiter ad certam distributionem aedificatur.

Si negotium est varias distributiones uno fasciculo binario operire, tunc vetustissimam distributionem sustentatam intendunt. Pro nobis hoc pileum rubrum est 6. Continet gcc 4.4, quod etiam vexillum C++11 non sustinet plene.

Exstruimus consilium nostrum gcc 6.3, quod plene C++14 sustinet. Nempe in hoc casu, in Red Hat 6 libstdc ++ ferre debes et bibliothecas apud te boost. Facillima via est illis immobiliter nectere.

Sed heu, non omnes bibliothecae immobiliter coniungi possunt.

Uno modo, ratio bibliothecarum ut libfuse, libblkid dynamice coniungi necesse est ut eorum compatibilitatem cum nucleo et modulis eius curet.

Secundo subtilitas dissentiet.

Licentia GPL fundamentaliter permittit ut bibliothecas coniungas tantum cum codice opensource. MIT et BSD permittunt nexus stabilis et bibliothecas in materia includi permittunt. Sed LGPL non videtur nexus stabilis contradicere, sed postulat ut fasciculi necessarii ad connexionem communicandam sint.

In genere, per conjunctionem dynamicam prohibebit te habere aliquid providere.

Building C/C++ applications

Ad C/C++ applicationes pro diversis suggestis et distributionibus condere, satis est aptam versionem gcc eligere vel edificare, et compilatores ad specificas architecturas uti, et integram bibliothecam congregare. Hoc opus est satis posse, sed satis molestum. Et nulla est cautio quod delectus compilator et bibliothecae versionem operabilem praebebunt.

Commodum evidens est: infrastructura valde simplicior est, quia totum processum aedificandi in una machina perfici potest. Praeterea satis est unum binarium pro una architectura colligere et eas in fasciculos pro diversis distributionibus includere potes. Ita veeam fasciculi Veeam agenti Linux aedificantur.

Obsistenti huic optioni, fundum construere simpliciter potes, id est, plures machinas ad conventum. Quaelibet talis machina applicationem compilationem et sarcinam conventuum praebebit pro certa distributione et specifica architectura. In hoc casu compilatio exercetur instrumentis a distributore praeparatis. Hoc est, scaena apparandi compilator et bibliothecarum selectio eximitur. Praeterea processus aedificandi facile parabilis est.

Est tamen accessus ad hunc descendendum: nam singulae distributio intra eandem architecturam debebis ex fasciculis binariis propriis colligendis. Aliud incommodum est quod tam magnus numerus machinarum conservandus est et magna vis spatii orbis et RAM collocari debet.

Hoc est quomodo KMOD fasciculi nuclei veeamsnap moduli pro distributionibus rubrum Hat compigantur.

Open Service aedificate

Collegae ab SUSE medium quoddam instrumentum efficere conati sunt in forma peculiaris servitii ad applicationes componendas et fasciculos colligendos -. openbuildservice.

Essentialiter hypervisor est qui virtualem machinam creat, omnes sarcinas necessarias in eo installat, applicationem componit et sarcinam in hoc ambitu solitario aedificat, post quem virtualis apparatus emittitur.

Linux multas facies habet: quomodo operari in quavis distributione

Tabularium in OpenBuildService perficiendum decernet quot machinis virtualis in meliorem sarcinam aedificandi celeritatem mittere possit. Constructum in mechanismo signando fasciculos signabit et eas imposuisti in repositorio constructo. Constructum-in versionis ratio imperium servabit historiam mutationum et aedificat. Reliquum est ut fontes tuos huic systemi simpliciter adiiciam. Servum te ne statuas quidem, patenti uti potes.

Difficultas tamen est: talis messor difficile est aptare infrastructuram existentem. Exempli gratia, versionis moderatio non est necessaria, iam nostra habemus ad fontes codicis. Nostra subscriptio mechanismus alia est: speciali servo utimur. Repositorium etiam non opus est.

Praeterea subsidium aliarum distributionum - exempli gratia Red Hat - male impletur, quod intellegibile est.

Talis servitii utilitas celerius subsidium est pro altera versione SUS distributio. Ante nuntium officialem emissionis fasciculi necessarii ad conventum in reposito publico collocantur. Novum apparet in indice distributionum available in OpenBuildService. Arcam reprimimus et consilium aedificandi additur. Ita nova distributio fit in clic fere addita versione.

In nostra infrastructura, utens OpenBuildService, tota varietas sarcinarum KMP fasciculorum nuclei veeamsnap nuclei pro SUSE distributionibus colligitur.

Deinceps de rebus nucleo modulorum specificis immorari vellem.

nucleus ABI

Linux nuclei moduli in forma fonti historice distributi sunt. Re vera creatores nuclei sollicitudinem API stabili nuclei modulorum nucleorum sustentandi, praesertim in gradu binario, adhuc kABI referuntur.

Modulum pro vanilla nucleo condere, certo nucleo capitis huius maxime indigere, et in hoc nucleo tantum operari.

DKMS permittit ut processum modulorum construendi automate cum nucleo adaequationis. Quam ob rem utentes repositorii Debianum (et plures eius propinqui) modulis nucleis utuntur vel e repositorio distributoris vel ex fonte DKMS exarato utentes.

Nihilominus, haec condicio segmento Enterprise non apprime convenit. Codicis proprietarii distributores productum distribuere volunt binarios compilato.

Magistratus non vis instrumenta evolutionis servare in ministris productionis propter rationes securitatis. Inceptum Linux distributores ut Hat Rubrum et SUSE constituerunt ut stabilis kABI pro utentibus suis sustinere possent. Eventus est KMOD fasciculi rubri Hat et KMP fasciculi pro SUSE.

Essentia huius solutionis est omnino simplex. Ad certam versionem distributionis, API nucleus constringitur. Distributor asserit se nucleo utatur, exempli gratia, 3.10, et correctiones tantum et emendationes facit quae nuclei interfaces non tangunt, et moduli ad primum nucleum collecti omnibus subsequentibus sine recompilatione adhiberi possunt.

Red Hat petit congruentiam kABI pro distributione per totam vitam suam. Id est, moduli conglobati pro rhel 6.0 (dimittere November 2010) debet etiam in versione 6.10 operari (dimittere Iunii 2018). Et hoc est fere VIII annis. Naturaliter hoc negotium est difficillimum.
Plures casus notavimus, ubi moduli veeamsnap laborare desierunt propter quaestiones convenientiae kABI.

Post moduli veeamsnap, pro RHEL 7.0 compilata, e Rhel 7.5 nucleo repugnare evasit, sed onustus et confirmatus est in calculonis servi, usum kABI convenientiae pro RHEL 7 omnino deseruimus.

In statu, sarcina KMOD pro RHEL 7 conventum continet pro versione emissione et scriptum quod moduli onerat.

SUSE negotium kABI convenientiae diligentius accessit. Compatibilitatem kABI praebent tantum intra unum sarcinam servitii.

Exempli gratia, emissio SLES 12 mense Septembri 2014. SLES 12 facta est iam mense Decembri 1, hoc est paulo plus quam annus praeteriit. Etiamsi utraque emissio 2015 nucleo utatur, kABI repugnant. Patet, congruentiam servans kABI per annum tantum facilius est. Annuus cycli nuclei moduli renovatio quaestionibus modulis creatoribus causare non debet.

Propter hoc SUSUM consilium, unicum problema cum kABI compatibilitate in moduli veeamsnap nostro not scriptum est. Verum, numerus fasciculorum pro SUSI magnitudine fere maior est.

Resarcio et backports

Etsi distributores conantur ut kABI convenientiam et stabilitatem nuclei, ipsi etiam operas et vitia nuclei huius stabilis eliminare conantur.

Eodem tempore, praeter suos "labores de erroribus", tincidunt incepti monitor nuclei Linux in vanilla nucleos mutat et ad suum "stabulum" unum transferunt.

Interdum hoc ducit ad novos errata.

In recentissima emissione Rubrum Hat 6, error in una e updates minoris facta est. Hoc factum est ut modulus veeamsnap praestitus est ad systema fragoris cum emissum snapshot. Comparatis fontibus nuclei ante et post renovationem, invenimus backportum reprehendere. Similis fix in vanilla kernel versio 4.19 facta est. Haec fix bene in vanilla nucleo laboravit, sed cum eam ad "stabulum" 2.6.32 transferens, quaestio orta est cum spinlock.

Utique omnes errores semper habet, sed trahere valebat codicem ab 4.19 ad 2.6.32, stabilitatem periclitans?.. Non sum certus...

Gravissimum est cum venalicium implicatur in trahitis bellum inter "stabilitatem" et "modernizationem". Negotiatio venalicium medium eget distributionis renovatae ut stabilis sit, ex una parte, et simul melius in agendis et novas habere lineamenta. Inde novos moderans.

Cum modulum in nucleo 4.4 ex SLES 12 SP3 aedificare conabar, functionalitatem ex vanilla 4.8 in ea invenire miratus sum. Opinor, clausus I/O exsecutio 4.4 nuclei ex SLES 12 SP3 similior est 4.8 nucleo quam prior emissio stabilis 4.4 nuclei ex SLES12 SP2. Quid recipis codicis a nucleo 4.8 ad SLES 4.4 pro SP3 translatum esse iudicare non possum, sed nucleum quidem stabile 4.4.

Incommodum de hoc est quod cum moduli scribentis qui in diversis nucleis aeque bene operaretur, amplius versioni nucleo confidere non possis. Habes etiam rationem distributionis. Bonum est quod interdum in definitione quae cum novis functionibus videtur implicari potes, sed haec opportunitas non semper apparet.

Quam ob rem signum compilation condiciones condicionalis fatum obsita fit.

Sunt etiam inaequalis quae nucleum API mutant in documentis.
Veni per distributionem Neo KDE 5.16 et valde miratus est videre quod lookup_bdev nomen in hac versione nucleo mutavisse indicem parametri input.

Ut simul illud, addere debebam scripturam fabricationis quae impedit num munus lookup_bdev larvatum habeat modulum.

Signing nucleus modulorum

Sed ad eventum distributionis sarcinae revertamur.

Una commoda kABI stabilis est illa moduli nuclei ut fasciculi binarii signari possunt. Hoc in casu, elit certa esse potest modulum non per accidens laesum aut ex intentione mutatum esse. Hoc cum imperio modinfo inspicere potes.

Red Hat and SUSE distributiones sinunt te subscriptionem moduli reprimere et eam onerare tantum si libellum respondentem in systemate relatus sit. Testimonium est clavis publicus quo modulus signatur. Ut sarcina singula distribuimus.

Problema hic est, quod testimoniales vel in nucleo aedificari possunt (distributores illis utuntur) vel scribi debent ad memoriam non-volatilem EFFI utentem utilitatem. mokutil. utilitas mokutil Cum libellum instituens, te requirit ut systema reboet et, etiam antequam nucleum operativae oneraverit, administratorem suggerit ut novum libellum onerandum permittat.

Ita libellum addit accessum ad systema administratorem physicum requirit. Si machina alicubi sita est in nube vel simpliciter in remoto servo cubiculi et accessus est tantum per reticulum (exempli gratia via ssh), tunc impossibile erit libellum addere.

Efi in virtualis machinis

Quamvis hoc quod efi iamdiu ab omnibus fere matricis fabricantibus sustentatum sit, cum systema instituat, administrator cogitare non potest de necessitate efi, et debilitari potest.

Non omnes hypervisores adiuvant efi. VMWare vSphere adminiculum efi incipiens a litera 5 .
Microsoft Hyper-V etiam subsidium efi consecutum incipiens ab Hyper-V pro Fenestra Servo 2012R2.

Nihilominus in configuratione defalta haec officiatio pro machinis Linux debilitata est, quae testimonium significat non potest institui.

In vSphere 6.5, pone optionem Booz vero secure tantum fieri potest in antiqua versione interfaciei interreti, quae per Flash decurrit. Web UI in HTML-V adhuc longe post est.

Distributiones experimentales

Ac denique experimentorum distributionum et distributionum exitus sine subsidio officiali consideremus. Ex altera parte, huiusmodi distributiones in servientibus gravium institutionum reperiri non possunt. Nulla officialis subsidia talibus distributionibus. Eos itaque provident. Productum tali distributione sustineri non potest.

Attamen huiusmodi distributiones suggestum opportunum facti sunt ad novas experimentales solutiones probandas. Exempli gratia, Fedora, OpenSUSE Tumbleweed vel instabiles versiones Debian. Satis firmi sunt. Semper habent novas programmatum versiones et semper novum nucleum. In anno, haec functionis experimentalis in renovatione REL, SLES vel Ubuntu finire potest.

Si ergo aliquid in distributione experimentali non operatur, causa est quaestionis figurae et solvendae. Opus est ad hoc parari quod haec functionalitas mox apparebit in servientibus productionis usorum.

Potes studere currenti indicem publice sustentari distributionibus pro versione 3.0 hic. Sed verus index distributionum in quibus opus nostrum productum potest multo latius patet.

Ipse ego experimentum quaerebam cum Elbrus OS. Post veeam sarcina finalisata, productum nostrum inauguratus est et laborat. Scripsi de hoc experimento in Habre in articulus.

Bene, subsidia novarum distributionum prosequitur. Exspectamus versionem 4.0 dimitti. Beta apparitura est, ita oculum observare quid agis, novum!

Source: www.habr.com