Kako brew upgrade znotraj verzije?

Pred kratkim sem naredil brew upgrade na svoji macOS mašini in mi je PostgreSQL upgradalo na 10.x verzijo, imel sem pa 9.5.x. Želel bi ostati na verziji 9.5, ker imam to enako verzijo tudi na strežniku. Ali se komu sanja, kako bi nekako lockal brew, da bi formulo upgradal samo znotraj željene verzije?

Google mi najde rešitev brew install postgresql@9.5, ampak to naredi čisto novo instalacijo, jaz pa bi si želel zgolj lockati trenutno instalacijo, zato ta rešitev zame ni najbolj sprejemljiva.

3 odgovori

3 3

Če bo še kdo iskal, napišem rešitev. Ne gre drugače, kot z brew install postgresql@9.5. Razlog je čisto sistemski, brew je kot package manager zasnovan čisto drugače kot, recimo, npm ali yarn in locking na verzijo že zaradi zasnove ni mogoč. Saj podobno je tudi z yum, apt-get in podobnimi package managerji, kjer se sicer da nekaj shekati, ampak ne privzeto. Da pa se v brew narediti brew pin postgresql, kar pa ne naredi nič drugega kot to, da pina formulo na trenutno zadnjo verzijo in je v brew upgrade ne vključuje, torej sploh ne updata formule, niti znotraj minor verzije.

Moja rešitev je bila naslednja:

$ brew services stop postgresql
$ brew install postgresql@9.5
$ rm /usr/local/var/postgresql@9.5
$ mv /usr/local/var/postgresql /usr/local/var/postgresql@9.5
$ brew uninstall postgresql
$ brew services start postgresql@9.5

Na ta način sem obdržal staro bazo in vse nastavitve, saj brew uninstall postgresql briše le instalacijo, bazo pa pusti na miru. brew upgrade bo tudi upgradal formulo znotraj 9.5 verzije.

Moti me sicer, da si moram zapomniti, da se zdaj PostgreSQL service zažene z brew services start postgresql@9.5, ampak bom že preživel. :)

1 1

Preveri katera je trenutna verzija z brew info postgresql pol pa preklopi na to 9.5.x verzijo z brew switch postgresql 9.5.x.

Vsaj takšno rešitev so predlagali na SO: https://stackoverflow.com/questions/3987683/homebrew-install-specific-version-of-formula

Nazadnje urejal gnome (18. jun 2018 ob 17:47) - dodan link

Ja, to, kako pridem nazaj na željeno verzijo, sem že rešil. Težava je bolj v tem, da ne morem delati brew upgrade, če nočem vsakič posebej switchat nazaj na to. Sem vmes ugotovil, da sistem ni tako zastavljen, da bi bilo to sploh mogoče. Bom moral vseeno uporabiti uno brew install postgresql@9.5 rešitev. –

0

Kaj pa docker? Jaz si sploh ne predstavlajm več, da bi moral kaj inštalirat na mašino za development env.