Advertentie

Moderne besturingssystemen bieden u eenvoudige methoden om nieuwe toepassingen in te stellen. Deze omvatten geautomatiseerde installatiepakketten en opdrachten die veel stukjes software tegelijk installeren. Maar wat gebeurt er eigenlijk als u dat installatieprogramma uitvoert of die opdracht geeft?

Laten we eens kijken hoe software wordt geïnstalleerd op drie grote desktopplatforms: Windows, macOS en Linux.

Methoden voor software-installatie

Er zijn een paar verschillende manieren waarop u nieuwe toepassingen op uw computer kunt laten draaien. In volgorde van toenemende complexiteit zijn dit:

  • Software-compilatie — De applicatie bouwen op basis van de broncode. Alleen voor de meest technische gebruikers.
  • Software-archieven — Uitpakken van archieven zoals ZIP-bestanden en het uitvoeren van het programma waar u het ook hebt uitgepakt. Dit kan wat extra aanpassingen vergen.
  • Installatiepakketten — Een installatiebestand zoeken en (dubbel)klikken om de installatie te starten.
  • Softwaremanagers/winkels
    instagram viewer
    - De app selecteren vanuit een mooie interface en op een grote knop "Installeren" klikken. Het is magie!

In dit artikel zullen we de installatiepakketten onderzoeken, aangezien de meeste softwaremanagers/winkels dit soort pakketten uiteindelijk toch achter de schermen behandelen. Voor de belangrijkste desktopplatforms van vandaag - Windows, macOS en Linux - zullen we kijken naar waaruit een van deze pakketten bestaat en wat er gebeurt wanneer u ze installeert.

Microsoft Windows

De installatiepakketten die u waarschijnlijk voor Windows zult tegenkomen, zijn er in een van de twee hoofdsmaken. Uitvoerbare bestanden (EXE) kunnen uw programma instellen door het zware werk te doen van het plaatsen van bestanden op de juiste locatie en het uitvoeren van Windows-registerupdates. Windows Installer-pakketten (MSI) voegen hieraan toe door gestandaardiseerde services te bieden, zoals verwijderingen.

U kunt de inhoud van EXE's of MSI's inspecteren door: het archief openen met 7-Zip 7Zip: een gratis programma om ongewone archiefformaten uit te pakken Lees verder . Als u het gebruikt om naar het eigen EXE-installatieprogramma van 7-Zip te kijken, vindt u een aantal verschillende bestanden in:

anatomie softwarepakket 7zip inhoud

Hoewel deze bestanden geen bevattende map in het installatieprogramma hebben, zal de ontwikkelaar ze allemaal naar een doelmap hebben verwezen. De meeste komen terecht op de "standaardinstallatielocatie" - dezelfde suggestie die u doorgaans ziet voor een map als "C:\Program Files\[programmanaam]" of "C:\Program Files (x86)\[uw nieuwe app ].”

Bij gebruik van een geavanceerde tool zoals InstallShield om installatiepakketten te maken, kunnen app-ontwikkelaars de installatie aanpassen. Ze kunnen bijvoorbeeld aangeven op welke versies van Windows het wordt geïnstalleerd, snelkoppelingen instellen aangemaakt in het Startmenu en/of op het bureaublad, of verzamel gebruikersinformatie zoals naam, adres, enzovoort. Het voorbeeld van een InstallShield-project in de onderstaande afbeelding toont het scherm om in te stellen of Windows-registersleutels moeten worden gemaakt of bijgewerkt.

anatomie softwarepakket installshield register

Met InstallShield worden de app-bestanden en andere aanpassingen verpakt in een setup.exe het dossier. Als je het opent met 7-Zip, zie je dat er een MSI-pakket in zit dat, wanneer het wordt uitgevoerd, er precies zo uitziet als de installatie die we allemaal gewend zijn. Laten we eens kijken wat er tijdens dit proces gebeurt.

anatomie softwarepakket installshield installeren

Windows-installatieproces

Een installatieprogramma onderneemt de volgende stappen om uw app in te stellen voor gebruik (de precieze volgorde kan variëren afhankelijk van de aanpassingen van de ontwikkelaar):

  1. Een installatieprogramma kan andere archieven bevatten, zoals de eerder genoemde MSI of formaten zoals CAB. Als eerste stap zal het installatieprogramma deze uitpakken naar een tijdelijke locatie.
  2. Vervolgens zal het controleren of eventuele afhankelijkheden die zijn ingesteld beschikbaar zijn. Als er iets ontbreekt, wordt het indien mogelijk gedownload of wordt het installatieprogramma afgesloten met een foutmelding als dat niet het geval is.
  3. Als er afhankelijkheden nodig zijn, worden deze eerst geïnstalleerd met het installatieprogramma waarmee ze worden geleverd (ooit een installatie onderbroken voor .NET Framework? Microsoft .NET Framework: waarom u het nodig heeft en hoe u het op Windows installeertU moet het ofwel installeren of bijwerken. Maar weet u wat het .NET Framework is? We laten u zien waarom u het nodig heeft en hoe u de nieuwste versie kunt krijgen. Lees verder ).
  4. Vervolgens begint het installatieprogramma de bestanden van de app te kopiëren en op de juiste locatie te plaatsen.
  5. Als de ontwikkelaar snelkoppelingen heeft geconfigureerd, zal het installatieprogramma deze maken en verwijzen naar het daadwerkelijke installatiepad (onthoud, je kunt dit veranderen Hoe u Windows Desktop-snelkoppelingen op de gemakkelijke manier kunt makenSlimme snelkoppelingen op het bureaublad kunnen u hersenloos bladeren door menu's en mappen besparen. We laten u snelle en gemakkelijke manieren zien om ze te maken. Lees verder wanneer het installatieprogramma wordt uitgevoerd).
  6. Wijzigingen in het Windows-register 3 tools om het Windows-register te controleren en te onderzoekenHet Windows-register is een van de meest slecht begrepen onderdelen van het Windows-besturingssysteem. We laten u tools zien die het register kunnen vereenvoudigen en u kunnen helpen bij het identificeren van problemen. Lees verder , indien van toepassing, zal worden uitgevoerd.
  7. Ten slotte kan het installatieprogramma de gebruiker vragen om informatie zoals naam of websiteadres in te voeren.

Dit proces lijkt misschien ingewikkeld in vergelijking met het volgende besturingssysteem op de lijst. Laten we eens kijken naar het installeren van software op macOS.

Apple macOS

Windows-installatieprogramma's hebben veel te doen onder de motorkap. Maar als je een Mac hebt gebruikt, weet je dat het installeren van een applicatie vaak net zo eenvoudig is als het downloaden van een kopie van de app, het openen van de schijfkopie (DMG) en na enkele eenvoudige aanwijzingen Mac-software installeren en verwijderen: 5 eenvoudige methodenOvergestapt op een Mac en de basis onder de knie krijgen? Vraagt ​​u zich af hoe u software vanaf de opdrachtregel installeert? Heb je oude Windows-apps die je gewoon op je Apple-computer moet draaien? Lees verder . Soms geeft de download je zelfs een "Sleep hier!" icoon.

Laten we een duik nemen in de APP-bundel en zijn tegenhanger, het PKG-installatieprogramma.

macOS-pakketstructuur

Het APP-bestand aan de oppervlakte: is in feite eenvoudiger dan Windows om twee belangrijke redenen. Ten eerste is het een standaardmap. Het enige verschil is dat het eindigt met het achtervoegsel ".APP". Als u een van deze op Windows downloadt, ziet u dat deze wordt weergegeven zoals elke andere bestandsmap in Verkenner. Ten tweede vereisen APP-bestanden dat absoluut alles wat het programma nodig heeft, is inbegrepen. Met dit soort installatieprogramma's hoeft u zich geen zorgen te maken over ontbrekende afhankelijkheden.

Deze bundels moeten drie dingen bevatten in een map met de naam "Contents": 1) een "Info.plist"-bestand dat metadata van de applicatie bevat, zoals naam, taal, versienummer, enz.; 2) een "MacOS"-map die het belangrijkste uitvoerbare bestand bevat; en 3) een map "Resources" die de middelen bevat die de applicatie nodig heeft om te functioneren (bijv. een applicatiepictogram). Er zijn andere optionele mappen zoals "Frameworks" (bundels met functionaliteit die niet specifiek zijn voor de app), "Plug-Ins" (functionaliteit voor de app die niet vereist is om deze uit te voeren) en "SharedSupport" (externe gegevens zoals Sjablonen).

mac app-mappen

Het PKG-formaat daarentegen is een combinatie van een Windows-achtige installatieprogramma met een Unix-achtige structuur 3 UNIX-achtige besturingssystemen die geen Linux zijnOnlangs begonnen mensen "UNIX" te verwarren met "Linux". Linux werd beïnvloed door UNIX, maar UNIX-systemen hebben geen relatie met Linux. Hier zijn enkele belangrijke op UNIX gebaseerde systemen die het waard zijn om te weten. Lees verder . De 7-Zip-applicatie opent ook een PKG-bestand, dat is gecomprimeerd in xar formaat. Binnen is een of meer Laadvermogen bestanden, dat ook een archief is. Gebruik de volgende reeks opdrachten om de inhoud te extraheren (cpio is zowel een archiefformaat als een programma om ze te manipuleren) in een Mac- of Linux-terminal:

kat Lading | gunzip -dc | cpio -i

Als je klaar bent, zie je een bekende Unix-achtige directorystructuur.

In het onderstaande voorbeeld heb ik documentconverter gebruikt, Pandoc. Het bevat een binaire in /usr/local/bin en wat documentatie in /usr/local/share/man. Hoe komen deze dingen eigenlijk op hun plek? We zullen bekijken hoe elk van deze daadwerkelijk op uw Mac wordt geïnstalleerd.

mac pkg-structuur

Ik heb de Windows-versie van 7-Zip gebruikt om dit te illustreren, in plaats van de Linux-versie met alleen de opdrachtregel.

macOS APP-installatieproces

Wanneer u dat APP-bestand in uw map Toepassingen laat vallen, verandert er niet zo veel. Onthoud dat alles wat nodig is om het programma uit te voeren op zichzelf staat. Het enige verschil met een standaard drag-and-drop is dat het "Info.plist"-bestand wordt geregistreerd bij het systeem.

mac app kopiëren

Hiermee worden dingen geconfigureerd zoals welk uitvoerbaar bestand wordt aangeroepen wanneer u de app start, welk pictogram wordt weergegeven, bestandstypen die het ondersteunt en meer. Maar verder is je app (zoals het hieronder getoonde APP-pakket voor de Atom Editor) nu klaar voor gebruik.

mac-app geïnstalleerd

macOS PKG-installatieproces

Als u daarentegen een PKG-bestand opent, wordt een installatieprogramma in "wizard-stijl" gestart. Voor eenvoudige programma's is dit meestal een installatieprogramma voor componenten, die doorgaans de volgende stappen doorloopt:

  1. Voer de... uit pre-install script.
  2. Pak de inhoud van de "Payload" uit in de machine.
  3. Voer de... uit postinstall script.
mac pkg installeren

Ontwikkelaars kunnen vervolgens meerdere componenten combineren tot een enkele productarchief installeren. Dit voegt opties toe zoals het weergeven van een EULA die de gebruiker kan accepteren, het verzamelen van informatie van de gebruiker en het selecteren van de te installeren componenten. Ondertussen zorgt de Apple Installer voor alle details van het één voor één installeren van de benodigde componenten op de achtergrond.

Over op Unix gebaseerde installatieprogramma's gesproken, we gaan in de volgende sectie verder met de twee toonaangevende Linux-pakketindelingen.

Ubuntu en Fedora Linux

Ah, DEB versus RPM Software installeren op Linux: pakketindelingen uitgelegdU bent overgestapt op Linux en u wilt software installeren. Maar pakketbeheerders verschillen afhankelijk van uw distro. Dus welke apps kun je downloaden en installeren? Het staat allemaal in de afkortingen. Lees verder . Een van de grote vlammenoorlogen, alleen verslagen door mensen als vi versus emacs of KDE versus GNOME. Toch lijken deze formaten meer op elkaar dan dat ze verschillend zijn. Laten we kijken.

Bestandsstructuur van Linux-pakket

Om de binnenkant van een DEB-bestand te bekijken, kunt u een GUI-archiefmanager proberen. Gebruik anders de ar opdracht. De volgende opdracht ingevoerd in de terminal: 40+ meest gebruikte Linux-terminalopdrachtenOf je nu net begint of gewoon nieuwsgierig bent naar de Linux-terminal, hier zijn de meest voorkomende commando's die je de hele tijd op Linux zullen helpen. Lees verder zal de inhoud van een Debian-pakket extraheren:

ar -x naam-van-uw-pakket.deb

Hieruit komen drie bestanden:

  • control.tar.gz — Dit bevat op zijn beurt één primair bestand, Controle, die metadata over het pakket bevat, zoals de officiële naam, versie en afhankelijkheden. Het kan ook andere bestanden bevatten, zoals scripts die tijdens het installatieproces moeten worden uitgevoerd, of standaardconfiguratiebestanden.
  • data.tar.gz — De bestanden waaruit de applicatie zelf bestaat, bevinden zich in dit TAR.GZ-archief. Alles, inclusief binaire bestanden, documentatie en standaardconfiguraties, staat hier. In het voorbeeldpakket kde-service-menu-encfs_0.5.2_all.deb bevat het bestanden en mappen zoals getoond in de onderstaande afbeelding.
  • debian-binair — Dit is een bestand dat definieert welke versie van het Debian-pakketformaat het bestand gebruikt. Voor moderne distributies zal dit slechts "2.0" op een enkele regel bevatten.
deb hoofdbesturing

In Fedora kun je de rpm2cpio en cpio commando's om een ​​RPM-pakket uit te pakken en door hun bestanden te bladeren:

rpm2cpio naam-van-uw-pakket.rpm | cpio -idvm

Voor het pakket kde-cli-tools-5.9.4-2.fc26.x86_64.rpm ziet u een bestandsstructuur die lijkt op het DEB-pakket. Maar het levert niet de metadata, althans niet in de binair pakket. U moet de bron-RPM (.SRC.RPM) downloaden die overeenkomt met uw binaire versie en vervolgens dezelfde opdracht hierboven gebruiken voor dat bestand. Daarin wordt een SPEC-bestand opgenomen dat veel van dezelfde items bevat als de Controle bestand in een Debian-pakket.

Nu we de structuur van Linux-pakketten begrijpen, laten we ontdek wat er gebeurt als je ze daadwerkelijk installeert Software installeren op Linux: pakketindelingen uitgelegdU bent overgestapt op Linux en u wilt software installeren. Maar pakketbeheerders verschillen afhankelijk van uw distro. Dus welke apps kun je downloaden en installeren? Het staat allemaal in de afkortingen. Lees verder .

Installatie van Linux-pakket

Wanneer u pakketten van beide formaten installeert, ongeacht de front-end, gebeurt een gelijkaardige reeks stappen:

  1. Het pakketsysteem onderzoekt de inhoud van het pakket om te bepalen of er afhankelijkheden ontbreken. Afhankelijk van de tool, zal het u ofwel waarschuwen of instellen om ze te downloaden.
  2. Als de pakketten pre-install scripts of commando's bevatten, worden ze daarna uitgevoerd.
  3. Vervolgens extraheert het pakketsysteem de bestanden van het pakket.
  4. Met de bestanden op hun plaats, worden scripts na de installatie uitgevoerd.
  5. Ten slotte wordt het pakket geregistreerd bij de interne database met behulp van de metagegevens, zodat het later kan worden verwijderd.

Weten hoe software wordt geïnstalleerd, is een goede zaak

Omdat ontwikkelaars van besturingssystemen en de software die erop draait geweldig werk leveren om de software-installatie eenvoudig te maken, hoeft u niet echt op de details te letten. Maar als u enige kennis heeft van wat er achter de schermen gebeurt, krijgt u gemoedsrust over wat er op uw systeem wordt geïnstalleerd en helpt u bij het oplossen van problemen.

Hoeveel van de bovenstaande software-installatiemethoden heeft u uitgevoerd? Geeft u de voorkeur aan DEB of RPM? Of vertegenwoordigen Mac's APP-bundels het toppunt van gebruiksgemak? Ooit een nachtmerrie-installatie gehad? Laat het ons weten in de reacties hieronder!

Aaron zit al vijftien jaar diep in de technologie als bedrijfsanalist en projectmanager, en is bijna net zo lang een trouwe Ubuntu-gebruiker (sinds de Breezy Badger). Zijn interesses omvatten open source, toepassingen voor kleine bedrijven, integratie van Linux en Android en computergebruik in platte tekst.