Det här är hur programvaruinstallatörer arbetar på Windows, MacOS och Linux

Moderna operativsystem ger dig enkla metoder för att skapa nya applikationer. Men vad händer faktiskt när du kör den installatören eller utfärdar det kommandot?

Moderna operativsystem ger dig enkla metoder för att skapa nya applikationer.  Men vad händer faktiskt när du kör den installatören eller utfärdar det kommandot?
Annons

Moderna operativsystem ger dig enkla metoder för att skapa nya applikationer. Dessa inkluderar automatiserade installationspaket samt kommandon som installerar många bitar av programvara på en gång. Men vad händer faktiskt när du kör den installatören eller utfärdar det kommandot?

Låt oss ta en titt på hur mjukvaran installeras på tre stora stationära plattformar: Windows, MacOS och Linux.

Metoder för programinstallation

Det finns några olika sätt att få nya program att köra på din dator. För att öka komplexiteten innefattar dessa:

  • Programkompilering - Bygg programmet från källkoden. Endast för de mest tekniska användarna.
  • Programvaruarkiv - Pakar ut arkiv som ZIP-filer och kör programmet från var du än tog ut det. Det kan kräva lite extra tweaking.
  • Installer Paket - Hitta en installationsfil och (dubbel) klicka för att starta installationen.
  • Software Managers / Stores - Väljer appen från ett bra gränssnitt och klickar på en stor "Install" -knapp. Det är magiskt!

I denna artikel kommer vi att undersöka installationspaketet, eftersom de flesta programvaruhanterare / butiker i slutändan hanterar dessa typer av paket bakom kulisserna ändå. För dagens huvudsakliga skrivbordsplattformar - Windows, MacOS och Linux - ser vi på vad som utgör ett av dessa paket, och vad som händer när du installerar dem.

Microsoft Windows

Installatörspaket som du sannolikt kommer att stöta på för Windows kommer i en av de två viktigaste smakerna. Exekverbara filer (EXE) kan ställa in ditt program genom att göra den tunga lyftningen av att placera filer på rätt plats och utföra Windows Registry-uppdateringar. Windows Installer-paket (MSI) lägger till detta genom att tillhandahålla standardiserade tjänster, t.ex. avinstallationer.

Du kan inspektera innehållet i EXE eller MSI genom att öppna arkivet med 7-Zip 7Zip: Ett gratis program för att pakka ut vanliga arkivformat 7Zip: Ett gratis program för att pakka ut vanliga arkivformat Läs mer. Om du använder den för att titta på 7-Zips egna EXE-installatör hittar du ett antal olika filer inom:

anatomi mjukvarupaket 7zip innehåll

Även om dessa filer inte innehåller någon mapp i installationsprogrammet, kommer utvecklaren att ha pekat var och en i en målkatalog. De flesta av dem hamnar i "standardinstallationsplatsen" - samma förslag som du normalt ser för en mapp som "C: \ Program Files \ [programnamn]" eller "C: \ Program Files (x86) \ [din nya app ].”

När du använder ett sofistikerat verktyg som InstallShield för att skapa installationspaket kan apputvecklare anpassa installationen. De kan till exempel ange vilka versioner av Windows den den ska installeras på, skapa genvägar som ska skapas i Start-menyn och / eller på skrivbordet eller samla användarinformation som namn, adress etc. Provet InstallShield-projektet i Bilden nedan visar skärmen för att ange huruvida Windows-registernycklar ska skapas eller uppdateras.

anatomi mjukvarupaket installshield register

Med InstallShield blir appfilerna och andra anpassningar inkapslade i en setup.exe- fil. Öppnar den med 7-Zip visar att inuti är ett MSI-paket som, när det körs, ser ut som den installation vi alla brukar använda. Låt oss granska vad som händer under denna process.

anatomi mjukvarupaket installshield installera

Windows installationsprocess

En installatör kommer att göra följande steg för att ställa in din app upp till användning (den exakta beställningen kan variera beroende på utvecklarens anpassningar):

  1. Ett installationsprogram kan innehålla andra arkiv, som ovan nämnda MSI eller format som CAB. Som ett första steg kommer installationsprogrammet att extrahera dessa till en tillfällig plats.
  2. Därefter kommer det att kontrollera att alla beroenden som har ställts är tillgängliga. Om något saknas kommer det att ladda ner det om möjligt, eller lämna installationsprogrammet med ett fel om inte.
  3. Om några beroenden är nödvändiga kommer de att installeras först med hjälp av vilken installatör som helst som helst (någonsin har en installation avbrutits för. NET Framework? Microsoft. NET Framework: Varför behöver du det och hur man installerar det på Windows Microsoft. NET Framework: Varför Du behöver det och hur du installerar det på Windows Du behöver antingen installera eller uppdatera det. Men vet du vad .NET Framework är? Vi visar dig varför du behöver det och hur du kan få den senaste versionen. Läs mer).
  4. Därefter börjar installatören kopiera appens filer och placera dem på rätt plats.
  5. Om utvecklaren konfigurerar några genvägar kommer installationsprogrammet att skapa och peka dem på den faktiska installationsvägen (kom ihåg, det kan du ändra på hur man skapar Windows-genvägar på skrivbordet på ett enkelt sätt. Hur man skapar Windows-genvägar på skrivbordet. Enkel väg Smart smarta genvägar kan spara dig sinnlös siktning genom menyer och mappar. Vi visar dig snabba och enkla sätt att skapa dem. Läs mer när installationsprogrammet körs).
  6. Ändringar i Windows-registret 3 Verktyg för att övervaka och undersöka Windows-registret 3 Verktyg för att övervaka och undersöka Windows-registret Windows-registret är en av de mest dåligt förstådda delarna av Windows-operativsystemet. Vi visar dig verktyg som kan förenkla registret och hjälpa dig att identifiera problem. Läs mer, om någon, kommer att utföras.
  7. Slutligen kan installationsprogrammet uppmana användaren att ange information som namn eller webbadress.

Denna process kan verka komplex jämfört med nästa operativsystem på listan. Låt oss ta en titt på att installera programvara på macOS.

Apple MacOS

Windows installatörer har mycket på gång under huven. Men om du har använt en Mac vet du att det är lika enkelt att installera en applikation som att ladda ner en kopia av appen, öppna diskbilden (DMG) och följa några enkla instruktioner. Så här installerar och tar du bort Mac-programvara: 5 enkla metoder Så här installerar du och tar bort Mac-programvara: 5 enkla metoder Växla till en Mac och ta hand om det grundläggande? Undrar hur man installerar programvara från kommandoraden? Har du gamla Windows-appar som du helt enkelt måste köra på din Apple-dator? Läs mer . Ibland ger nedladdningen även en "Dra här!" -ikonen.

Låt oss dyka in i APP-paketet och dess motpart till PKG-installationsprogrammet.

macOS paketstruktur

APP-filen på ytan är faktiskt enklare än Windows av två huvudskäl. För det första är det en standardmapp. Den enda skillnaden är att den slutar med ett ".APP" suffix. Om du laddar ner en av dessa på Windows, så kommer du att se att den visas precis som vilken annan filmapp som helst i Utforskaren. För det andra kräver APP-filer att allting som programmet kräver är inkluderat. Det finns ingen oro för att missa beroenden med dessa typer av installatörer.

Dessa buntar måste innehålla tre saker i en mapp som heter "Innehåll": 1) En "Info.plist" -fil som innehåller applikationsmetadata som namn, språk, versionsnummer etc. 2) en "MacOS" -katalog som innehåller huvudkörningen; och 3) en "Resources" -katalog som innehåller tillgångar som programmet behöver fungera (t.ex. en applikationsikon). Det finns andra valfria mappar som "Ramar" (buntar med funktionalitet som inte är specifika för appen), "Plug-Ins" (funktion för appen som inte krävs för att köra den) och "SharedSupport" (externa data som mallar).

mac app mappar

Däremot är PKG-formatet en kombination av en Windows-liknande installatör med en Unix-liknande struktur 3 UNIX-liknande operativsystem som inte är Linux 3 UNIX-liknande operativsystem som inte är Linux Nyligen började folk förvirra " UNIX "med" Linux ". Linux påverkades av UNIX, men UNIX-system har ingen relation till Linux. Här är några viktiga UNIX-baserade system som är värda att veta om. Läs mer . 7-Zip-programmet öppnar också en PKG-fil, som komprimeras i xar- format. Inom finns en eller flera Payload- filer, vilket också är ett arkiv. För att extrahera innehållet använder du följande kommandokedja ( cpio är ett arkivformat samt ett program för att manipulera dem) i en Mac eller Linux-terminal:

cat Payload | gunzip -dc | cpio -i 

När du väl har gjort det ser du ett känt Unix-liknande katalogträd.

I exemplet nedan har jag använt dokumentkonverterare, Pandoc. Den innehåller en binär in / usr / local / bin och lite dokumentation i / usr / local / share / man . Hur kommer dessa saker faktiskt på plats? Vi tar en titt på hur var och en av dessa faktiskt installeras på din Mac.

mac pkg struktur

Jag har använt Windows-versionen av 7-Zip för att illustrera detta, i stället för kommandoraden endast Linux-versionen.

macOS APP installationsprocess

När du släpper den APP-filen till mappen Program, förändras det inte så mycket. Kom ihåg att allt som behövs för att köra programmet är fristående. Den enda skillnaden från en standard drag-and-drop är att filen "Info.plist" registreras i systemet.

mac app kopia

Det här konfigurerar saker som vilken körbar som heter när du startar appen, vilken ikon som visas, filtyper den stöder och mer. Men annars är din app (till exempel APP-paketet för Atom Editor) nedan redo att användas.

Mac-app installerad

macOS PKG installationsprocess

Öppna en PKG-fil, å andra sidan, lanserar en "wizard-style" installatör. För enkla program är det vanligtvis en komponentinstallatör, som vanligen går igenom följande steg:

  1. Kör förinstallationsskriptet .
  2. Packa in "Lastbelastnings" -innehållet till maskinen.
  3. Kör postinstallationsskriptet .

mac pkg installera

Utvecklare kan sedan kombinera flera komponenter till en enda produktarkivinstallation . Detta lägger till alternativ som att visa en EULA för att användaren ska acceptera, samla in information från användaren och välja komponenter som ska installeras. Under tiden tar Apple Installer hand om alla detaljer om att installera nödvändiga komponenter en-i-ett i bakgrunden.

När vi talar om Unix-baserade installatörer går vi vidare till de två ledande Linux-paketformaten i nästa avsnitt.

Ubuntu och Fedora Linux

Ah, DEB kontra RPM Så här installerar du programvara på Linux: Förpackningsformat Förklarade Så här installerar du programvara på Linux: Förpackningsformat Förklarade Du har bytt till Linux och vill installera någon programvara. Men paketförvaltare skiljer sig åt beroende på distro. Så vilka appar kan du ladda ner och installera? Det finns allt i akronymerna. Läs mer . En av de stora flamma krigarna, bested endast av gillar vi vs emacs eller KDE kontra GNOME. Ändå är dessa format mer likartade än de är olika. Låt oss ta en titt.

Linux-paketfilstrukturen

För att titta på insidan av en DEB-fil kan du prova en GUI-arkivhanterare. Annars använder du ar- kommandot. Följande kommando skrivs in i terminalen 40 + Mest använda Linux-terminalkommandon 40 + Mest använda Linux-terminalkommandon Oavsett om du bara är igång eller helt nyfiken på Linux-terminalen, här är de vanligaste kommandon som kommer att bära dig hela tiden på Linux. Läs mer kommer att extrahera innehållet i ett Debian-paket:

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

Tre filer kommer ut av detta:

  • control.tar.gz - Detta innehåller i sin tur en huvudfil, Control, som innehåller metadata om paketet, till exempel det officiella namnet, versionen och beroendet. Det kan också innehålla andra filer som skript som ska köras under installationsprocessen eller standardkonfigureringsfiler.
  • data.tar.gz - Filerna som utgör själva programmet är i detta TAR.GZ-arkiv. Allt, inklusive binärer, dokumentation och standardkonfigurer finns här. I exemplet paketet kde-service-meny-encfs_0.5.2_all.deb innehåller det filer och kataloger som visas i bilden nedan.
  • debian-binär - Det här är en fil som definierar vilken version av Debian-paketformatet som filen använder. För moderna distributioner kommer detta bara att innehålla "2.0" på en enda rad.

deb huvudkontroll

I Fedora kan du använda kommandona rpm2cpio och cpio för att extrahera ett RPM-paket och bläddra i deras filer:

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

För paketet kde-cli-tools-5.9.4-2.fc26.x86_64.rpm ser du ett filträd som liknar DEB-paketet. Men det ger inte metadata, åtminstone inte i binärpaketet . Du måste ladda ner källa RPM (. SRC.RPM) som motsvarar din binära version, använd sedan samma kommando ovan på den filen. Innehållet i det blir en SPEC-fil som innehåller många av samma föremål som kontrollfilen i ett Debian-paket.

Nu när vi har en förståelse för strukturen i Linux-paket, låt oss undersöka vad som händer när du installerar dem. Så här installerar du programvara på Linux: Förpackningsformat Förklarade Så här installerar du programvara på Linux: Förpackningsformat Förklarade Du har bytt till Linux och vill installera lite programvara. Men paketförvaltare skiljer sig åt beroende på distro. Så vilka appar kan du ladda ner och installera? Det finns allt i akronymerna. Läs mer .

Linux-paketinstallation

När du installerar paket av något format, oavsett frontend, sker en liknande uppsättning steg:

  1. Paketet undersöker paketets innehåll för att avgöra om det saknas beroenden. Beroende på verktyget kommer det att varna dig eller ställa in för att ladda ner dem.
  2. Om paketen innehåller förinstallationsskript eller kommandon kör de därefter.
  3. Sedan paketerar paketpaketet faktiskt paketets filer.
  4. Med filerna på plats körs efterinstallationsskript.
  5. Slutligen är paketet registrerat med den interna databasen med dess metadata, så det kan avinstalleras senare.

Att veta hur programvara installeras är en bra sak

Eftersom utvecklare av operativsystem och programvaran som körs på dem gör ett bra jobb att göra programinstallationen lätt, behöver du inte riktigt uppmärksamma detaljerna. Men med viss kunskap om det som händer bakom kulisserna kommer du att få lite ro i det som installeras på ditt system, samt att hjälpa till med felsökning.

Hur många av de ovanstående mjukvaruinstallationsmetoderna har du gjort? Föredrar du DEB eller RPM? Eller utgör Macs APP-buntar toppen av användarvänlighet? Har någonsin haft en mardröminstallation hänt? Låt oss veta i kommentarerna nedan!

In this article