Dette er hvordan softwareinstallatører arbejder på Windows, MacOS og Linux

Moderne operativsystemer giver dig nemme metoder til at oprette nye applikationer. Men hvad sker der faktisk, når du kører installationsprogrammet eller udsteder den kommando?

Moderne operativsystemer giver dig nemme metoder til at oprette nye applikationer.  Men hvad sker der faktisk, når du kører installationsprogrammet eller udsteder den kommando?
Reklame

Moderne operativsystemer giver dig nemme metoder til at oprette nye applikationer. Disse omfatter automatiserede installationspakker samt kommandoer, der installerer mange bits software på én gang. Men hvad sker der faktisk, når du kører installationsprogrammet eller udsteder den kommando?

Lad os se på, hvordan software installeres på tre store desktop-platforme: Windows, MacOS og Linux.

Metoder til softwareinstallation

Der er et par forskellige måder, du kan få nye applikationer til at køre på din computer. For at øge kompleksiteten omfatter disse:

  • Software Compilation - Opbygning af programmet fra dets kildekode. Kun for de mest tekniske brugere.
  • Softwarearkiver - Udpakker arkiver som ZIP-filer og kører programmet, uanset hvor du har hentet det. Dette kan kræve nogle ekstra tweaking.
  • Installationspakker - Find en installationsfil og (dobbeltklik) for at starte installationen.
  • Software Managers / Stores - Vælger appen fra en flot grænseflade og klikker på en stor "Installer" -knap. Det er magisk!

I denne artikel vil vi undersøge installationspakkerne, da de fleste softwareforvaltere / butikker i sidste ende behandler disse typer af pakker bag kulisserne alligevel. For dagens vigtigste desktop-platforme - Windows, MacOS og Linux - ser vi på, hvad der udgør en af ​​disse pakker, og hvad sker der, når du installerer dem.

Microsoft Windows

Installationspakkerne, som du sandsynligvis vil komme over for Windows, kommer i en af ​​de to vigtigste smag. Eksekverbare filer (EXE) kan opsætte dit program ved at gøre den tunge løftning af at placere filer på den rigtige placering og udføre Windows Registry opdateringer. Windows Installer-pakker (MSI) tilføjer til dette ved at levere standardiserede tjenester såsom uninstalls.

Du kan inspicere indholdet af EXE'er eller MSI'er ved at åbne arkivet med 7-Zip 7Zip: Et gratis program til at udpakke usædvanlige arkivformater 7Zip: Et gratis program til at pakke ud ualmindelige arkivformater Læs mere. Hvis du bruger det til at se på 7-Zips eget EXE-installationsprogram, finder du en række forskellige filer indenfor:

anatomi softwarepakke 7zip indhold

Mens disse filer ikke indeholder nogen mappe inden for installationsprogrammet, har udvikleren peget på en målkatalog. De fleste af dem ender i "standardinstallationsstedet" - det samme forslag, du typisk ser for en mappe som "C: \ Program Files \ [programnavn]" eller "C: \ Program Files (x86) \ [din nye app ].”

Når du bruger et sofistikeret værktøj som InstallShield til at oprette installationspakker, kan appudviklere tilpasse installationen. For eksempel kan de angive hvilke versioner af Windows den den vil installere på, oprette genveje, der skal oprettes i startmenuen og / eller på skrivebordet eller indsamle brugeroplysninger som navn, adresse osv. Prøven InstallShield-projektet i Billedet nedenfor viser skærmen for at indstille, om Windows-registreringsnøgler skal oprettes eller opdateres.

anatomi softwarepakke installshield register

Med InstallShield bliver appfilerne og andre tilpasninger pakket ind i en setup.exe- fil. Åbning det med 7-Zip viser, at indvendig er en MSI-pakke, der, når den kører, ligner den installation, vi alle er vant til. Lad os gennemgå hvad der sker under denne proces.

anatomi softwarepakke installshield install

Windows installationsproces

Et installationsprogram vil tage følgende trin for at indstille din app op til brug (den præcise rækkefølge kan variere afhængigt af udviklerens tilpasninger):

  1. Et installationsprogram kan indeholde andre arkiver, som de ovennævnte MSI eller formater som CAB. Som et første skridt installerer installatøren disse til et midlertidigt sted.
  2. Derefter kontrolleres det for at se, at eventuelle afhængigheder, der er indstillet, er tilgængelige. Hvis der mangler noget, downloader den det hvis det er muligt, eller afslut installationen med en fejl, hvis ikke.
  3. Hvis der er behov for afhængigheder, installeres de først, uanset installationsprogrammet, de følger med (nogensinde har en installation afbrudt .NET Framework? Microsoft. NET Framework: Hvorfor har du brug for det, og hvordan du installerer det på Windows Microsoft .NET Framework: Hvorfor Du har brug for det, og hvordan du installerer det på Windows Du skal enten installere eller opdatere det. Men ved du, hvad .NET Framework er? Vi viser dig, hvorfor du har brug for det, og hvordan du kan få den nyeste version. Læs mere).
  4. Derefter begynder installatøren at kopiere appens filer og placere dem på deres korrekte placering.
  5. Hvis udvikleren konfigurerede genveje, vil installationsprogrammet oprette og pege på dem til den egentlige installationsvej (husk, du kan ændre dette Sådan oprettes Windows-genveje på skrivebordet på den nemme måde Sådan oprettes Windows-genveje på skrivebordet Den nemme måde Smart skrivebordsgenveje kan spare dig mindless sigtning gennem menuer og mapper. Vi viser dig hurtige og nemme måder at oprette dem på. Læs mere, når installationsprogrammet køres).
  6. Ændringer i Windows-registreringsdatabasen 3 Værktøjer til overvågning og undersøgelse af Windows-registreringsdatabasen 3 Værktøjer til overvågning og undersøgelse af Windows-registreringsdatabasen Windows-registreringsdatabasen er en af ​​de mest dårligt forstået dele af Windows-operativsystemet. Vi viser dig værktøjer, der kan forenkle registreringsdatabasen og hjælpe dig med at identificere problemer. Læs mere, hvis nogen, vil blive udført.
  7. Endelig kan installationsprogrammet anmode brugeren om at indtaste oplysninger som navn eller webadresse.

Denne proces kan virke kompleks i forhold til det næste operativsystem på listen. Lad os tage et kig på at installere software på macOS.

Apple MacOS

Windows installatører har meget at foregå under emhætten. Men hvis du har brugt en Mac, ved du at installation af et program ofte er lige så nemt som at downloade en kopi af appen, åbner diskbilledet (DMG) og følger nogle nemme instruktioner. Sådan installeres og fjerner du Mac-software: 5 Easy Methods Sådan installeres og fjerner du Mac-software: 5 enkle metoder Skiftet til en Mac og håndtere det grundlæggende? Undre hvordan man installerer software fra kommandolinjen? Har du gamle Windows-apps, som du simpelthen skal køre på din Apple computer? Læs mere . Nogle gange giver downloaden selv dig et "Træk her!" Ikon.

Lad os dykke ind i APP-bundtet såvel som dets modstykke til PKG-installationsprogrammet.

macOS pakke struktur

APP-filen på overfladen er faktisk enklere end Windows af to hovedårsager. For det første er det en standardmappe. Den eneste forskel er, at den ender med et ".APP" suffiks. Hvis du downloader en af ​​disse på Windows, vil du se det vises ligesom enhver anden filmappe ville være i Explorer. For det andet kræver APP-filer, at alt hvad programmet kræver, er inkluderet. Der er ingen bekymring for manglende afhængigheder med disse typer installatører.

Disse bundter skal indeholde tre ting i en mappe kaldet "Indhold": 1) en "Info.plist" -fil, der indeholder applikationsmetadata som navn, sprog, versionsnummer osv .; 2) en "MacOS" -mappe, der indeholder hovedkørslen; og 3) en "Ressourcer" -mappe, der indeholder aktiver, som applikationen skal fungere (f.eks. et applikationsikon). Der er andre valgfrie mapper som "Rammer" (bundt af funktionalitet, der ikke er specifikke for appen), "Plug-Ins" (funktionalitet til appen, der ikke er nødvendig for at køre den) og "SharedSupport" (fremmede data som skabeloner).

mac app mapper

I modsætning hertil er PKG-formatet en kombination af et Windows-lignende installationsprogram med en Unix-lignende struktur 3 UNIX-lignende operativsystemer, der ikke er Linux 3 UNIX-lignende operativsystemer, der ikke er Linux For nylig begyndte folk at forvirre " UNIX "med" Linux ". Linux blev påvirket af UNIX, men UNIX-systemer har ingen relation til Linux. Her er nogle vigtige UNIX-baserede systemer, der er værd at vide om. Læs mere . 7-Zip-applikationen åbner også en PKG-fil, som komprimeres i xar- format. Indenfor er en eller flere Payload- filer, som også er et arkiv. For at udtrække dets indhold skal du bruge følgende kommandokæde ( cpio er et arkivformat samt et program til manipulation) på en Mac eller Linux-terminal:

cat Payload | gunzip -dc | cpio -i 

Når du er færdig, vil du se et kendt Unix-lignende katalogtræ.

I eksemplet nedenfor har jeg brugt dokumentkonverter, Pandoc. Den indeholder en binær i / usr / local / bin og noget dokumentation i / usr / local / share / man . Hvordan kommer disse ting faktisk på plads? Vi tager et kig på, hvordan hver af disse faktisk installeres på din Mac.

mac pkg struktur

Jeg har brugt Windows-versionen af ​​7-Zip til at illustrere dette, snarere end kommandolinjens eneste Linux-version.

macOS APP installationsproces

Når du slipper den APP-fil i din mappe Applications, ændrer det ikke rigtig meget. Husk, at alt, hvad der behøves for at køre programmet, er selvstændigt. Den eneste forskel fra en standard træk-og-slip er, at filen "Info.plist" bliver registreret hos systemet.

mac app kopi

Dette vil konfigurere ting som det eksekverbare kaldes, når du starter appen, hvilket ikon vises, filtyper det understøtter og meget mere. Men ellers er din app (som APP-pakken til Atom Editor vist nedenfor) nu klar til brug.

Mac-app installeret

macOS PKG installationsproces

Åbning af en PKG-fil lancerer på den anden side et installationsprogram til "wizard-style". For enkle programmer er dette typisk en komponentinstallator, som typisk går gennem følgende trin:

  1. Kør præinstallations scriptet.
  2. Udpak indholdet "Lastbelastning" til maskinen.
  3. Kør postinstall scriptet.

mac pkg installere

Udviklere kan så kombinere flere komponenter til en enkelt produktarkivinstallation . Dette tilføjer valgmuligheder som at vise en EULA, som brugeren kan acceptere, indsamle information fra brugeren og vælge de komponenter, der skal installeres. I mellemtiden tager Apple Installer sig af alle detaljerne om at installere de nødvendige komponenter en-til-en i baggrunden.

Når vi taler om Unix-baserede installationsprogrammer, går vi videre til de to førende Linux-pakkeformater i næste afsnit.

Ubuntu og Fedora Linux

Ah, DEB versus RPM Sådan installeres software på Linux: Pakkeformater forklaret Sådan installeres software på Linux: Pakkeformater forklaret Du har skiftet til Linux, og vil installere noget software. Men pakkeforvaltere adskiller sig afhængigt af din distro. Så hvilke apps kan du downloade og installere? Det er alt i akronymerne. Læs mere . En af de store flamme krige, bested kun af ligesom vi vs emacs eller KDE versus GNOME. Men disse formater er mere ens, end de er forskellige. Lad os se.

Linux Package File Structure

For at se på indersiden af ​​en DEB-fil kan du prøve en GUI arkiv manager. Ellers skal du bruge kommen ar . Følgende kommando er indtastet i terminalen 40 + Mest brugte Linux Terminal Commands 40+ Mest brugte Linux Terminal Commands Uanset om du lige er begyndt eller simpelthen nysgerrig om Linux-terminalen, her er de mest almindelige kommandoer, der vil bære dig igennem hele din tid på Linux. Læs mere vil udtrække indholdet af en Debian-pakke:

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

Tre filer kommer ud af dette:

  • control.tar.gz - Dette indeholder igen en primærfil, Control, som indeholder metadata om pakken, f.eks. det officielle navn, version og afhængigheder. Det kan også indeholde andre filer som scripts, der skal køres under installationsprocessen eller standardkonfigureringsfilerne.
  • data.tar.gz - De filer, der udgør selve applikationen, er i dette TAR.GZ arkiv. Alt, herunder binære filer, dokumentation og standardkonfigurer er her. I eksempelpakken kde-service-menu-encfs_0.5.2_all.deb indeholder den filer og mapper som vist i nedenstående billede.
  • debian-binær - Dette er en fil, der definerer hvilken version af Debian-pakkeformatet filen bruger. For moderne distributioner vil dette kun indeholde "2.0" på en enkelt linje.

deb hovedkontrol

I Fedora kan du bruge kommandoerne rpm2cpio og cpio til at udpakke en RPM-pakke og gennemse deres filer:

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

For pakken kde-cli-tools-5.9.4-2.fc26.x86_64.rpm vil du se et filtræ svarende til DEB-pakken. Men det giver ikke metadataene, i det mindste ikke i den binære pakke. Du skal downloade kilden RPM (.SRC.RPM), der svarer til din binære version, og brug derefter den samme kommando over på den pågældende fil. Inkluderet i det vil være en SPEC-fil, der indeholder mange af de samme elementer som kontrolfilen i en Debian-pakke.

Nu hvor vi har en forståelse for strukturen i Linux-pakker, lad os undersøge, hvad der sker, når du rent faktisk installerer dem. Sådan installeres software på Linux: Pakkeformater forklaret Sådan installeres software på Linux: Pakkeformater forklaret Du har skiftet til Linux, og vil installere nogle software. Men pakkeforvaltere adskiller sig afhængigt af din distro. Så hvilke apps kan du downloade og installere? Det er alt i akronymerne. Læs mere .

Linux Package Installation

Når du installerer pakker af enten format, uanset front-end, sker der et lignende sæt trin:

  1. Pakke systemet undersøger pakken indhold for at afgøre, om der mangler afhængigheder. Afhængigt af værktøjet vil den enten advare dig eller indstille til at downloade dem.
  2. Hvis pakkerne indeholder forudinstallationsskripter eller kommandoer, kører de næste.
  3. Derefter pakker pakkesystemet faktisk pakkens filer.
  4. Med filerne på plads, kører post-installere scripts.
  5. Endelig er pakken registreret i den interne database ved hjælp af dens metadata, så den kan afinstalleres senere.

At vide, hvordan software installeres, er en god ting

Fordi udviklere af operativsystemer og den software, der kører på dem, gør et godt stykke arbejde med at gøre softwareinstallationen let, behøver du ikke rigtig at være opmærksom på detaljerne. Men hvis du har en vis viden om det der sker bag kulisserne, vil du give dig en smule ro i det, der installeres på dit system, samt at hjælpe med fejlfinding.

Hvor mange af de ovennævnte softwareinstallationsmetoder har du gjort? Foretrækker du DEB eller RPM? Eller udgør Macs APP-bundter toppen af ​​brugervenlighed? Har nogensinde haft et mareridt installeret ske? Lad os vide i kommentarerne nedenfor!

In this article