Annons
Moderna operativsystem ger dig enkla metoder för att installera nya applikationer. Dessa inkluderar automatiserade installationspaket samt kommandon som installerar många programbitar på en gång. Men vad händer egentligen när du kör det installationsprogrammet eller utfärdar det kommandot?
Låt oss ta en titt på hur programvaran installeras på tre stora skrivbordsplattformar: Windows, macOS och Linux.
Metoder för installation av programvara
Det finns några olika sätt att få nya applikationer att köra på din dator. I ordningsföljd av ökande komplexitet inkluderar dessa:
- Programvarukompilering — Bygga programmet från dess källkod. Endast för de mest tekniska användarna.
- Programvaruarkiv — Packa upp arkiv som ZIP-filer och köra programmet var du än har extraherat det. Detta kan kräva lite extra justeringar.
- Installationspaket — Hitta en installationsfil och (dubbel)klicka för att starta installationen.
- Programvaruansvariga/butiker — Välj appen från ett snyggt gränssnitt och klicka på en stor "Installera"-knapp. Det är magiskt!
I den här artikeln kommer vi att undersöka installationspaketen, eftersom de flesta mjukvaruhanterare/butiker i slutändan hanterar dessa typer av paket bakom kulisserna ändå. För dagens huvudsakliga skrivbordsplattformar – Windows, macOS och Linux – ska vi titta på vad som utgör ett av dessa paket och vad som händer när du installerar dem.
Microsoft Windows
Installationspaketen som du sannolikt kommer att stöta på för Windows finns i en av två huvudvarianter. Körbara filer (EXE) kan konfigurera ditt program genom att göra det tunga arbetet med att placera filer på rätt plats och utföra Windows-registeruppdateringar. Windows Installer-paket (MSI) lägger till detta genom att tillhandahålla standardiserade tjänster som avinstallationer.
Du kan inspektera innehållet i EXE eller MSI genom att öppna arkivet med 7-Zip 7Zip: Ett gratis program för att packa upp ovanliga arkivformat Läs mer . Om du använder den för att titta på 7-Zips egna EXE-installationsprogram, hittar du ett antal olika filer inom:

Även om dessa filer inte har någon mapp i installationsprogrammet, kommer utvecklaren att ha pekat var och en på en målkatalog. De flesta av dem hamnar på "standardinstallationsplatsen" - samma förslag som du vanligtvis 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. Till exempel kan de ange vilka versioner av Windows det ska installeras på, ställa in genvägar skapas i startmenyn och/eller på skrivbordet, eller samla in användarinformation som namn, adress, etc. Exempel på InstallShield-projektet i bilden nedan visar skärmen för att ställa in om Windows-registernycklar ska skapas eller uppdateras.

Med InstallShield lindas appfilerna och andra anpassningar in i en setup.exe fil. Att öppna det med 7-Zip kommer att visa att inuti finns ett MSI-paket som, när det körs, ser ut precis som installationen vi alla är vana vid. Låt oss se över vad som händer under den här processen.

Windows installationsprocess
En installatör kommer att vidta följande steg för att ställa in din app för användning (den exakta ordningen kan variera beroende på utvecklarens anpassningar):
- Ett installationsprogram kan innehålla andra arkiv, som ovannämnda MSI eller format som CAB. Som ett första steg kommer installationsprogrammet att extrahera dessa till en tillfällig plats.
- Därefter kommer den att kontrollera att alla beroenden som har ställts in är tillgängliga. Om något saknas kommer det att ladda ner det om möjligt, eller avsluta installationsprogrammet med ett fel om inte.
- Om några beroenden krävs, kommer de att installeras först med hjälp av vilket installationsprogram de kommer med (någonsin haft en installation avbruten för .NET Framework? Microsoft .NET Framework: Varför du behöver det och hur du installerar det på WindowsDu måste antingen installera eller uppdatera den. 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 ).
- Därefter kommer installationsprogrammet att börja kopiera appens filer och placera dem på rätt plats.
- Om utvecklaren har konfigurerat några genvägar kommer installationsprogrammet att skapa och peka dem till den faktiska installationssökvägen (kom ihåg, du kan ändra detta Hur man skapar Windows skrivbordsgenvägar på ett enkelt sättSmarta skrivbordsgenvägar kan rädda dig tanklös sållning genom menyer och mappar. Vi visar dig snabba och enkla sätt att skapa dem. Läs mer när installationsprogrammet körs).
- Ändringar i Windows-registret 3 verktyg för att övervaka och undersöka Windows-registretWindows-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.
- 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 ofta är lika enkelt att installera ett program som att ladda ner en kopia av appen, öppna diskavbildningen (DMG) och efter några enkla uppmaningar Hur man installerar och tar bort Mac-programvara: 5 enkla metoderBytt till Mac och ta tag i grunderna? Undrar du 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 dig till och med ett "Dra hit!" ikon.
Låt oss dyka in i APP-paketet såväl som dess motsvarighet, 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 suffixet ".APP". Om du laddar ner en av dessa på Windows ser du att den visas precis som vilken annan filmapp som helst i Utforskaren. För det andra kräver APP-filer att absolut allt som programmet kräver ingår. Det finns ingen oro för att missa beroenden med dessa typer av installatörer.
Dessa paket 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 den huvudsakliga körbara filen; och 3) en "Resurs"-katalog som innehåller tillgångar som programmet behöver för att fungera (t.ex. en programikon). Det finns andra valfria mappar som "Frameworks" (paket med funktioner som inte är specifika för appen), "Plug-Ins" (funktionalitet för appen som inte krävs för att köra den) och "SharedSupport" (extra data som t.ex. mallar).

Däremot är PKG-formatet en kombination av ett Windows-liknande installationsprogram med en Unix-liknande struktur 3 UNIX-liknande operativsystem som inte är LinuxNyligen började folk blanda ihop "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 känna till. Läs mer . 7-Zip-applikationen öppnar också en PKG-fil, som är komprimerad xar formatera. Inom finns en eller flera Nyttolast filer, som också är ett arkiv. För att extrahera dess innehåll använd följande kommandokedja (cpio är ett arkivformat såväl som ett program för att manipulera dem) i en Mac- eller Linux-terminal:
katt nyttolast | gunzip -dc | cpio -i
När du är klar ser du ett välbekant 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 på plats egentligen? Vi ska ta en titt på hur var och en av dessa faktiskt installeras på din Mac.

Jag har använt Windows-versionen av 7-Zip för att illustrera detta, snarare än Linux-versionen endast på kommandoraden.
macOS APP installationsprocess
När du släpper den APP-filen i din Applications-mapp förändras den 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 vanlig dra-och-släpp är att filen "Info.plist" registreras i systemet.

Detta kommer att konfigurera saker som vilken körbar fil som anropas när du startar appen, vilken ikon som visas, filtyper den stöder och mer. Men annars är din app (som APP-paketet för Atom Editor som visas nedan) nu redo att användas.

macOS PKG installationsprocess
Att öppna en PKG-fil, å andra sidan, startar ett installationsprogram i "trollkarlsstil". För enkla program är detta vanligtvis en komponentinstallatör, som vanligtvis går igenom följande steg:
- Springa det förinstallera manus.
- Packa upp "nyttolasten"-innehållet till maskinen.
- Springa det efterinstallation manus.

Utvecklare kan sedan kombinera flera komponenter till en enda produktarkiv Installera. Detta lägger till alternativ som att visa ett EULA som användaren kan acceptera, samla in information från användaren och välja komponenter som ska installeras. Under tiden tar Apple Installer hand om alla detaljer för att installera de nödvändiga komponenterna en efter en i bakgrunden.
På tal 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 Hur man installerar programvara på Linux: Paketformat förklarasDu har bytt till Linux och vill installera programvara. Men pakethanterare skiljer sig beroende på din distro. Så vilka appar kan du ladda ner och installera? Allt står i förkortningarna. Läs mer . Ett av de stora eldkrigen, som bara överträffades av sådana som vi mot emacs eller KDE mot GNOME. Ändå är dessa format mer lika än de är olika. Låt oss ta en titt.
Linux-paketfilstruktur
För att ta en titt på insidan av en DEB-fil kan du prova en GUI-arkivhanterare. Annars, använd ar kommando. Följande kommando matas in i terminalen 40+ mest använda Linux-terminalkommandonOavsett om du precis har börjat eller bara är nyfiken på Linux-terminalen, här är de vanligaste kommandona som tar dig genom hela din tid på Linux. Läs mer kommer att extrahera innehållet i ett Debianpaket:
ar -x namn-på-ditt-paket.deb
Tre filer kommer ut ur detta:
- control.tar.gz — Denna innehåller i sin tur en primär fil, Kontrollera, som innehåller metadata om paketet, till exempel dess officiella namn, version och beroenden. Den kan också innehålla andra filer såsom skript som ska köras under installationsprocessen eller standardkonfigurationsfiler.
- data.tar.gz — Filerna som utgör själva applikationen finns i detta TAR.GZ-arkiv. Allt, inklusive binärer, dokumentation och standardinställningar finns här. I exempelpaketet kde-service-menu-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 Debianpaketformatet som filen använder. För moderna distributioner kommer detta bara att innehålla "2.0" på en enda rad.

I Fedora kan du använda rpm2cpio och cpio kommandon för att extrahera ett RPM-paket och bläddra i deras filer:
rpm2cpio namn-på-ditt-paket.rpm | cpio -idvm
För paketet kde-cli-tools-5.9.4-2.fc26.x86_64.rpm kommer du att se ett filträd som liknar DEB-paketet. Men det ger inte metadata, åtminstone inte i de binär paket. Du måste ladda ner käll-RPM (.SRC.RPM) som motsvarar din binära version och använd sedan samma kommando ovan på den filen. Inkluderat i det kommer en SPEC-fil som innehåller många av samma objekt som Kontrollera fil i ett Debian-paket.
Nu när vi har en förståelse för strukturen för Linux-paket, låt oss utforska vad som händer när du faktiskt installerar dem Hur man installerar programvara på Linux: Paketformat förklarasDu har bytt till Linux och vill installera programvara. Men pakethanterare skiljer sig beroende på din distro. Så vilka appar kan du ladda ner och installera? Allt står i förkortningarna. Läs mer .
Linux-paketinstallation
När du installerar paket av något av formaten, oavsett gränssnitt, händer en liknande uppsättning steg:
- Paketsystemet undersöker paketets innehåll för att avgöra om det saknas beroenden. Beroende på verktyget kommer det antingen att varna dig eller ställa in att ladda ner dem.
- Om paketen innehåller förinstallerade skript eller kommandon körs de härnäst.
- Sedan extraherar paketsystemet faktiskt paketets filer.
- Med filerna på plats körs skript efter installationen.
- Slutligen registreras paketet med den interna databasen med hjälp av dess metadata, så det kan avinstalleras senare.
Att veta hur programvaran installeras är en bra sak
Eftersom utvecklare av operativsystem och programvaran som körs på dem gör ett bra jobb med att göra installationen av programvaran enkel, behöver du inte vara uppmärksam på detaljerna. Men att ha lite kunskap om det som händer bakom kulisserna kommer att ge dig lite sinnesfrid om vad som installeras på ditt system, samt hjälpa till med felsökning.
Hur många av ovanstående programvaruinstallationsmetoder har du gjort? Föredrar du DEB eller RPM? Eller representerar Macs APP-paket höjdpunkten av användarvänlighet? Har en mardrömsinstallation någonsin hänt? Låt oss veta i kommentarerna nedan!
Aaron har varit armbågsdjup i tekniken som affärsanalytiker och projektledare i femton år och har varit en lojal Ubuntu-användare nästan lika länge (sedan Breezy Badger). Hans intressen inkluderar öppen källkod, småföretagsapplikationer, integration av Linux och Android och datoranvändning i vanlig textläge.