logo

Linux Package Manager

Johdanto

A paketinhallintajärjestelmä tai paketinhallinta on joukko ohjelmistotyökaluja. Se automatisoi asennusprosessin, päivitysprosessin, konfigurointiprosessin ja tietokoneen käyttöjärjestelmän tietokoneohjelmien poistoprosessin tehokkaasti. A paketin hallinta toimii pakettien, arkistotiedostojen tietojen ja ohjelmistojakelujen kanssa.

Paketit sisältävät metatietoja, kuten ohjelmiston nimi, sen tavoitteen kuvaus, tarkistussumma (mieluiten kryptografinen hash-funktio), d riippuvuusluettelo, toimittaja, ja versionumero välttämätön ohjelmiston asianmukaisen toiminnan kannalta.

  • Metadata tallennetaan paikallisen paketin tietokantaan asennuksen yhteydessä.
  • Tyypillisesti paketinhallintaohjelmat hallitsevat tietokantaa versiotiedoista ja ohjelmistoriippuvuuksista puuttuvien edellytysten ja ohjelmistojen yhteensopimattomuuden estämiseksi.
  • He toimivat läheisessä yhteistyössä sovelluskauppojen, binääritietovarastojen hallinnoijien ja ohjelmistovarastojen kanssa.
  • Paketinhallintaohjelmat on kehitetty poistamaan manuaalisten päivitysten ja asennusten vaatimus.
  • Se voi olla hyödyllinen erityisesti suurille organisaatioille, joiden käyttöjärjestelmät yhdistävät tyypillisesti satoja tai paljon enemmän erilaisia ​​ohjelmistopaketteja.

Pakettihallinnan toiminnot

Ohjelmistopaketti voidaan määritellä nimellä arkistotiedosto tietokoneohjelman ja välttämättömien metatietojen yhdistäminen kehitystä varten. Järjestelmäohjelma voi olla lähdekoodissa, joka on ensin rakennettava ja käännettävä.

Paketin metatiedot sisältävät paketin version, paketin kuvauksen ja riippuvuudet (paketit, jotka on asennettava etukäteen). Monet paketinhallintaohjelmat ovat omistuksessa, ja ne asentavat, poistavat, ylläpitävät tai etsivät ohjelmistopaketteja käyttäjän komennossa.

The paketinhallintajärjestelmä sisältää joitain tyypillisiä toimintoja jotka on mainittu alla:

  • Tiedostoarkistijoiden kanssa tekeminen pakettiarkistojen purkamiseksi.
  • Paketin aitouden ja eheyden varmistaminen todentamalla niiden digitaaliset sertifikaatit ja tarkistussummat.
  • Päivitys, asennus, lataaminen tai olemassa olevien ohjelmistojen etsiminen sovelluskaupan tai ohjelmistovaraston kautta.
  • Pakettien yhdistäminen toiminnon avulla käyttäjän hämmennyksen vähentämiseksi.
  • Riippuvuuksien ylläpito varmistaaksesi, että paketti on asennettu jokaisen sen tarvitseman paketin mukana. Eli huomioimatta 'riippuvuushelvetti'.
Linux Package Manager

Käytettyjen pakettien käyttöliittymät (paikallisesti)

Järjestelmänvalvojat saattaa asentaa ja hallita ohjelmistoa joidenkin muiden työkalujen kuin paketinhallintaohjelmiston avulla. Esimerkiksi, paikallinen järjestelmänvalvoja voi ladata lähdekoodin (pakkaamattomana), kääntää sen ja asentaa sen sitten.

Se voi aiheuttaa paikallisen järjestelmän tilan putoamisen pois synkronoinnista yhdessä paketinhallinnan tilan tietokannan kanssa. Paikallista järjestelmänvalvojaa tarvitaan lisätoimenpiteisiin, kuten muutosten manuaalinen integrointi paketinhallintaan tai muutamien riippuvuuksien hallinta.

täysi muoto pvr

On olemassa joitain työkaluja pakettien kääntämisen varmistamiseksi (paikallisesti) kehitetään paketinhallinnan kanssa.

Tarkista asennus on saatavilla .rpm tai .deb-tiedostopohjaiset jakelut ja Slackware Linux yhtä hyvin. varten hybridi järjestelmät kuten Arch Linux ja reseptipohjaiset järjestelmät Kuten Gentoo Linux, on mahdollista aluksi määrittää resepti, joka sitten vahvistaa, että paketti sopii paikalliseen pakettitietokantaan.

Haasteet hajautettujen kirjastojen kanssa

Useat tietokonejärjestelmät, jotka riippuvat dynaamisesta kirjastolinkityksestä staattisen kirjastolinkityksen sijaan, jakavat konekäskyjen kirjastot (suoritettavat) sovellusten ja pakettien kesken.

Tämäntyyppisissä järjestelmissä tyypilliset suhteet erillisten kirjastoa tarvitsevien pakettien välillä johtavat versioihin haasteeseen, jota kutsutaan 'riippuvuushelvetti'.

Se tunnetaan myös nimellä 'DLL helvetti' Microsoft Windowsissa, kun käsitellään linkitettyjä kirjastoja dynaamisesti. Hyvä paketinhallinta on ratkaisevan tärkeää näille järjestelmille.

From OPENSTEP , kehysjärjestelmä ratkaisi tämän ongelman sallimalla useamman kuin yhden kirjastoversion asentamisen samanaikaisesti ja monien ohjelmistopakettien kuvailemisen, mihin versioon ne on linkitetty.

Kokoonpanon ylläpito

Asetustiedoston päivitykset ovat erityisen ongelmallisia ohjelmistopäivityksissä. Ainakin Unixissa, koska paketinhallintaohjelmat saivat alkunsa tiedostojen arkistointiapuohjelman laajennuksesta.

Yleensä ne vain joko säilyttävät tai korvaavat asetustiedostot sen sijaan, että käyttäisivät niihin sääntöjä. Useita ongelmia voi ilmetä, kun asetustiedostomuoto muuttuu. Jos esimerkiksi vanha asetustiedosto ei poista uudempia vaihtoehtoja erikseen, se on näytettävä. Muutama paketinhallinta, kuten Debianin dpkg, sallii konfiguroinnin asennuksen yhteydessä. Joissakin muissa tapauksissa on toivottavaa asentaa paketit oletuskokoonpanon mukaan ja korvata asennuksen kokoonpano (ilman päätä) useille järjestelmille. Tämän tyyppistä asennusta (esimääritetty) tukee myös dpkg.

Päivityksen esto

Perinteistä on, että käyttäjän käytettävissä on suoritettava toimintolista (yleensä päivitettävä pakettiluettelo ja mahdollisesti uusi ja vanha versionumero), jos käyttäjä tekee yhteistyötä paketinhallintaohjelmiston kanssa päivityksen toteuttamiseksi.

Sen avulla käyttäjä voi joko valita yhden paketin päivityksiä varten tai tehdä päivityksen kerralla. Useita paketinhallintaohjelmia voidaan määrittää olemaan päivittämättä koskaan monia paketteja tai päivittämään ne vain, jos vanhassa standardissa havaitaan kriittisiä epävakauksia tai haavoittuvuuksia ohjelmistopaketin määrittelemällä tavalla. Joskus tätä prosessia kutsutaan version kiinnittämiseksi.

Esimerkiksi:

yum tukee sitä poissulke=avointoimisto* syntaksi

pacman syntaksin kanssa Ohita = openoffice (molemmissa tapauksissa openoffice-päivityksen estämiseksi)

dselect ja dpkg tukevat sitä osittain pitolipulla paketin valinnoissa.

soveltuvuudella on 'kieltää' ja 'pidä' liput.

portage tukee sitä asetustiedostolla, eli paketti.naamio.

APT laajentaa lippua, eli pidä kompleksin toimesta 'kiinnitys' menetelmällä (käyttäjät voivat myös lisätä paketin mustalle listalle).

Tietovarastot

Ohjelmisto ladataan joskus useiden ohjelmistovarastojen avulla, jotta käyttäjät voisivat hallita enemmän ohjelmistotyyppejä, jotka he sallivat asennettavan järjestelmään (joskus jakelijan mukavuuden ja oikeudellisten syiden vuoksi).

Vaihda menetelmä java

Kaskadipakettien poisto

Muutamia kehittyneempiä paketinhallintanäkökohtia helpottavat 'sarjan pakettien poisto', jossa jokainen paketti, joka luottaa kohdepakettiin ja jokainen paketti, johon kohdepaketti luottaa, poistetaan myös.

Komentojen vertailu

Komennot ovat kuitenkin ainutlaatuisia kaikille tietyille paketinhaltijoille. Nämä komennot ovat suurelta osin käännettävissä, koska useimmat paketinhallintaohjelmat mahdollistavat samoja toimintoja.

Paketinhallinnan yleisyys

Paketinhallintaohjelmat, kuten dpkg, ovat saatavilla jo vuonna 1994. Useat binääripaketteihin suuntautuneet Linux-jakelut ovat vahvasti riippuvaisia ​​paketinhallintajärjestelmästä, koska ne ovat pääasiallisia ohjelmistojen ylläpito- ja hallintakeinoja.

Monet mobiilikäyttöjärjestelmät, kuten Windows Phone, iOS (Unixin kaltainen) ja Android (Linux-pohjainen), riippuvat melkein toimittajan App Storesta. Siksi he käyttävät paketinhallintajärjestelmää (omistettu).

Vertailu asentajiin

Usein paketinhallinta tunnetaan nimellä 'asennushallinta'. Se voi aiheuttaa hämmennystä asentajien ja paketinhallintaohjelmien keskuudessa. Jotkut tärkeimmistä eroista on esitetty alla:

Kriteeri Paketinhallinta Asentaja
Toimitetaan kanssa Yleensä käyttöjärjestelmä Kaikki tietokoneohjelmat
Asennustietojen sijainti Keskitetty tietokanta asennusta varten Se on kokonaan asentajan harkinnan varassa. Se voi olla tiedosto sovelluksen kansiossa tai käyttöjärjestelmän kansioiden ja tiedostojen joukossa. He saattavat rekisteröityä asennuksen poistajien luetteloon paljastamatta asennustietoja.
Huoltoalue Mahdollisesti jokainen järjestelmän paketti Vain tuote, johon se oli pakattu
Kehittäjä Yhden paketinhallinnan toimittaja Useampi kuin yksi asentajatoimittaja
Paketin muoto Kourallinen tunnistettuja formaatteja Muotoa voi olla yhtä monta kuin sovelluksen numero
Pakettimuodon yhteensopivuus Voidaan käyttää niin kauan kuin paketinhallinta käyttää sitä. Joko käyttäjä ei päivitä paketinhallintaa tai uudet paketinhallintaversiot tukevat sitä jatkuvasti. Jos asennusohjelma käyttää mitä tahansa arkistomuotoa, asennusohjelma on aina yhteensopiva sen kanssa. Ohjelmistomätä saattaa kuitenkin vaikuttaa asentajiin kuten kaikkiin tietokoneisiin.

Vertailu automaatioapuohjelmaan

Lähes kaikki ohjelmistokokoonpanon hallintajärjestelmät edustavat ohjelmistojen käyttöönottoa ja ohjelmistojen rakentamista erillisinä. Tyypillisesti rakennusautomaatio-apuohjelma ottaa lähdekooditiedostot, jotka ovat jo järjestelmässä ihmisen luettavassa muodossa, ja se nopeuttaa niiden muuntamista suoritettavaksi paketiksi (binääriksi) samanlaisessa järjestelmässä.

Tyypillisesti paketinhallinta, joka myöhemmin suoritetaan muutamissa muissa järjestelmissä, lataa kyseiset suoritettavat paketit (esirakennetut binaarit) Internetistä ja asentaa ne sitten.

Molemmat työkalutyypit sisältävät kuitenkin useita yhteisiä tekijöitä, jotka mainitaan alla:

  • Riippuvuusgraafin topologista lajittelua käytetään paketinhallinnassa monien binäärikomponenttien välisten riippuvuuksien käsittelemiseksi.
  • Sitä käytetään myös koontiversionhallinnassa monien lähdekomponenttien välisen riippuvuuden käsittelemiseen.
  • Erilaiset make-tiedostot tarjoavat tukeaan, ei vain suoritettavien tiedostojen rakentamista.
  • Ne tukevat myös asennusta make install -toiminnolla.
  • Kaikki paketinhallintaohjelmat tukevat lähdekoodin (ihmisen luettavissa) kääntämistä binäärisiksi suoritettaviksi tiedostoiksi ja asentavat sen sitten lähdepohjaiseen jakeluun, kuten Homebrew, Sorcery, Portage jne.

Jotkut työkalut, kuten A-A-P ja Tehdä on kehitetty hallitsemaan sekä käyttöönottoa että rakentamista. Niitä voidaan käyttää myös joko paketinhallinnana tai rakennusautomaation apuohjelmana tai molempina.

Peruspakettien hallintaohjelmat ja niiden muodot

Universaali paketinhallinta

Sitä kutsutaan myös binääritietovaraston hallinta. Tämä paketinhallinta on ohjelmistotyökalu, joka on luotu ohjelmistokehitysprosessissa tuotettujen ja käytettyjen binääritiedostojen, pakettien ja artefaktien tallennuksen optimointiin ja lataamiseen.

Universaalit pakettien hallintaohjelmat keskity standardoimaan muotia, jota käyttäjät kohtelevat kaikentyyppisille paketeille. Ne tarjoavat käyttäjille mahdollisuuden käyttää yhteensopivuus- ja turvallisuusmittareita jokaisen artefaktityypin ympärillä. Heidät on nimetty olevan keskellä a DevOps-työkaluketju.

Linux Package Manager

Avoimen lähdekoodin ja ilmaiset ohjelmistojärjestelmät

Yhteensopivilla ja vastaavilla lisensseillä olevat paketit ovat olleet käytettävissä useissa käyttöjärjestelmissä avoimen lähdekoodin ja ilmaisten ohjelmistojen käyttäytymisen vuoksi.

Näitä paketteja voidaan jakaa ja yhdistää käyttämällä sisäisesti monimutkaisia ​​ja konfiguroitavia pakkausjärjestelmiä useiden versiokohtaisten ristiriitojen ja riippuvuuksien sekä ohjelmistopermutaatioiden hallitsemiseksi.

Myös muutamat avoimen lähdekoodin ja ilmaisten ohjelmistojen pakkausjärjestelmät julkaistaan ​​itse avoimena lähdekoodina ja ilmaisina ohjelmistoina.

Eräs ero Windows- ja Mac OS X:n kaltaisten käyttöjärjestelmien sekä avoimen lähdekoodin ja ilmaisten ohjelmistojen, kuten Linuxin, pakettienhallinnan välillä on se, että avoimen lähdekoodin ja ilmaiset ohjelmistojärjestelmät mahdollistavat kolmannen osapuolen pakettien päivittämisen ja asentamisen samanlaisella mekanismilla. . Monet Windowsin ja Mac OS X:n pakettien hallintaohjelmat päivittävät Microsoftin ja Applen ohjelmistoja.

Mahdollisuus päivittää jatkuvasti kolmannen osapuolen ohjelmistoja lisätään sisällyttämällä vastaava arkiston URL-osoite paketinhallinnan asetustiedostoon.

Paketin muodot

Kaikki paketinhallintaohjelmat riippuvat niiden pakettien metatiedoista ja muodosta, joita he voivat hallita. Paketinhallintaohjelmat edellyttävät, että tiedostoryhmät on ryhmitelty tietylle paketinhallintaohjelmalle oikeilla metatiedoilla, kuten riippuvuuksilla.

Ydinkokoelma apuohjelmia hallitsee usein yleistä asennusta näiden pakettien kautta, ja useampi kuin yksi paketinhallinta käyttää näitä apuohjelmia lisätoimintojen tarjoamiseksi.

Esimerkki:

  1. yum riippuu rpm:stä taustaohjelmana. Yum kehittää taustatoimintoja lisäämällä ominaisuuksia, kuten yksinkertaisen konfiguroinnin järjestelmäverkon ylläpitämiseksi.
  2. Synaptic pakettien hallinta antaa graafisen käyttöliittymän käyttämällä Advanced Packaging Toolin kirjastoa, joka riippuu dpkg:sta.

Ulkomaalainen voidaan määritellä ohjelmaksi, joka kääntää eri Linux-pakettimuotojen välillä. Se tukee muuntamista Slackware (.tgz, .tlz, .tbz, .txz) paketit, Solaris (.pkg), Stampede (.slp), .deb, .rpm paketit, ja Linux Standard Base (LSB) yhteensopiva.

Useissa mobiilikäyttöjärjestelmissä, kuten Google Play käyttää paketin muotoa Android-sovelluspaketti (lyhyesti APK ) samalla kun Windows Store käyttää muotoja XAP ja APPX. Molemmat Windows Store ja Google Play sisältää samannimisen paketinhallinnan.

Sovellustason paketinhallintaohjelmat

Ohjelmointikielille ja rajoitetuilla ominaisuuksilla varustettuihin käyttöjärjestelmiin on olemassa muutamia paketinhallintaohjelmia (lisäosia), joissa kehittäjät vaativat nykyiset kirjastot. Sovellustason paketinhallintaohjelmat keskittyvät ohjelmistojärjestelmän pieneen osaan toisin kuin järjestelmätason paketinhallintaohjelmat.

Tyypillisesti ne sijaitsevat hakemistopuussa. Sitä ei järjestä järjestelmätason paketinhallinta, kuten /usr/local/fink tai c:cygwin. Se ei kuitenkaan välttämättä ole ehto paketinhallintaohjelmalle, joka toimii ohjelmointikirjastojen kanssa, mikä aiheuttaa mahdollisen ristiriidan, koska molemmat paketinhallintaohjelmat voivat katkaista päivitykset ja pyytää 'oma' tiedosto.