Moderne besturingssystemen bieden u eenvoudige methoden voor het instellen van nieuwe toepassingen. Dit zijn onder meer geautomatiseerde installatiepakketten en opdrachten waarmee veel bits tegelijk kunnen worden geïnstalleerd. Maar wat gebeurt er eigenlijk wanneer u dat installatieprogramma uitvoert of dat commando uitvoert?
Laten we eens kijken hoe software wordt geïnstalleerd op drie grote desktopplatformen: 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 deze:
- Software-compilatie - De applicatie bouwen vanuit de broncode. Alleen voor de meest technische gebruikers.
- Softwarearchieven - Archieven uitpakken zoals ZIP-bestanden en het programma uitvoeren, waar u het ook uitgepakt hebt. Dit kan wat extra aanpassingen vereisen.
- Installatiepakketten - Een installatiebestand zoeken en (dubbel) klikken om de installatie te starten.
- Software Managers / Stores - Selecteer de app vanuit een mooie interface en klik op een grote knop "Installeren". Het is magie!
In dit artikel zullen we de installatiepakketten bekijken, aangezien de meeste softwaremanagers / -winkels uiteindelijk toch met dit soort pakketten achter de schermen werken. Voor de belangrijkste desktopplatforms van vandaag - Windows, macOS en Linux - zullen we kijken naar wat een van deze pakketten vormt, en wat er gebeurt wanneer u ze installeert.
Microsoft Windows
De installatiepakketten die u waarschijnlijk tegen zult komen voor Windows, hebben een van de twee hoofdaroma's. Uitvoerbare bestanden (EXE) kunnen uw programma instellen door het zwaar op te heffen 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 zoals het verwijderen van bestanden te bieden.
U kunt de inhoud van EXE's of MSI's inspecteren door het archief te openen met 7-Zip 7Zip: een gratis programma om ongewone archiefindelingen te unzippen 7Zip: een gratis programma om ongebruikelijke archiefformaten te unzippen Meer lezen. Als je het gebruikt om naar het eigen EXE-installatieprogramma van 7-Zip te kijken, vind je een aantal verschillende bestanden in:
Hoewel deze bestanden geen map bevatten binnen het installatieprogramma, heeft de ontwikkelaar elke map in een doelmap gericht. De meeste van hen komen terecht in de "standaard installatielocatie" - dezelfde suggestie die u normaal gesproken ziet voor een map als "C: \ Program Files \ [programmanaam]" of "C: \ Program Files (x86) \ [uw nieuwe app ].”
Wanneer een geavanceerd hulpmiddel zoals InstallShield wordt gebruikt om installatiepakketten te maken, kunnen app-ontwikkelaars de installatie aanpassen. Ze kunnen bijvoorbeeld aangeven op welke Windows-versies het zal worden geïnstalleerd, snelkoppelingen instellen die moeten worden gemaakt in het Startmenu en / of op het bureaublad of gebruikersinformatie verzamelen, zoals naam, adres, enzovoort. Het voorbeeld van het InstallShield-project in de onderstaande afbeelding toont het scherm voor het instellen of Windows-registersleutels moeten worden gemaakt of bijgewerkt.
Met InstallShield worden de app-bestanden en andere aanpassingen ingepakt in een setup.exe- bestand. Openen met 7-Zip zal aantonen dat inside een MSI-pakket is dat, wanneer het wordt uitgevoerd, net lijkt op de installatie die we allemaal gewend zijn. Laten we eens kijken wat er gebeurt tijdens dit proces.
Windows installatieproces
Een installateur neemt de volgende stappen om uw app in te stellen voor gebruik (de exacte volgorde hiervan kan variëren, afhankelijk van de aanpassingen van de ontwikkelaar):
- Een installatieprogramma kan andere archieven bevatten, zoals de bovengenoemde MSI of indelingen zoals CAB. Als eerste stap haalt het installatieprogramma deze naar een tijdelijke locatie.
- Vervolgens wordt gecontroleerd of afhankelijkheden die zijn ingesteld beschikbaar zijn. Als er iets ontbreekt, wordt het indien mogelijk gedownload of verlaat u het installatieprogramma met een foutmelding als dit niet het geval is.
- Als er afhankelijkheden zijn vereist, worden deze eerst geïnstalleerd met welk installatieprogramma ze ook gebruiken (ooit werd een installatie onderbroken voor .NET Framework? Microsoft .NET Framework: waarom u het nodig hebt en hoe u het kunt installeren op Windows Microsoft .NET Framework: Waarom U hebt het nodig en hoe u het op Windows moet installeren U moet het installeren of bijwerken, maar weet u wat het .NET Framework is? We laten u zien waarom u het nodig hebt en hoe u de nieuwste versie kunt krijgen.
- Vervolgens begint het installatieprogramma de bestanden van de app te kopiëren en op de juiste locatie te plaatsen.
- Als de ontwikkelaar eventuele snelkoppelingen heeft geconfigureerd, zal het installatieprogramma ze maken en naar het daadwerkelijke installatiepad verwijzen (onthoud dat u dit kunt wijzigen.) Hoe maak ik snel Windows Desktop-snelkoppelingen Hoe maak ik bureaublad-snelkoppelingen voor Windows De snelkoppelingen op Easy Way Smart-bureaublad kunnen u redden onzinnig door menu's en mappen bladeren, we tonen u snelle en eenvoudige manieren om ze te maken. Meer informatie wanneer het installatieprogramma wordt uitgevoerd).
- Wijzigingen aan het Windows-register 3 Tools voor het bewaken en onderzoeken van het Windows-register 3 Hulpmiddelen voor het bewaken en onderzoeken van het Windows-register Het Windows-register is een van de slechtst 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. Meer informatie, indien aanwezig, wordt uitgevoerd.
- Ten slotte kan het installatieprogramma de gebruiker vragen om informatie in te voeren, zoals naam of website-adres.
Dit proces lijkt ingewikkeld in vergelijking met het volgende besturingssysteem in 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 u een Mac hebt gebruikt, weet u dat het installeren van een toepassing vaak net zo eenvoudig is als het downloaden van een kopie van de app, het openen van de schijfimage (DMG) en het volgen van enkele eenvoudige aanwijzingen. Mac-software installeren en verwijderen: 5 eenvoudige methoden Hoe Mac-software installeren en verwijderen: 5 eenvoudige methoden Schakelen naar een Mac en grip krijgen op de basis? Vraagt u zich af hoe u software vanaf de opdrachtregel kunt installeren? Heb je oude Windows-apps die je gewoon op je Apple-computer moet uitvoeren? Lees verder . Soms biedt de download zelfs een pictogram 'Sleep hier!'.
Laten we duiken 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 een ".APP" achtervoegsel. Als u een van deze in Windows downloadt, ziet u dat deze wordt weergegeven zoals elke andere bestandsmap in Verkenner. Ten tweede eisen APP-bestanden dat absoluut alles wat het programma nodig heeft is inbegrepen. Er zijn geen zorgen over ontbrekende afhankelijkheden met dit soort installatieprogramma's.
Deze bundels moeten drie dingen bevatten in een map met de naam "Inhoud": 1) een "Info.plist" -bestand dat metagegevens van applicaties bevat, zoals naam, taal, versienummer, enz .; 2) een "MacOS" -directory die het hoofd-uitvoerbare bestand bevat; en 3) een map "Bronnen" die items bevat die de applicatie nodig heeft om te functioneren (bijvoorbeeld een toepassingspictogram). Er zijn andere optionele mappen zoals "Frameworks" (bundels van functionaliteit die niet specifiek zijn voor de app), "Plug-ins" (functionaliteit voor de app die niet vereist is om het uit te voeren) en "SharedSupport" (externe gegevens zoals templates).
Daarentegen is het PKG-formaat een combinatie van een Windows-achtig installatieprogramma met een Unix-achtige structuur 3 UNIX-achtige besturingssystemen die geen Linux zijn 3 UNIX-achtige besturingssystemen die geen Linux zijn Onlangs begonnen mensen te verwarren " UNIX "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 te weten. Lees verder . De 7-Zip-toepassing opent ook een PKG-bestand, dat is gecomprimeerd in xar- indeling. Binnen is een of meer Payload- bestanden, die ook een archief is. Gebruik de volgende reeks opdrachten ( cpio is een archiefindeling en een programma voor het manipuleren ervan) in een Mac- of Linux-terminal om de inhoud te extraheren:
cat Payload | gunzip -dc | cpio -i
Als je klaar bent, zie je een bekende Unix-achtige mappenboom.
In het onderstaande voorbeeld heb ik de documentconverter Pandoc gebruikt. Het bevat een binary in / usr / local / bin en wat documentatie in / usr / local / share / man . Hoe komen deze dingen eigenlijk op hun plek? We zullen bekijken hoe deze daadwerkelijk op uw Mac worden geïnstalleerd.
Ik heb de Windows-versie van 7-Zip gebruikt om dit te illustreren, in plaats van alleen de Linux-versie met opdrachtregel.
macOS APP Installatieproces
Wanneer je dat APP-bestand in je map Toepassingen laat vallen, verandert het niet echt zo veel. Onthoud dat alles wat nodig is om het programma uit te voeren, op zichzelf staat. Het enige verschil met een standaard slepen-en-neerzetten is dat het bestand "Info.plist" wordt geregistreerd bij het systeem.
Hiermee configureer je dingen zoals welk uitvoerbaar bestand wordt opgeroepen wanneer je de app start, welk pictogram wordt weergegeven, bestandstypen die het ondersteunt en meer. Maar verder is uw app (zoals het APP-pakket voor de Atom-editor hieronder) nu klaar voor gebruik.
macOS PKG installatieproces
Het openen van een PKG-bestand, aan de andere kant, start een "wizard-achtig" installatieprogramma. Voor eenvoudige programma's is dit meestal een componentinstaller, die meestal de volgende stappen doorloopt:
- Voer het preinstall script uit.
- Pak de inhoud van de "Payload" uit naar de machine.
- Voer het Postinstall- script uit.
Ontwikkelaars kunnen dan meerdere componenten combineren tot een enkele installatie van een productarchief . Dit voegt opties toe zoals het weergeven van een EULA voor de gebruiker om te accepteren, het verzamelen van informatie van de gebruiker en het selecteren van de componenten die moeten worden geïnstalleerd. Ondertussen zorgt de Apple Installer voor alle details van het één voor één installeren van de benodigde componenten op de achtergrond.
Spreken van Unix-gebaseerde installatieprogramma's, zullen we gaan naar de twee toonaangevende Linux-pakketformaten in de volgende sectie.
Ubuntu en Fedora Linux
Ah, DEB versus RPM Hoe software op Linux te installeren: Formatteren van pakketten uitgelegd Hoe software op Linux te installeren: Uitgelegde pakketformaten U bent overgeschakeld naar Linux en wilt wat software installeren. Maar pakketbeheerders verschillen afhankelijk van uw distro. Welke apps kun je downloaden en installeren? Het staat allemaal in de afkortingen. Lees verder . Een van de grote vlammenoorlogen, alleen geprezen door mensen als vi versus emacs of KDE versus GNOME. Toch lijken deze formaten meer op elkaar dan dat ze verschillen. Laten we kijken.
Linux pakket bestandsstructuur
Als u de binnenkant van een DEB-bestand wilt bekijken, kunt u een GUI-archiefbeheerder proberen. Gebruik anders de opdracht ar . Het volgende commando ingevoerd in de terminal 40+ Meest gebruikte Linux Terminal-opdrachten 40+ Meest gebruikte Linux-terminalcommando's Of je nu net begint of gewoon nieuwsgierig bent naar de Linux-terminal, hier zijn de meest voorkomende commando's die je door je hele tijd heen voeren op Linux. Read More haalt de inhoud van een Debian-pakket uit:
ar -x name-of-your-package.deb
Hieruit zullen drie bestanden komen:
- control.tar.gz - Deze bevat op zijn beurt een primair bestand, Control, dat metadata over het pakket bevat, zoals de officiële naam, versie en afhankelijkheden. Het kan ook andere bestanden bevatten, zoals scripts die moeten worden uitgevoerd tijdens het installatieproces 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 standaardconfiguren zijn hier aanwezig. In het voorbeeldpakket kde-service-menu-encfs_0.5.2_all.deb bevat het bestanden en mappen zoals in de onderstaande afbeelding.
- debian-binary - Dit is een bestand dat definieert welke versie van het Debian-pakket het bestand gebruikt. Voor moderne distributies bevat dit alleen "2.0" op één regel.
In Fedora kun je de rpm2cpio- en cpio- commando's gebruiken om een RPM-pakket uit te pakken en door hun bestanden te bladeren:
rpm2cpio name-of-your-package.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 de metadata niet op, althans niet in het binaire pakket. U moet de bron-RPM (.SRC.RPM) downloaden die overeenkomt met uw binaire versie en vervolgens dezelfde opdracht hierboven gebruiken in dat bestand. Daarin inbegrepen zal een SPEC-bestand zijn dat veel van dezelfde items bevat als het Control- bestand in een Debian-pakket.
Nu we een goed begrip hebben van de structuur van Linux-pakketten, laten we eens kijken wat er gebeurt als je ze daadwerkelijk installeert. Hoe software te installeren op Linux: pakketindelingen uitgelegd Hoe software te installeren op Linux: pakketindelingen verklaard Je bent overgeschakeld naar Linux en wil wat software installeren. Maar pakketbeheerders verschillen afhankelijk van uw distro. Welke apps kun je downloaden en installeren? Het staat allemaal in de afkortingen. Lees verder .
Linux pakket installatie
Wanneer u pakketten van beide indelingen installeert, ongeacht de front-end, gebeurt een vergelijkbare reeks stappen:
- Het pakketsysteem onderzoekt de inhoud van het pakket om te bepalen of er ontbrekende afhankelijkheden zijn. Afhankelijk van het hulpmiddel, waarschuwt het u of stelt het in om het te downloaden.
- Als de pakketten vooraf geïnstalleerde scripts of opdrachten bevatten, worden deze vervolgens uitgevoerd.
- Vervolgens extraheert het pakketsysteem de bestanden van het pakket.
- Als de bestanden aanwezig zijn, worden scripts na installatie geïnstalleerd.
- Ten slotte wordt het pakket geregistreerd in de interne database met behulp van de metadata, zodat het later kan worden verwijderd.
Weten hoe software is geïnstalleerd, is een goede zaak
Omdat ontwikkelaars van besturingssystemen en de software die erop draait prima software-installatie gemakkelijk kunnen maken, hoeft u niet echt op de details te letten. Als u echter weet dat dit achter de schermen gebeurt, kunt u zich geruststellen wat er op uw systeem wordt geïnstalleerd, en helpen met het oplossen van problemen.
Hoeveel van de bovenstaande software-installatiemethoden heb je gedaan? Geef je de voorkeur aan DEB of RPM? Of vertegenwoordigen Mac's APP-bundels het summum van gebruiksgemak? Heeft er ooit een nachtmerrie installatie plaatsgevonden? Laat het ons weten in de comments hieronder!