Ievads
A pakotņu pārvaldības sistēma vai pakotņu pārvaldnieks ir programmatūras rīku grupa. Tas efektīvi automatizē instalēšanas procesu, jaunināšanas procesu, konfigurācijas procesu un datorprogrammu noņemšanas procesu datora operētājsistēmai. A pakotņu pārvaldnieks darbojas ar pakotnēm, datiem arhīva failos un programmatūras izplatīšanu.
Paketēs ir tādi metadati kā programmatūras nosaukums, tās mērķa apraksts, kontrolsumma (vēlams kriptogrāfiska jaukšanas funkcija), d atkarību saraksts, pārdevējs, un versijas numurs svarīgi, lai programmatūra pareizi darbotos.
- Instalēšanas laikā metadati tiek saglabāti lokālās pakotnes datu bāzē.
- Parasti pakotņu pārvaldnieki pārvalda versiju informācijas un programmatūras atkarību datubāzi, lai novērstu trūkstošos priekšnoteikumus un programmatūras neatbilstības.
- Viņi cieši sadarbojas ar lietotņu veikaliem, bināro repozitoriju pārvaldniekiem un programmatūras krātuvēm.
- Pakešu pārvaldnieki ir izstrādāti, lai novērstu manuālu atjaunināšanu un instalēšanu.
- Jo īpaši tas var būt noderīgi lielām organizācijām, kuru operētājsistēmas parasti apvieno simtiem vai daudz vairāk dažādu programmatūras pakotņu.
Pakešu pārvaldnieka funkcijas
Programmatūras pakotni var definēt kā arhīva fails datorprogrammas un būtisko metadatu apvienošana, kā arī izstrādei. Sistēmas programma varētu būt avota kodā, kas vispirms ir jāizveido un jāapkopo.
Pakotnes metadati ietver pakotnes versiju, pakotnes aprakstu un atkarības (pakotnes, kas ir iepriekš jāinstalē). Daudzi pakotņu pārvaldnieki pieder programmatūras pakotņu instalēšanai, atinstalēšanai, uzturēšanai vai atrašanai lietotāja vadībā.
The pakešu pārvaldības sistēma satur dažus tipiskus funkcijas kas ir minēti zemāk:
- Darbs ar failu arhivatoriem pakotņu arhīvu izvilkšanai.
- Pakotnes autentiskuma un integritātes nodrošināšana, attiecīgi autentificējot to digitālos sertifikātus un kontrolsummas.
- Esošas programmatūras atjaunināšana, instalēšana, lejupielāde vai meklēšana, izmantojot lietotņu veikalu vai programmatūras krātuvi.
- Pakešu apvienošana, izmantojot funkciju, lai mazinātu lietotāja apjukumu.
- Atkarību uzturēšana, lai nodrošinātu, ka pakotne ir instalēta kopā ar katru tai nepieciešamo pakotni. Tātad, ignorēšana 'atkarības elle'.
Sastādīto pakotņu priekšpuses (lokāli)
Sistēmas administratori var instalēt un pārvaldīt programmatūru, izmantojot dažus rīkus, kas nav pakotņu pārvaldības programmatūra. Piemēram, vietējais administrators var lejupielādēt avota kodu (neiesaiņotu), apkopot to un pēc tam instalēt.
Tas var izraisīt vietējās sistēmas stāvokļa izkrišanu no sinhronizācijas kopā ar pakotņu pārvaldnieka stāvokļa datu bāzi. Vietējam administratoram būtu jāveic daži papildu pasākumi, piemēram, manuāli jāintegrē modifikācijas pakotņu pārvaldniekā vai jāpārvalda dažas atkarības.
pārvērst virkni interger
Ir daži rīki, kas nodrošina pakotņu kompilēšanu (lokāli) tiek izstrādāti kopā ar pakotņu pārvaldību.
Pārbaudiet Instalēt ir pieejams .rpm vai .deb uz failiem balstīti izplatījumi un Slackware Linux arī. Priekš hibrīds sistēmas, piemēram Arch Linux un uz receptēm balstītas sistēmas patīk Gentoo Linux, sākotnēji ir iespējams norādīt recepti, kas pēc tam apstiprina, ka pakotne iekļaujas lokālajā pakotņu datubāzē.
Izaicinājumi ar izplatītajām bibliotēkām
Dažādas datorsistēmas, kas ir atkarīgas no dinamiskās bibliotēku saistīšanas, nevis statiskās bibliotēku saistīšanas, izplata mašīninstrukciju bibliotēkas (izpildāmās) lietojumprogrammās un pakotnēs.
Šāda veida sistēmās tipiskās attiecības starp atsevišķām pakotnēm, kurām nepieciešama bibliotēka, rada versijas izaicinājumā, ko sauc 'atkarības elle'.
Tas ir pazīstams arī kā 'DLL ellē' operētājsistēmā Microsoft Windows, dinamiski strādājot ar saistītajām bibliotēkām. Laba pakotņu pārvaldība ir ļoti svarīga šīm sistēmām.
No OPENSTEP , ietvara sistēma bija labākais risinājums šīs problēmas risināšanai, ļaujot vienlaikus instalēt vairāk nekā vienu bibliotēkas versiju un daudzām programmatūras pakotnēm aprakstīt, ar kuru versiju tās ir saistītas.
Konfigurācijas uzturēšana
Konfigurācijas faila jauninājumi ir īpaši problemātiski programmatūras jauninājumiem. Vismaz Unix, jo pakotņu pārvaldnieki radās kā failu arhivēšanas utilīta paplašinājums.
Parasti tie tikai saglabā vai pārraksta konfigurācijas failus, nevis izmanto tiem noteikumus. Mainoties konfigurācijas faila formātam, var rasties vairākas problēmas. Piemēram, ja vecs konfigurācijas fails nepārprotami neatspējo jaunākas opcijas, tās ir jāparāda. Daži pakotņu pārvaldnieki, piemēram, Debian dpkg, instalēšanas laikā atļauj konfigurāciju. Dažos citos gadījumos ir vēlams instalēt pakotnes, izmantojot noklusējuma konfigurāciju, un pārrakstīt konfigurāciju instalācijā (bez galvas) lielam skaitam sistēmu. Šis instalēšanas veids (iepriekš konfigurēts) tiek atbalstīts arī, izmantojot dpkg.
Jaunināšanas apspiešana
Tradicionāli ir pieejams lietotājs kopā ar izpildāmo darbību sarakstu (parasti jaunināmo pakotņu sarakstu un, iespējams, norādīt jauno un veco versiju numurus), ja lietotājs jaunināšanas veikšanai sadarbojas ar pakotņu pārvaldības programmatūru.
Tas ļauj lietotājam vai nu izvēlēties vienu pakotni jauninājumiem, vai veikt jaunināšanu lielapjomā. Var konfigurēt dažādus pakotņu pārvaldniekus, lai daudzas pakotnes nekad netiktu jauninātas vai tās tiktu jauninātas tikai tad, ja vecajā standartā tiek atklātas kritiskas nestabilitātes vai ievainojamības, kā norādīts programmatūras pakotnē. Dažreiz šo procesu sauc par versiju piespraušanu.
Piemēram:
yum to atbalsta ar izslēgt=openoffice* sintakse
pacman ar sintaksi Ignorēt=openoffice (abos gadījumos, lai novērstu OpenOffice jaunināšanu)
dselect un dpkg to daļēji atbalsta, izmantojot aizturēšanas karogu pakotņu atlasēs.
spējas ir 'aizliegt' un 'turēt' karogi.
portage to atbalsta ar konfigurācijas failu, t.i., iepakojums.maska.
APT pagarina karogu, t.i., turiet pēc kompleksa 'piespraušana' metodi (lietotāji var arī pakotni melnajā sarakstā).
Krātuves
Lai nodrošinātu lietotājiem papildu kontroli pār programmatūras veidiem, ko viņi atļauj instalēt savā sistēmā (dažreiz ērtību un izplatītāja juridisku iemeslu dēļ), programmatūra dažkārt tiek lejupielādēta, izmantojot daudzas programmatūras krātuves.
lambda funkcija java
Kaskādes iepakojuma noņemšana
Daži no vairāk attīstītajiem pakotņu pārvaldības aspektiem atvieglo 'kaskādes pakotņu noņemšana', kur tiek noņemta arī katra pakotne, kas balstās uz galamērķa pakotni, un katra pakotne, uz kuru balstās galamērķa pakotne.
Komandu salīdzināšana
Tomēr komandas ir unikālas visiem konkrētajiem pakotņu pārvaldniekiem. Šīs komandas lielā mērā ir tulkojamas, jo lielākā daļa pakotņu pārvaldnieku nodrošina tās pašas funkcijas.
Pakešu pārvaldnieka izplatība
Pakešu pārvaldnieki, piemēram, dpkg, ir pieejami jau 1994. gadā. Dažādi Linux izplatījumi, kas orientēti uz binārajām pakotnēm, lielā mērā ir atkarīgi no pakotņu pārvaldības sistēmas to galveno programmatūras uzturēšanas un pārvaldības līdzekļu dēļ.
Daudzas mobilās operētājsistēmas, piemēram, Windows Phone, iOS (Unix līdzīgas) un Android (pamatojoties uz Linux), ir gandrīz atkarīgas no attiecīgā pārdevēja App Store. Tādējādi viņi izmanto savu pakotņu pārvaldības sistēmu (speciālu).
Salīdzinājums ar uzstādītājiem
Bieži vien pakotņu pārvaldnieks ir pazīstams kā an 'instalēšanas pārvaldnieks'. Tas var radīt neskaidrības instalētāju un pakotņu pārvaldnieku vidū. Dažas no galvenajām atšķirībām ir norādītas tālāk:
Kritērijs | Pakešu pārvaldnieks | Uzstādītājs |
---|---|---|
Nosūtīts ar | Parasti OS | Visas datorprogrammas |
Uzstādīšanas informācijas vieta | Centrālā datubāze instalēšanai | Tas pilnībā ir pēc uzstādītāja ieskatiem. Tas var būt fails lietotnes mapē vai starp operētājsistēmas mapēm un failiem. Viņi var reģistrēties atinstalētāju sarakstā, neatklājot instalēšanas informāciju. |
Apkopes apjoms | Potenciāli katra sistēmas pakotne | Tikai produkts, kuram tas bija iepakots |
Izstrādātājs | Viena pakotnes pārvaldnieka pārdevējs | Vairāk nekā viens uzstādītāju piegādātājs |
Iepakojuma formāts | Saujiņa atpazītu formātu | Var būt tik daudz formātu, cik lietotnes numurs |
Pakešu formāta saderība | Var izmantot tik ilgi, kamēr to izmanto pakotņu pārvaldnieks. Vai nu lietotājs nejaunina pakotņu pārvaldnieku, vai arī jaunās pakotņu pārvaldnieka versijas to atbalsta. | Ja instalētājs izmanto jebkuru arhīva formātu, instalētājs vienmēr ir saderīgs ar to. Lai gan instalētājus tāpat kā katru datoru var ietekmēt programmatūras puve. |
Salīdzinājums ar automatizācijas utilītu
Gandrīz visas programmatūras konfigurācijas pārvaldības sistēmas ir programmatūras izvietošana un programmatūras izveide kā atsevišķas. Parasti veidošanas automatizācijas utilīta izmanto avota koda failus, kas jau ir sistēmā jau esošiem cilvēkiem lasāmā formātā, un paātrina to konvertēšanas procedūru izpildāmā pakotnē (binārā) līdzīgā sistēmā.
Parasti pakotņu pārvaldnieks, kas vēlāk darbojas dažās citās sistēmās, lejupielādē šīs izpildāmās pakotnes (iepriekš izveidotās binārās pakotnes) no interneta un pēc tam instalē.
Lai gan abu veidu rīki ietver vairākus kopīgus faktorus, kas minēti tālāk:
- Atkarību diagrammas topoloģiskā šķirošana tiek lietota pakotņu pārvaldniekā, lai apstrādātu atkarības starp daudziem bināriem komponentiem.
- Tas tiek lietots arī būvēšanas pārvaldniekā, lai apstrādātu atkarību starp daudziem avota komponentiem.
- To atbalstu nodrošina dažādi makefiili, ne tikai izpildāmo failu veidošana.
- Viņi arī atbalsta instalēšanu, izmantojot make install.
- Visi pakotņu pārvaldnieki atbalsta avota koda (cilvēkam lasāma) tulkošanu bināros izpildāmos failos un pēc tam instalē to uz avotu balstītai izplatīšanai, piemēram, Homebrew, Sorcery, Portage utt.
Daži rīki, piemēram A-A-P un Veidot ir izstrādāti, lai pārvaldītu gan izvietošanu, gan būvniecību. Tos var izmantot arī kā pakotņu pārvaldnieku vai būvniecības automatizācijas utilītu, vai abus.
Pamata pakotņu pārvaldnieki un to formāti
Universāls pakotņu pārvaldnieks
To sauc arī binārā repozitorija pārvaldnieks. Šis pakotņu pārvaldnieks ir programmatūras rīks, kas izveidots programmatūras izstrādes procesā ražoto un izmantoto bināro failu, pakotņu un artefaktu uzglabāšanas optimizēšanai un lejupielādei.
Universālie pakotņu pārvaldnieki koncentrēties, lai standartizētu modes lietotāju attieksmi pret visiem iepakojuma veidiem. Tie nodrošina lietotājiem iespēju izmantot atbilstības un drošības metriku katram artefakta veidam. Tie ir piešķirti kā atrodas vidū a DevOps rīku ķēde.
Atvērtā koda un bezmaksas programmatūras sistēmas
Saderīgu un līdzīgu licenču pakotnes ir pastāvējušas lietošanai vairākās operētājsistēmās, izmantojot atvērtā koda un bezmaksas programmatūru.
Šīs pakotnes var izplatīt un apvienot, izmantojot iekšēji sarežģītas un konfigurējamas iepakošanas sistēmas, lai pārvaldītu vairākus versijai raksturīgus konfliktus un atkarības un programmatūras permutācijas.
Arī dažas atvērtā pirmkoda un bezmaksas programmatūras iepakošanas sistēmas pašas tiek publicētas kā atvērtā pirmkoda un bezmaksas programmatūra.
Viena atšķirība starp pakotņu pārvaldību operētājsistēmās, piemēram, Windows un Mac OS X, un atvērtā koda un bezmaksas programmatūras, piemēram, Linux, ir tāda, ka atvērtā pirmkoda un bezmaksas programmatūras sistēmas ļauj jaunināt un instalēt trešo pušu pakotnes, izmantojot līdzīgu mehānismu. . Tā kā daudzi Windows un Mac OS X pakotņu pārvaldnieki jauninās programmatūru, ko nodrošina attiecīgi Microsoft un Apple.
Iespēja nepārtraukti jaunināt trešās puses programmatūru tiek pievienota, iekļaujot atbilstošo repozitorija URL pakotņu pārvaldības konfigurācijas failā.
Pakešu formāti
Visi pakotņu pārvaldnieki ir atkarīgi no to pakotņu metadatiem un formāta, kuras viņi varētu pārvaldīt. Pakešu pārvaldnieki pieprasa, lai failu grupas būtu grupētas konkrētajam pakotņu pārvaldniekam ar atbilstošiem metadatiem, piemēram, atkarībām.
Pamata utilītu kolekcija bieži pārvalda vispārējo instalēšanu, izmantojot šīs pakotnes, un vairāk nekā viens pakotņu pārvaldnieks izmanto šīs utilītas, lai nodrošinātu papildu funkcionalitāti.
Piemērs:
- yum ir atkarīgs no rpm kā aizmugursistēmas. Yum attīsta aizmugursistēmas funkcionalitāti, pievienojot tādus aspektus kā vienkārša konfigurācija, lai uzturētu sistēmas tīklu.
- Sinaptisko pakotņu pārvaldnieks nodrošina GUI, izmantojot Advanced Packaging Tool bibliotēku, kas ir atkarīga no dpkg.
Citplanētietis var definēt kā programmu, kas tulko starp dažādiem Linux pakotņu formātiem. Tas atbalsta konversiju starp Slackware (.tgz, .tlz, .tbz, .txz) pakas, Solaris (.pkg), Stampede (.slp), .deb, .rpm pakotnes, un Linux standarta bāze (LSB) atbilstošs.
Vairākās mobilajās operētājsistēmās, piemēram, Google Play izmanto pakotnes formātu Android lietojumprogrammu pakotne (Īsumā APK ), kamēr Windows veikals izmanto formātus XAP un APPX. Abi Windows veikals un Google Play satur tāda paša nosaukuma pakotņu pārvaldniekus.
Lietojumprogrammu līmeņa pakotņu pārvaldnieki
Ir daži pakotņu pārvaldnieki (papildinājums) operētājsistēmām programmēšanas valodām un ar ierobežotām iespējām, kur izstrādātājiem ir nepieciešamas pašreizējās bibliotēkas. Lietojumprogrammu līmeņa pakotņu pārvaldnieki, atšķirībā no sistēmas līmeņa pakotņu pārvaldniekiem, koncentrējas uz programmatūras sistēmas nelielu daļu.
Parasti tie atrodas direktoriju kokā. To neorganizē sistēmas līmeņa pakotņu pārvaldnieks, piemēram, /usr/local/fink vai c:cygwin. Lai gan tas var nebūt nosacījums pakotņu pārvaldniekam, kas strādā ar programmēšanas bibliotēkām, izraisot iespējamu konfliktu, jo abi pakotņu pārvaldnieki var pārtraukt jauninājumus un pieprasīt 'savu' fails.