Како инсталирати Цомпосер на Убунту: Водич за безболну инсталацију

Tokom razvoja softvera, bez obzira da li je reč o jednostavnom ili kompleksnom projektu, gotovo je neminovno da će softver zavisiti od spoljnih biblioteka, modula ili komponenti kako bi pravilno funkcionisao. Ovi spoljni resursi, neophodni za ispravan rad softvera, poznati su kao zavisnosti.

Efikasno upravljanje zavisnostima ključni je proces u svakom projektu. Srećom, postoje različiti alati koji su dizajnirani da automatizuju upravljanje zavisnostima i olakšaju rad programerima. Izbor alata za upravljanje zavisnostima zavisiće od programskog jezika i ekosistema u kojem radite.

Ako razvijate projekte koristeći PHP, Composer je alat koji vam je potreban za upravljanje zavisnostima.

Šta je Composer?

Composer je popularan alat koji je razvijen posebno za upravljanje zavisnostima u PHP-u. Inspirisan npm-om za Node.js i Bundler-om za Ruby, Composer vam omogućava da definišete spoljne biblioteke od kojih zavisi vaš PHP projekat, a zatim se stara o njima umesto vas.

To znači da će Composer instalirati sve neophodne zavisnosti za vaš projekat, kao i vršiti njihovo ažuriranje.

Važno je napomenuti da Composer nije menadžer paketa poput Apt-a ili Yum-a. Iako se bavi bibliotekama, one se podrazumevano ne instaliraju globalno na vašoj mašini. Umesto toga, Composer upravlja zavisnostima na nivou projekta, instalirajući ih lokalno u direktorijum unutar PHP projekta koji razvijate.

Composer vam takođe omogućava da precizno odredite koje verzije paketa mogu i treba da budu instalirane u vašem projektu, a zatim ih i instalira. Takođe nudi jedinstvenu komandu za ažuriranje svih zavisnosti u vašem projektu.

Composer je neophodan alat kada razvijate projekte koristeći PHP. Omogućava efikasno upravljanje zavisnostima i koristi repozitorijum Packagist koji nudi veliki izbor PHP paketa i biblioteka koje možete dodati svojim PHP projektima kao zavisnosti.

Pravilno upravljanje zavisnostima pomoću alata poput Composer-a omogućava modularni razvoj softvera, besprekornu kontrolu verzija i poboljšanu saradnju među timovima. Osim toga, pomaže u izbegavanju problema sa kompatibilnošću softvera i olakšava održavanje projekata.

Sada ćemo pogledati kako instalirati Composer na Ubuntu. Prvo, da vidimo koji su preduslovi koje treba da ispunite pre instalacije.

Preduslovi za instaliranje Composer-a na Ubuntu

Da biste instalirali Composer na Ubuntu, morate ispuniti sledeće uslove:

1. Pobrinite se da imate pristup terminalu na vašoj mašini i da možete izvršavati komande kao root korisnik.

2. Na vašoj mašini treba da bude instalirana PHP verzija 7.2.5 ili novija. Možete proveriti da li imate instaliran PHP i koja je njegova verzija otvaranjem terminala i izvršavanjem sledeće komande:

php -version

Ako imate instaliran PHP, trebali biste dobiti sličan izlaz:

Ukoliko PHP nije instaliran, izvršite sledeću komandu da ga instalirate:

sudo apt install php

3. Potreban vam je sistem za kontrolu verzija. Git je odličan izbor za ovo. Proverite da li imate instaliran Git pokretanjem sledeće komande:

git --version

Ako je Git instaliran, dobićete broj verzije sličan ovome:

Ukoliko Git nije instaliran, pokrenite sledeću komandu da ga instalirate:

sudo apt install git

4. Na vašoj mašini mora biti instaliran menadžer arhiva za dekompresiju datoteka. Tar je dovoljan za ovu svrhu. Proverite da li je tar instaliran pokretanjem:

tar --version

Ukoliko nemate tar, možete ga instalirati pomoću sledeće komande:

sudo apt-get install tar

Kada ispunite navedene preduslove, spremni ste za instalaciju Composer-a.

Kako instalirati Composer na Ubuntu

Composer možete instalirati globalno na vašoj mašini ili lokalno, u okviru određene PHP instalacije. Globalna instalacija omogućava pristup i pozivanje Composer-a iz bilo kog direktorijuma na vašoj mašini, za razliku od lokalne instalacije.

Globalna instalacija je preporučeni način za instaliranje Composer-a i to ćemo i uraditi.

Instalacija Composer-a na Ubuntu preko terminala uključuje izvršavanje skripti sa stranice za preuzimanje Composer-a.

Pratite sledeće korake da biste instalirali Composer globalno na Ubuntu:

1. Otvorite terminal i izvršite sledeću komandu da biste preuzeli Composer instalacioni program u trenutni direktorijum.

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

2. Izvršite sledeću komandu da biste verifikovali SHA-384 instalacioni program.

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 instalacionog programa je kriptografska hash vrednost koja se koristi za proveru integriteta instalacionog programa za Composer. Drugim rečima, to je sigurnosna mera koja osigurava da instalacioni program koji ste preuzeli nije izmenjen ili oštećen.

Pokretanje gornje komande trebalo bi da generiše izlaz koji potvrđuje da je instalacioni program verifikovan. Nastavite kada dobijete takav izlaz koji potvrđuje integritet vašeg instalacionog programa.

3. Izvršite sledeću komandu da biste pokrenuli instalacioni program:

php composer-setup.php

Trebali biste dobiti izlaz koji potvrđuje da je Composer uspešno instaliran.

Obratite pažnju na `composer.phar`, što je izvršna datoteka za Composer, dodata u direktorijum u kojem ste je instalirali.

4. Pošto je Composer uspešno instaliran, pokrenite sledeću komandu da biste uklonili instalacioni program koji ste prethodno preuzeli jer vam više nije potreban.

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

5. Da biste bili sigurni da je Composer instaliran globalno i da ga možete pozvati iz bilo kog direktorijuma, potrebno je da premestite `composer.phar` datoteku u direktorijum koji je deo vašeg PATH-a. Da biste to uradili, izvršite sledeću komandu i unesite lozinku kada se to od vas zatraži.

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

6. Proverite da li je Composer uspešno instaliran izvršavanjem sledeće komande:

composer

Ako je Composer uspešno instaliran, trebalo bi da dobijete sličan izlaz.

Kako koristiti Composer

Kada je Composer instaliran, sledeći korak je da ga koristite za upravljanje zavisnostima. Kao što je ranije pomenuto, Composer koristi repozitorijum Packagist koji sadrži pakete koji se mogu instalirati kao zavisnosti pomoću Composer-a.

Da bismo videli kako se koristi Composer, instaliraćemo paket pod nazivom http-message, koji predstavlja interfejs za opisivanje HTTP poruka.

Da biste koristili Composer za instaliranje http-message:

1. Kreirajte novi folder pod nazivom `composerDemo` i pređite u njega izvršavanjem sledećih komandi u terminalu:

mkdir composerDemo
cd composerDemo

2. Kreirajte `.gitignore` datoteku u tom direktorijumu izvršavanjem:

touch .gitignore

Ova datoteka vam omogućava da definišete koje datoteke Git ne treba da prati.

3. Generišite `composer.json` datoteku za vaš projekat izvršavanjem:

composer init

`composer.json` je centralna konfiguraciona datoteka koju koristi Composer. U njoj navodite metapodatke koji opisuju vaš projekat i takođe definišete zavisnosti koje koristi vaš projekat, kako bi Composer mogao automatski da upravlja njima umesto vas.

Gornja komanda će prikazati sledeći izlaz:

Vodič će vas provesti kroz proces kreiranja `composer.json` datoteke. Kod prvog odziva, pritisnite Enter da prihvatite predloženo ime projekta.

4. U sledećem odzivu, navedite kratak opis projekta i pritisnite Enter. Možete kopirati kratak opis dat ispod i pritisnuti Enter.

A demonstration of how to use PHP Composer

5. Sledeći upit traži autora. Pritisnite Enter da koristite podrazumevanog.

6. Zatim će se od vas tražiti da navedete minimalnu stabilnost. Za ovo možete ostaviti prazno polje pritiskom na Enter da pređete na sledeći upit.

7. Sledeći upit traži da navedete tip paketa. Za ovo unesite `project` i pritisnite Enter kao što je prikazano ispod:

8. U odzivu koji traži licencu, pritisnite Enter da ostavite prazno i pređete na sledeći upit.

9. Zatim će se od vas tražiti da li želite da navedete svoje zavisnosti. Za ovo, pritisnite Enter da izaberete `Da`. Ovo će od vas tražiti da potražite paket.

10. U upitu za pretragu paketa unesite `http-message` i pritisnite Enter. Ovo će potražiti navedeni paket i vratiti rezultate pretrage kao što je prikazano u nastavku:

Paket koji nas zanima je prvi paket pod imenom `psr/http-message`. Da biste ga izabrali, unesite broj koji je vezan za njega i pritisnite Enter. Dakle, unesite `0` (nula) i pritisnite Enter.

11. Sledeći upit je da unesete ograničenje verzije koju zahtevate (ili ostavite prazno da biste koristili najnoviju verziju). Za ovo treba da navedemo verziju koju želimo da koristimo ili da ostavimo prazno polje da koristimo najnoviju verziju.

Da biste proverili najnoviju verziju paketa, posetite njegovu stranicu na Packagist-u. Najnovija verzija je verzija 2.0, kao što je prikazano ispod:

Composer automatski ažurira pakete kada postanu dostupna ažuriranja. Međutim, ne želite da se ažurira na verziju koja nije kompatibilna sa verzijom koju trenutno koristite u svom projektu, jer će to oštetiti vaš PHP kod. Da biste ovo izbegli, unesite sledeće da navedete verziju paketa i pritisnite Enter:

^2.0

Ovo govori Composer-u da instalira verziju 2.0 ili noviju, sve dok je ta novija verzija kompatibilna unazad.

12. Zatim ćete biti upitani da potražite drugi paket; jednostavno pritisnite Enter da pređete na sledeći upit i ne tražite drugi paket.

13. Kada se od vas traži da definišete svoje zavisnosti od programera, pritisnite Enter. U upitu za pretragu paketa, pritisnite Enter da ga preskočite, jer će naše dev zavisnosti biti iste kao i naše uživo zavisnosti.

14. Sledeći upit će od vas tražiti da dodate PSR-4 mapiranje automatskog učitavanja. Pritisnite Enter da ga preskočite.

15. Ovo će vam dati pregled `composer.json` datoteke koju ste upravo generisali, kao što je prikazano ispod:

Pritisnite Enter da potvrdite generisanje.

16. Sledeći upit vas pita da li želite da instalirate zavisnosti koje ste naveli. Za ovo pritisnite Enter da biste ih instalirali, kao što je prikazano ispod:

17. U terminalu unesite sledeću komandu da otvorite projekat koji ste upravo kreirali u uređivaču koda:

code .

Rezultat je prikazan ispod:

Primetićete da je generisana `composer.json` datoteka i da su naše zavisnosti navedene pod ključem `require`. Instalirane zavisnosti se nalaze u direktorijumu koji se zove `vendor`.

18. Da biste izbegli praćenje direktorijuma `vendor`, koji sadrži sve zavisnosti, otvorite `.gitignore` datoteku i unesite sledeći red:

/vendor/

Preporučuje se da ne pratite ovu datoteku jer može postati veoma velika, a zavisnosti se lako mogu automatski instalirati iz `composer.json` datoteke.

19. Nakon kreiranja `composer.json` datoteke, možete lako dodati nove zavisnosti izmenom potrebnog odeljka u datoteci `composer.json`. Na primer, da biste dodali paket koji se zove `log`, dodajte ga u `require` odeljak kao što je prikazano ispod:

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

20. Da biste instalirali tu novu zavisnost u svoj projekat, vratite se u terminal i izvršite:

composer update

Rezultat je prikazan ispod:

Ovo će instalirati paket koji ste upravo dodali u `composer.json` datoteku.

Sada ste spremni da započnete rad na svojim PHP projektima i koristite Composer za upravljanje zavisnostima u svom projektu.

Kako optimizovati Composer za bolje upravljanje paketima

Da bi Composer radio efikasnije, uvek precizno navedite ograničenja verzija za zavisnosti. Primer za to je bio kada smo koristili „^2.0“.

Izbegavajte široka ograničenja verzije kao što je „*“, što znači da Composer može da instalira bilo koju verziju. Ovo može dovesti do problema sa kompatibilnošću i stabilnošću vašeg projekta jer ne možete predvideti koju verziju će Composer instalirati.

Pored toga, izbegavajte dodavanje prevelikih prilagođenih skripti u `composer.json` datoteku. Dodajte samo neophodne skripte. Previše skripti često dovodi do ogromnih troškova prilikom upravljanja zavisnostima.

Da biste optimizovali brzinu Composer-a, omogućite PHP cURL ekstenziju. Takođe možete koristiti dodatke za Composer kao što je hirak/prestissimo, koji paralelizuju Composer operacije, što zauzvrat ubrzava instalaciju paketa.

Takođe možete očistiti Composer-ov keš da biste uklonili stare i nekorišćene pakete kako biste optimizovali njegove performanse. Pored toga, ne zaboravite da ne pratite i ne dodajete direktorijum `vendor` u koji Composer instalira pakete. Ovo će pomoći u ubrzavanju kloniranja i ažuriranja repozitorijuma vaših projekata.

Kako deinstalirati Composer

Ako više ne želite da koristite Composer na Ubuntu-u, možete ga deinstalirati izvršavanjem sledeće komande:

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

Možete potvrditi da je Composer uspešno deinstaliran izvršavanjem sledeće komande:

composer

Ako je potpuno deinstaliran, trebali biste dobiti sličan izlaz:

Zaključak

Upravljanje zavisnostima je ključan proces prilikom razvoja projekata. Efikasno upravljanje zavisnostima osigurava da izbegnete probleme sa kompatibilnošću u svojim projektima i da imate lakše održive projekte.

Pored toga, omogućava modularni razvoj softvera i poboljšanu saradnju među timovima programera. Ako razvijate projekte u PHP-u, razmislite o korišćenju Composer-a za efikasno i lako upravljanje zavisnostima u svom projektu.

Zatim možete pročitati šta je Ubuntu PPA i kako ga instalirati.