Installer Composer på Ubuntu: Enkelt og smertefritt!

Når man utvikler programvare, enten det er et lite eller et stort prosjekt, er det nesten uunngåelig at programvaren vil trenge eksterne biblioteker, moduler eller komponenter for å fungere optimalt. Disse eksterne ressursene som er nødvendige for at programvaren skal fungere som den skal, omtales som avhengigheter.

God håndtering av avhengigheter er en sentral prosess i ethvert utviklingsprosjekt. Heldigvis finnes det flere verktøy som er laget for å automatisere denne prosessen og forenkle den for utviklere. Valg av verktøy for avhengighetsadministrasjon vil ofte avhenge av programmeringsspråket og det tilhørende økosystemet du jobber innenfor.

Dersom du utvikler prosjekter med PHP, er Composer et utmerket valg for å håndtere avhengigheter i prosjektene dine.

Hva er Composer?

Composer er et populært verktøy som er spesifikt utviklet for å administrere avhengigheter i PHP-prosjekter. Inspirert av npm i Node.js og Bundler i Ruby, lar Composer deg deklarere hvilke eksterne biblioteker PHP-prosjektet ditt er avhengig av, og deretter håndterer det disse avhengighetene for deg.

Dette betyr at Composer ikke bare installerer alle avhengighetene prosjektet ditt trenger, men også holder dem oppdatert.

Det er viktig å merke seg at Composer ikke er en pakkebehandler som Apt eller Yum. Selv om den håndterer biblioteker, installeres disse som standard ikke globalt på datamaskinen. I stedet håndterer Composer avhengigheter per prosjekt, og installerer dem lokalt i en katalog inne i det aktuelle PHP-prosjektet.

Composer lar deg også identifisere hvilke versjoner av pakkene som kan og må installeres i prosjektet ditt, og den installerer dem. Den tilbyr også en enkel kommando for å oppdatere alle prosjektets avhengigheter.

Composer er et uvurderlig verktøy for PHP-utviklere. Det legger til rette for effektiv avhengighetsadministrasjon og gir tilgang til et depot, Packagist, med et stort utvalg av PHP-pakker og -biblioteker som du kan bruke som avhengigheter i dine egne prosjekter.

God avhengighetsadministrasjon med verktøy som Composer gir grunnlag for modulær programvareutvikling, smidig versjonskontroll og bedre samarbeid i team. Det hjelper også med å unngå kompatibilitetsproblemer og gjør prosjekter mer vedlikeholdbare.

La oss nå se på hvordan du installerer Composer i Ubuntu. Men først, la oss gå gjennom forutsetningene som må være på plass.

Forutsetninger for å installere Composer i Ubuntu

Før du kan installere Composer i Ubuntu, trenger du følgende:

1. Tilgang til terminalen på datamaskinen din og rettigheter til å kjøre kommandoer som root-bruker.

2. PHP versjon 7.2.5 eller nyere installert. Du kan sjekke installert PHP-versjon ved å åpne terminalen og kjøre følgende kommando:

php -version

Dersom PHP er installert, vil du se en utskrift som ligner:

Hvis PHP ikke er installert, kjør følgende kommando for å installere det:

sudo apt install php

3. Et versjonskontrollsystem. Git er et populært valg. Bekreft at Git er installert ved å kjøre:

git --version

Dersom Git er installert, vil du se et versjonsnummer som dette:

Dersom Git ikke er installert, kjør følgende kommando for å installere det:

sudo apt install git

4. Et arkivbehandlingsverktøy for å dekomprimere filer. Tar er et godt valg. Sjekk om tar er installert ved å kjøre:

tar --version

Dersom du ikke har tar, kan du installere det ved å kjøre:

sudo apt-get install tar

Når disse forutsetningene er oppfylt, er du klar til å installere Composer.

Slik installerer du Composer på Ubuntu

Composer kan installeres globalt på datamaskinen eller lokalt i et spesifikt PHP-prosjekt. En global installasjon gir deg tilgang til Composer fra hvilken som helst katalog, mens en lokal installasjon begrenser tilgangen til det spesifikke prosjektet.

Det anbefales å installere Composer globalt, og det er denne metoden vi vil bruke.

Installasjon av Composer i Ubuntu via terminalen innebærer å kjøre skript som er tilgjengelig på Composers nedlastningsside.

Følg disse trinnene for å installere Composer globalt på Ubuntu:

1. Åpne terminalen og kjør følgende kommando for å laste ned Composers installasjonsprogram til gjeldende katalog.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

2. Kjør følgende kommando for å bekrefte installasjonsprogrammets SHA-384-hash.

php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

SHA-384-hashen er en kryptografisk verdi som brukes for å sikre integriteten til Composer-installasjonsprogrammet. Dette er et sikkerhetstiltak for å garantere at det nedlastede installasjonsprogrammet ikke har blitt endret eller korrumpert.

Ved å kjøre kommandoen ovenfor, skal du få utskriften «Installer verified». Fortsett prosessen når du ser en slik utskrift som bekrefter at installasjonsprogrammet er autentisk.

3. Kjør følgende kommando for å starte installasjonsprogrammet

php composer-setup.php

Du bør se en utskrift som bekrefter at Composer er installert.

Legg merke til at composer.phar, som er den kjørbare filen for Composer, er plassert i katalogen der du installerte den.

4. Når Composer er installert, kan du fjerne installasjonsprogrammet som du lastet ned tidligere, siden det ikke lenger er nødvendig.

php -r "unlink('composer-setup.php');"

5. For å sikre at Composer er installert globalt, og at du kan bruke det fra alle kataloger, må du flytte composer.phar til en katalog som er inkludert i PATH. Kjør følgende kommando og oppgi passordet når du blir bedt om det:

sudo mv composer.phar /usr/local/bin/composer

6. Bekreft at Composer er installert ved å kjøre følgende kommando:

composer

Dersom installasjonen er vellykket, vil du se en utskrift som denne:

Hvordan bruke Composer

Nå som Composer er installert, er neste steg å bruke det for å håndtere avhengigheter. Som nevnt tidligere, har Composer et depot som heter Packagist som inneholder en rekke pakker som kan installeres med Composer.

For å illustrere bruken av Composer, skal vi installere pakken http-message, som definerer et grensesnitt for HTTP-meldinger.

Slik bruker du Composer til å installere http-message:

1. Opprett en ny mappe som heter composerDemo og naviger inn i denne mappen med følgende kommandoer:

mkdir composerDemo
cd composerDemo

2. Opprett en .gitignore-fil i mappen ved å kjøre:

touch .gitignore

Denne filen lar deg definere hvilke filer som ikke skal spores av Git.

3. Generer en composer.json-fil for prosjektet ditt ved å kjøre:

composer init

En composer.json-fil er en sentral konfigurasjonsfil for Composer. Her spesifiserer du metadata om prosjektet ditt og avhengighetene som prosjektet benytter seg av, slik at Composer automatisk kan håndtere dem for deg.

Kommandoen ovenfor vil generere en output som denne:

Veiviseren hjelper deg med å opprette en composer.json-fil. Ved første ledetekst, trykk Enter for å godta foreslått prosjektnavn.

4. Gi en kort beskrivelse av prosjektet i neste ledetekst, og trykk Enter. Du kan lime inn følgende beskrivelse:

A demonstration of how to use PHP Composer

5. Ved neste ledetekst som ber om forfatter, trykk Enter for å bruke standardverdien.

6. Deretter blir du bedt om å spesifisere minimum stabilitet. Her kan du la det stå tomt ved å trykke Enter.

7. Ved neste ledetekst skal du spesifisere pakke-typen. Her skriver du inn «project» og trykker Enter:

8. Ved ledeteksten som ber om lisens, trykker du Enter for å la den stå tom.

9. Du vil deretter bli spurt om du ønsker å spesifisere avhengigheter. Her velger du Ja ved å trykke Enter. Dette vil generere en søkemelding.

10. I søkefeltet skriver du inn http-melding og trykker Enter. Dette vil søke etter pakken og returnere resultater som dette:

Pakken vi ønsker er den første, psr/http-message. For å velge den, skriver du inn nummeret som er knyttet til den, og trykker Enter. I dette tilfellet skriver du 0 (null) og trykker Enter.

11. Neste spørsmål er å spesifisere versjonsbegrensning (eller la det stå tomt for å bruke siste versjon). Her må vi spesifisere versjonen vi vil bruke, eller la det stå tomt for å bruke siste tilgjengelige versjon.

For å sjekke siste versjon av pakken, kan du besøke siden på Packagist. Siste versjon er 2.0, som vist her:

Composer oppdaterer automatisk pakker når oppdateringer er tilgjengelige. Du vil imidlertid ikke at den skal oppdatere til en versjon som ikke er bakoverkompatibel med den versjonen du bruker i prosjektet, da dette kan ødelegge PHP-koden. For å unngå dette, skriver du inn følgende for å spesifisere versjonen og trykker Enter:

^2.0

Dette forteller Composer å installere versjon 2.0 eller høyere, så lenge den er bakoverkompatibel.

12. Du vil da bli bedt om å søke etter en annen pakke. Trykk Enter for å gå videre uten å søke etter en pakke til.

13. Når du blir bedt om å definere utviklingsavhengigheter, trykker du Enter. I meldingen for pakkesøk, trykker du Enter for å hoppe over det, da våre utvikleravhengigheter vil være de samme som produksjonsavhengighetene.

14. Neste melding vil spørre om du ønsker å legge til PSR-4 autoload mapping. Trykk Enter for å hoppe over det.

15. Du vil nå se en forhåndsvisning av composer.json filen, slik som dette:

Trykk Enter for å bekrefte genereringen.

16. Neste melding spør om du ønsker å installere de spesifiserte avhengighetene. Trykk Enter for å installere dem:

17. For å åpne prosjektet i en kodeeditor, skriver du følgende i terminalen:

code .

Resultatet ser du her:

Legg merke til at composer.json-filen er generert, og at avhengighetene er listet opp under «require». De installerte avhengighetene er plassert i en mappe som heter «vendor».

18. For å unngå å spore vendor-mappen, som inneholder alle avhengighetene, åpner du .gitignore-filen og legger inn følgende linje:

/vendor/

Det anbefales å ikke spore denne mappen, da den kan bli stor, og avhengigheter kan enkelt installeres fra composer.json-filen.

19. Når du har en composer.json-fil, kan du enkelt legge til nye avhengigheter ved å redigere «require»-delen i filen. For å legge til for eksempel en pakke som heter «log», legger du den til i «require»-delen slik:

"require": {
        "psr/http-message": "^2.0",
        "psr/log": "^3.0.0"
    },

20. For å installere den nye avhengigheten i prosjektet, går du tilbake til terminalen og kjører:

composer update

Resultatet er som følger:

Dette installerer pakken du nettopp la til i composer.json-filen.

Nå er du klar til å jobbe med dine PHP-prosjekter og bruke Composer til å administrere avhengigheter i prosjektene dine.

Hvordan optimalisere Composer for bedre pakkehåndtering

For at Composer skal jobbe mest effektivt, er det viktig å spesifisere versjonsbegrensninger for avhengigheter på en presis måte. Vi demonstrerte dette tidligere med «^2.0».

Unngå for brede versjonsbegrensninger som «*», som betyr at Composer kan installere hvilken som helst versjon. Dette kan føre til kompatibilitets- og stabilitetsproblemer i prosjektet, da du ikke kan forutse hvilken versjon Composer vil installere.

Unngå også å legge til overflødige tilpassede skript i composer.json-filen. Legg kun til skript som er nødvendige. For mange skript kan føre til unødvendig overhead under avhengighetsbehandling.

For å optimalisere hastigheten til Composer, aktiver PHP curl extension. Du kan også bruke Composer-plugins som hirak/prestissimo, som parallelliserer Composer-operasjoner, og dermed øker hastigheten på pakkeinstallasjon.

Du kan også tømme Composers cache for å fjerne gamle og ubrukte pakker og optimalisere ytelsen. Husk også å ikke spore eller committe vendor-mappen, da dette kan bremse ned kloning og oppdatering av prosjekter.

Slik avinstallerer du Composer

Hvis du ikke lenger ønsker å bruke Composer på Ubuntu, kan du avinstallere det ved å kjøre følgende kommando:

sudo rm -rf /usr/local/bin/composer

Du kan bekrefte at avinstalleringen er gjennomført ved å kjøre følgende kommando:

composer

Hvis den er avinstallert, skal du se en utskrift som dette:

Konklusjon

Avhengighetsadministrasjon er en viktig del av utviklingsprosessen. Effektiv avhengighetsadministrasjon sikrer at man unngår kompatibilitetsproblemer og resulterer i mer vedlikeholdbare prosjekter.

Det muliggjør også modulær utvikling og forbedrer samarbeid i team. Hvis du utvikler prosjekter i PHP, bør du vurdere å bruke Composer for å enkelt og effektivt håndtere avhengigheter i dine prosjekter.

Du kan også undersøke hva Ubuntu PPA er og hvordan du installerer det.