Homebrew, macOS alatka za komandnu liniju za upravljanje softverom sa 32.5k+ GitHub zvezdica, funkcionalnost zaista moćna!
Uvod (nešto lenjivo)
Prvobitno sam planirao da potajno napišem članak o integraciji MongoDB-a u programskog mačku za korisnike sa planete, ali sam prilikom instalacije MongoDB-a preko brew-a naišao na grešku. Razlog je jednostavan - homebrew okruženje na ovom Mac-u u kompaniji nije bilo pravilno konfigurisano. Uplašno "Erge-n put do naprednog Java-a" nedostaje upravo takav sadržaj.

Tako sam smislio, zašto da ne iskoristim priliku da napišem jedan članak, a, ne ne, da prilikom upoznam prijatelje sa Homebrew-om! Pogledajte moju prokletu beskrupulentnu srcu (ručni pas pse).
Da li zaista još uvek neko koristi macOS bez instaliranog/konfigurisanog Homebrew-a?
Šta Homebrew može da uradi
Homebrew slogan: The missing package manager for macOS (or Linux)
Ova alatka za upravljanje softverom prko komandne linije već ima 32.5k+ zvezdica na GitHub-u, a funkcionalnost je zaista moćna - praktično pokriva sve pakete za macOS. Sam Homebrew nema problema, problem leži u....... neću to da kažem, razumeš ti.

Pored toga što je menadžer paketa za macOS, Homebrew se može instalirati i na Linux-u da bi postao menadžer paketa za Linux - potrebno je samo da izvršite odgovarajuću komandu da biste preuzeli i instalirali željeni softverski paket, što štedi na korake preuzimanja, raspakivanja i prevlačenja.
Rečima Homebrew-a, rezime je sledeći: instaliraj softver koji Apple (ili Linux sistem) nije instalirao a ti ti treba. Na primer, za instalaciju MongoDB-a potrebno je samo da izvršite sledeću komandu, uz uslov da je okruženje ispravno konfigurisano.
brew install mongodbJednom jednostavnom komandom možete ostvariti upravljanje paketima, a ne brine o zavisnostima/putanjama fajlova i tako dalje.
Homebrew se sastoji od četiri glavna dela: brew, homebrew-core, homebrew-cask, homebrew-bottles.
- brew: spremište izvornog kôda Homebrew-a
- homebrew-core: jezgro izvornog kôda Homebrew-a
- homebrew-cask: pruža instalaciju macOS aplikacija i velikih binarnih fajlova
- homebrew-bottles: prekompilirani binarni softverski paketi
Hajde da dalje upoznamo neke ključne koncepte Homebrew-a koji će često biti korišćeni.
- formula (e), opisni fajl instalacionog paketa, e označava množinu
- cellar, direktorijum gde se paket nalazi nakon instalacije
- bottle, unapred kompilirani paket koji ne zahteva preuzimanje izvornog kôda i kompilaciju, brži je, većina paketa u zvaničnoj biblioteci se instalira putem bottle-a
- tap, izvor preuzimanja
- cask (s), proširenje za instalaciju izvornih macOS aplikacija, može se shvatiti kao aplikacija sa grafičkim sučeljem, s označava množinu
- bundle, proširenje koje opisuje zavisnost Homebrew-a
Instalacija i konfiguracija Homebrew-a
Na svetu nema teških stvari, samo treba da pronađete prav način za instalaciju Homebrew-a.
U teoriji, instalacija Homebrew-a je veoma jednostavna - potrebno je samo da izvršite jednu zvaničnu komandu da biste završili instalaciju.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Međutim, programeri u Kini pate zbog toga što često ne mogu da instaliraju zbog mrežnih problema. Razlog mogu samo da kažem da je krivac sajt https://raw.githubusercontent.com, koji je nestabilan za pristup.
Šta da se radi?
Mora se promeniti na efikasan i naučan način instalacije, a to je korišćenje ogledala za instalaciju. Na Gitee-u, autori otvorenog koda pružaju paket za instalaciju jednim klikom - potrebno je samo da izvršite sledeću komandu.
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"Instalaciona skripta nudi izvore preuzimanja sa Univerziteta za nauku i tehnologiju Kine, Univerziteta Cinghua, Pekinškog univerziteta za stran jezike, Tencent-a, Alibaba Group i drugih.

Ali ajde da ti kažem iskusnom - ne biraj druge izvore ogledala, biraj USTC (Univerzitet za nauku i tehnologiju Kine), brzina je odlična, 40-50M/s - ova brzina je mnogo brža od drugih izvora ogledala, u poređenju s tim, ostali su poput puževa 🐌.

Ova instalaciona skripta je veoma inteligentna, praktično može da nam pomogne da rešimo sve probleme jednim klikom.

Još jednom hvala ovom ekspertu na Gitee-u, već ima 3k zvezdica - evo adrese:

Nakon što se brew instalira, bićete upozoreni da konfigurišete izvor ogledala u Kini.

nice, instalacija je završena. Izvršite sledeće komande da biste iskusio.

brew ls- pregledaj lokalne komande;brew search mongodb- pretraži softver;brew -v- proveri verziju;brew update- ažuriraj verziju;brew install --cask firefox- instaliraj softver sa grafičkim sučeljembrew config- pregledaj konfiguraciju.

Razlika između brew-a i brew cask-a
Ovde ću nakratko objasniti razliku između brew-a i brew cask-a, što je bila i tačka konfuzije kada sam počeo da koristim brew.
U prethodnim verzijama je bilo moguće direktno izvršiti brew cask list, ali sada je promenjeno u brew list --cask.

brew počinje od preuzimanja izvornog kôda, zatim kompilira (ne uvek - neki imaju spremne bottle-e), raspakuje i vrši instalaciju preko ./configure && make install, dok uključuje i relevantne zavisne biblioteke. Okruženjske promenljive se takođe automatski konfigurišu.

brew cask preuzima i raspakuje već kompilirane softverske pakete (.dmg/.pkg), smešta ih u uniformni direktorijum, što štedi na ručnim koracima preuzimanja, raspakivanja i prevlačenja.

Preko brew search google možemo videti i razliku između ova dva.

- "Formulae" su uglavnom alati komandne linije, razvojne biblioteke, fontovi, dodaci i drugi softver bez GUI sučelja.
- "Cask" uključuje softver sa GUI grafičkim sučeljem, kao što su Google Chrome, FireFox, Atom i tako dalje
Korišćenje Homebrew-a
Nakon što završite instalaciju i konfiguraciju Homebrew-a, hajde da praktično isprobamo.
Evo spiska često korišćenih homebrew komandi za referencu.
| Komanda | Opis |
|---|---|
| brew update | Ažuriraj Homebrew |
| brew search package | Pretraži softverske pakete |
| brew install package | Instaliraj softverski paket |
| brew uninstall package | Deinstaliraj softverski paket |
| brew upgrade | Ažuriraj sve softverske pakete |
| brew upgrade package | Ažuriraj navedeni softverski paket |
| brew list | Izlistaj spisak instaliranih softverskih paketa |
| brew services command package | Upravljaj softverskim paketima instaliranim preko brew-a |
| brew services list | Izlistaj servise koje upravlja brew |
| brew info package | Prikaži informacije o softverskom paketu |
| brew deps package | Izlistaj zavisnosti softverskog paketa |
| brew help | Prikaži pomoć |
| brew cleanup | Očisti zastarele softverske pakete |
| brew link package | Kreiraj simboličku vezu za softverski paket |
| brew unlink package | Ukloni simboličku vezu za softverski paket |
| brew doctor | Proveri da li sistem ima problema |
| brew tap [user/repo] | Dodaj spremište otvorenog koda u izvor |
Prva, korišćenje Homebrew-a za instalaciju JDK-a
Kao Java backend programer, JDK mora biti instaliran, zar ne?
Izvršite
brew search jdkda biste pronašli koji JDK-ovi su dostupni za instalacijuIzvršite
brew install openjdk@17da biste instalirali JDK.

- Međutim, nakon što instaliramo više verzija JDK-a na macOS-u, kako da ih upravljamo? Možemo instalirati jEnv, alat komandne linije koji nam pomaže da upravljamo JAVA_HOME, već ima 4.3k zvezdica na GitHub-u.
GitHub adresa: https://github.com/jenv/jenv

Zvanična dokumentacija je takođe vrlo jednostavna i elegantna:

Instalacija:
brew install jenvKonfiguracija:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrcDodavanje:
jenv add /usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/
Instalaciona putanja JDK-a može se pronaći na donjoj slici.

Upravljanje:
jenv versions
jenv global 17.0.3
Zar nije super-lako? Više ne morate da se mučite sa echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc stvarima! Sjajno, zaista sjajno!
Druga, korišćenje Homebrew-a za instalaciju MongoDB-a
Prvo pogledajmo zvaničnu dokumentaciju MongoDB-a (trenutna verzija izdanja je 5.0, ovde ću prvo koristiti prethodnu stabilnu verziju 4.4):
https://www.mongodb.com/docs/v4.4/tutorial/install-mongodb-on-os-x/
- Povlačenje MongoDB izvora
brew tap mongodb/brew
- Ažuriraj brew
brew update- Instaliraj MongoDB
brew install mongodb-community@4.4OK, instalacija je uspešna.

Zaključak
Softver preuzet preko Homebrew-a je uglavnom sa zvaničnih veb sajtova, tako da možete biti sigurni. Pored toga, on maksimalno koristi razne sistemske biblioteke, što znatno skraćuje vreme kompilacije softverskih paketa i praktično ne stvada redundantnost.
Ovde ću vam ispričati malu priču, koju velikaši koji podučavaju algoritme mogu da uzmu: autor homebrew-a je otišao na intervju u Google, tražili su mu problem s algoritmima: inverzija binarnog stabla, ali nije prošao i bio je odbijen, 😆

Dobro, danas ćemo završiti članak ovde, vidimo se sledeći put~
