Dette er hvordan programvareinstallatører jobber på Windows, MacOS og Linux

Moderne operativsystemer gir deg enkle metoder for å sette opp nye applikasjoner. Men hva skjer faktisk når du kjører installatøren eller utsteder den kommandoen?

Moderne operativsystemer gir deg enkle metoder for å sette opp nye applikasjoner.  Men hva skjer faktisk når du kjører installatøren eller utsteder den kommandoen?
Annonse

Moderne operativsystemer gir deg enkle metoder for å sette opp nye applikasjoner. Disse inkluderer automatiserte installasjonspakker samt kommandoer som installerer mange biter av programvare samtidig. Men hva skjer faktisk når du kjører installatøren eller utsteder den kommandoen?

La oss se på hvordan programvare blir installert på tre store skriveplattformer: Windows, MacOS og Linux.

Metoder for programvareinstallasjon

Det er noen forskjellige måter du kan få nye applikasjoner på på datamaskinen din. For å øke kompleksiteten inkluderer disse:

  • Programvarekompilering - Bygg applikasjonen fra kildekoden. Kun for de mest tekniske brukerne.
  • Programvarearkiver - Pakker ut arkiver som ZIP-filer og kjører programmet fra hvor du har hentet den. Dette kan kreve litt ekstra justering.
  • Installasjonspakker - Finne en installasjonsfil og (dobbeltklikk) for å starte installasjonen.
  • Software Managers / Stores - Velger appen fra et fint grensesnitt og klikker på en stor "Installer" -knapp. Det er magisk!

I denne artikkelen vil vi undersøke installasjonspakken, som de fleste programvareadministratorer / butikker i siste instans håndterer med disse typer pakker bak kulissene uansett. For dagens hovedbordsplattformer - Windows, MacOS og Linux - ser vi på hva som utgjør en av disse pakkene, og hva skjer når du installerer dem.

Microsoft Windows

Installer-pakkene du sannsynligvis kommer over for Windows, kommer i en av to hovedsmak. Utførbare filer (EXE) kan sette opp programmet ved å gjøre den tunge løftingen av å plassere filer på riktig sted og utføre Windows Registry-oppdateringer. Windows Installer-pakker (MSI) legger til dette ved å tilby standardiserte tjenester som uninstalls.

Du kan inspisere innholdet i EXE eller MSI ved å åpne arkivet med 7-Zip 7Zip: Et gratis program for å pakke ut uvanlige arkivformater 7Zip: Et gratis program for å pakke ut uvanlige arkivformater Les mer. Hvis du bruker den til å se på 7-Zips eget EXE-installasjonsprogram, finner du en rekke forskjellige filer innenfor:

anatomi programvarepakke 7zip innhold

Mens disse filene ikke inneholder noen mapper i installasjonsprogrammet, vil utvikleren ha pekt hver på en målkatalog. De fleste av dem havner i "standard installasjonsplassering" - det samme forslaget du vanligvis ser for en mappe som "C: \ Program Files \ [programnavn]" eller "C: \ Program Files (x86) \ [din nye app ].”

Når du bruker et sofistikert verktøy som InstallShield for å lage installasjonspakker, kan apputviklere tilpasse installasjonen. For eksempel kan de angi hvilke versjoner av Windows den den skal installeres på, sette opp snarveier som skal opprettes i Start-menyen og / eller på skrivebordet, eller samle brukerinformasjon som navn, adresse osv. Eksemplet InstallShield-prosjektet i bildet nedenfor viser skjermen for å angi om Windows-registernøkler skal opprettes eller oppdateres.

anatomi programvarepakke installshield register

Med InstallShield blir appfilene og andre tilpasninger pakket inn i en setup.exe- fil. Å åpne den med 7-Zip vil vise at innsiden er en MSI-pakke som når den kjøres, ser akkurat som installasjonen vi er vant til. La oss se gjennom hva som skjer under denne prosessen.

anatomi programvarepakke installshield installasjon

Windows installasjonsprosess

Et installasjonsprogram vil følge disse trinnene for å stille opp appen din til bruk (den nøyaktige rekkefølge som kan variere avhengig av utviklerens tilpasninger):

  1. Et installasjonsprogram kan inneholde andre arkiver, som nevnte MSI eller formater som CAB. Som et første skritt vil installatøren trekke ut disse til et midlertidig sted.
  2. Deretter kontrolleres det at eventuelle avhengigheter som er satt, er tilgjengelige. Hvis noe mangler, laster det ned det hvis det er mulig, eller avslutter installatøren med en feil hvis ikke.
  3. Hvis noen avhengighet kreves, vil de bli installert først ved hjelp av installasjonsprogrammet de følger med (noen gang har installasjonen avbrutt for. NET Framework? Microsoft. NET Framework: Hvorfor trenger du det og hvordan du installerer det på Windows Microsoft .NET Framework: Hvorfor Du trenger det og hvordan du installerer det på Windows Du må enten installere eller oppdatere det. Men vet du hva .NET Framework er? Vi viser deg hvorfor du trenger det og hvordan du kan få den nyeste versjonen. Les mer).
  4. Deretter begynner installasjonsprogrammet å kopiere appens filer og plassere dem på riktig sted.
  5. Hvis utvikleren konfigurerer noen snarveier, vil installasjonsprogrammet opprette og peke dem til den faktiske installasjonsbanen (husk, du kan endre dette. Slik lager du Windows-skrivebordssnarveier på den enkle måten. Slik lager du Windows-skrivebordssnarveier. Easy Way Smart-skrivebordssnarveier kan spare deg tankeløs sikting gjennom menyer og mapper. Vi viser deg raske og enkle måter å opprette dem på. Les mer når installasjonsprogrammet kjøres).
  6. Endringer i Windows-registret 3 Verktøy for å overvåke og undersøke Windows-registret 3 Verktøy for å overvåke og undersøke Windows-registeret Windows-registeret er en av de dårligst forstått delene av Windows-operativsystemet. Vi viser deg verktøy som kan forenkle registeret og hjelpe deg med å identifisere problemer. Les mer, hvis noen, vil bli utført.
  7. Til slutt kan installasjonsprogrammet be om at brukeren oppgir informasjon som navn eller nettstedadresse.

Denne prosessen kan virke kompleks i forhold til det neste operativsystemet på listen. La oss ta en titt på å installere programvare på macOS.

Apple MacOS

Windows installatører har mye på gang under hetten. Men hvis du har brukt en Mac, vet du at det å installere et program ofte er like enkelt som å laste ned en kopi av appen, åpne diskbildet (DMG), og følge noen enkle instruksjoner. Slik installerer og fjerner du Mac-programvare: 5 enkle metoder Slik installerer og fjerner du Mac-programvare: 5 enkle metoder Skiftet til en Mac og får tak i det grunnleggende? Lurer på hvordan du installerer programvare fra kommandolinjen? Har du gamle Windows-apper som du bare må kjøre på Apple-datamaskinen din? Les mer . Noen ganger gir nedlastingen til og med deg et "Dra her!" -ikonet.

La oss dykke inn i APP-pakken, så vel som dens motstykke til PKG-installatøren.

MacOS Pakke Struktur

APP-filen på overflaten er faktisk enklere enn Windows for to hovedårsaker. For det første er det en standardmappe. Den eneste forskjellen er at den ender med et ".APP" suffiks. Hvis du laster ned en av disse på Windows, vil du se at den vises akkurat som en annen filmappe ville i Explorer. For det andre krever APP-filer at alt som programmet krever er inkludert. Det er ingen bekymring for manglende avhengigheter med disse typer installatører.

Disse buntene må inneholde tre ting i en mappe som heter "Innhold": 1) En "Info.plist" -fil som inneholder applikasjonsmetadata som navn, språk, versjonsnummer osv .; 2) en "MacOS" -katalog som holder hovedkjøpbar; og 3) en "Ressurs" -katalog som inneholder ressurser som programmet må fungere (for eksempel et applikasjonsikon). Det finnes andre valgfrie mapper som "Rammer" (bunter med funksjonalitet som ikke er spesifikke for appen), "Plug-Ins" (funksjonalitet for appen som ikke er nødvendig for å kjøre den) og "SharedSupport" (fremmede data som maler).

mac app mapper

I motsetning er PKG-formatet en kombinasjon av et Windows-lignende installasjonsprogram med en Unix-lignende struktur 3 UNIX-lignende operativsystemer som ikke er Linux 3 UNIX-lignende operativsystemer som ikke er Linux Nylig begynte folk å forvirre " UNIX "med" Linux. " Linux var påvirket av UNIX, men UNIX-systemer har ikke noe forhold til Linux. Her er noen viktige UNIX-baserte systemer som er verdt å vite om. Les mer . 7-Zip-applikasjonen åpner også en PKG-fil, som komprimeres i xar- format. Innenfor er en eller flere Payload- filer, som også er et arkiv. For å pakke ut innholdet, bruk følgende kommandokjede ( cpio er et arkivformat, samt et program for å manipulere dem) i en Mac eller Linux-terminal:

cat Payload | gunzip -dc | cpio -i 

Når du er ferdig, ser du et kjent Unix-lignende katalogtre.

I eksemplet nedenfor har jeg brukt dokumentkonverter, Pandoc. Den inneholder en binær i / usr / local / bin og litt dokumentasjon i / usr / local / share / man . Hvordan kommer disse tingene faktisk på plass? Vi tar en titt på hvordan hver av disse faktisk installeres på din Mac.

mac pkg struktur

Jeg har brukt Windows-versjonen av 7-Zip for å illustrere dette, i stedet for kommandolinjens eneste Linux-versjon.

macOS APP installasjonsprosess

Når du slipper den APP-filen i mappen Programmer, endres det ikke så mye. Husk at alt som trengs for å kjøre programmet er selvstendig. Den eneste forskjellen fra en standard drag-and-drop er at filen "Info.plist" blir registrert hos systemet.

mac app kopi

Dette vil konfigurere ting som det kjørbare kalles når du starter appen, hvilket ikon vises, filtyper det støtter og mer. Men ellers er appen din (for eksempel APP-pakken for Atom Editor, vist nedenfor) nå klar til bruk.

Mac-app installert

MacOS PKG Installasjonsprosess

Å åpne en PKG-fil, derimot, lanserer et installasjonsprogram for "veiviserstilsyn". For enkle programmer er dette vanligvis en komponentinstallatør, som vanligvis går gjennom følgende trinn:

  1. Kjør forhåndsinstallasjonsskriptet .
  2. Pakke inn "Lastbelastning" innholdet til maskinen.
  3. Kjør etterinstallasjonsskriptet .

mac pkg installere

Utviklere kan da kombinere flere komponenter i en enkelt produktarkivinstallasjon . Dette legger til alternativer som å vise en EULA for brukeren å godta, samle inn informasjon fra brukeren og velge komponentene som skal installeres. I mellomtiden tar Apple Installer seg av alle detaljer om å installere de nødvendige komponentene en-i-ett i bakgrunnen.

Når vi snakker om Unix-baserte installatører, går vi videre til de to ledende Linux-pakkformatene i neste avsnitt.

Ubuntu og Fedora Linux

Ah, DEB versus RPM Slik installerer du programvare på Linux: Pakkeformater forklart Slik installerer du programvare på Linux: Pakkeformater forklart Du har byttet til Linux, og vil installere noe programvare. Men pakkeforvaltere varierer avhengig av distro. Så hvilke apper kan du laste ned og installere? Det er alt i akronymer. Les mer . En av de store flamskrigene, bested bare av slike som vi versus emacs eller KDE versus GNOME. Likevel er disse formatene mer likte enn de er forskjellige. La oss ta en titt.

Linux Package File Structure

For å se på innsiden av en DEB-fil, kan du prøve en GUI-arkivbehandling. Ellers bruk ar- kommandoen. Følgende kommando er lagt inn i terminalen 40 + Mest brukte Linux Terminal Commands 40 + Mest brukte Linux Terminal Commands Uansett om du bare begynner eller bare nysgjerrig på Linux-terminalen, er de de vanligste kommandoene som vil bære deg gjennom hele tiden på Linux. Les mer vil trekke ut innholdet i en Debian-pakke:

 ar -x name-of-your-package.deb 

Tre filer kommer ut av dette:

  • control.tar.gz - Dette inneholder i sin tur en primærfil, Control, som inneholder metadata om pakken, for eksempel det offisielle navnet, versjonen og avhengighetene. Det kan også inneholde andre filer, for eksempel skript som skal kjøres under installeringsprosessen eller standardkonfigureringsfilene.
  • data.tar.gz - Filene som utgjør selve programmet, er i dette TAR.GZ-arkivet. Alt, inkludert binærfiler, dokumentasjon og standardkonfigurer er her. I eksempelpakken kde-service-meny-encfs_0.5.2_all.deb inneholder den filer og kataloger som vist i bildet nedenfor.
  • debian-binær - Dette er en fil som definerer hvilken versjon av Debians pakkeformat filen bruker. For moderne distribusjoner vil dette bare inneholde "2.0" på en enkelt linje.

deb hovedkontroll

I Fedora kan du bruke kommandoene rpm2cpio og cpio til å pakke ut en RPM-pakke og bla gjennom filene deres:

 rpm2cpio name-of-your-package.rpm | cpio -idvm 

For pakken kde-cli-tools-5.9.4-2.fc26.x86_64.rpm, ser du et filtre tilsvarende DEB-pakken. Men det gir ikke metadataene, i det minste ikke i binærpakken . Du må laste ned kilde RPM (. SRC.RPM) som svarer til din binære versjon, og bruk deretter samme kommando over på den filen. Inkludert i det vil være en SPEC-fil som inneholder mange av de samme elementene som kontrollfilen i en Debian-pakke.

Nå som vi har forståelse for strukturen av Linux-pakker, la oss undersøke hva som skjer når du faktisk installerer dem. Slik installerer du programvare på Linux: Pakkeformater forklart Slik installerer du programvare på Linux: Pakkeformater forklart Du har byttet til Linux, og vil installere noe programvare. Men pakkeforvaltere varierer avhengig av distro. Så hvilke apper kan du laste ned og installere? Det er alt i akronymer. Les mer .

Linux Package Installasjon

Når du installerer pakker med enten format, uansett frontend, skjer et lignende sett med trinn:

  1. Pakke systemet undersøker innholdet i pakken for å avgjøre om det mangler avhengigheter. Avhengig av verktøyet, vil det enten advare deg eller angi å laste dem ned.
  2. Hvis pakkene inneholder forhåndsinstallere skript eller kommandoer kjører de neste.
  3. Da pakker systemet ut pakkenes filer.
  4. Med filene på plass, kjøres post-installeringsskript.
  5. Endelig er pakken registrert med den interne databasen ved hjelp av metadata, slik at den kan avinstalleres senere.

Å vite hvordan programvare installeres er en god ting

Fordi utviklere av operativsystemer og programvaren som kjører på dem, gjør en god jobb med å lage programvareinstallasjon enkelt, trenger du ikke å være oppmerksom på detaljene. Men å ha litt kunnskap om det som skjer bak kulissene, vil gi deg litt fred i tankene om hva som blir installert på systemet ditt, samt å hjelpe deg med feilsøking.

Hvor mange av de ovennevnte programvareinstallasjonsmetodene har du gjort? Foretrekker du DEB eller RPM? Eller representerer Macs APP-bunter toppet av brukervennlighet? Har du noen gang hatt et mareritt installasjon skje? Gi oss beskjed i kommentarene nedenfor!

In this article