和Mac OS相處-環境設置

透過「重灌mongoDB」這件事情摸到Mac OS的一點邊邊

Timothy Liao
Coding & Learning
6 min readSep 2, 2021

--

https://www.google.com/url?sa=i&url=https%3A%2F%2Fzh.wikipedia.org%2Fwiki%2FClassic_Mac_OS&psig=AOvVaw0UEOY51nqv1jbJivghOSAk&ust=1630597511937000&source=images&cd=vfe&ved=0CAwQjhxqFwoTCLijh6CP3vICFQAAAAAdAAAAABAD

前言

一直以來都是Windows的使用者,不過在提供公司電腦的狀況,就稍稍碰一下Mac OS,也有些有趣的事情發生,就記錄一下當作有趣的學習吧。

初步從「快速上手Linux的九堂課」了解到的是,Mac OS和linux本質上是不一樣的東西,Mac OS從BSD Unix系統衍生而來,而Linux則因為沒有沿用Unix的原始碼,有時會被稱為Unix-like作業系統。

心得、結論

  • 「重灌」是一個基於Windows的概念,對於Mac OS來說,更換command的版本其實就是更換要執行command的目錄,只要確保原本的命令已經停止,這時候執行新的命令,基底就已經不同了。
  • 想要把命令變為global,而不需要每次都搜尋特定路徑,可以使用

目標、前提條件

這次目標來源是因為新開發的應用程式的mongoDB是使用較新的版本,於是就需要將電腦裡面原本的3.4升級到5.0。

另外最正規、最能相容舊資料的方式是按照mongoDB升級的版本一一升級,這樣比較可以確保舊資料不會出現問題,不過因為我是新電腦,裡面沒有任何資料,所以會用最暴力的直接重灌以省事。

步驟

  • 檢查mongoDB有沒有在run
  • 清除原本的mongoDB
  • 下載新的mongoDB
  • 註冊mongoDB的command: mongod、mongo

檢查mongoDB有沒有在run

感謝仲崴,提供了一個非常有幫助的stack overflow資料

指令: ps -ef | grep mongod | grep -v grep | wc -l | tr -d ' '

若有出現任何數字就代表MongoDB的process正在運作,回答者甚至認真地說明每段指令的運作方式:

  • ps -ef | grep mongod

回傳所有跟mongod有關且正在運行的process

  • grep -v grep

當我們運行前面的指令時,grep mongod也會變成一個process並出現在回傳的資料上面(意思是若缺少這段指令一定會出現非0的數字),於是需要在前面指令執行後用這段指令排除新增加的指令,將所有grep的指令都篩除掉。

  • wc -l

現在已經有所有條可能性的指令都列出來了,接著就是透過這條指令去數(count)。

  • tr -d ' '

前面的指令包含額外的空白,所以為了整齊、方便閱讀,使用這條指令去清除多餘的空白。

清除原本的mongoDB執行序

在了解仍然有mongoDB在process中時,我們會先停止執行序再刪除相關資料。

接著就解除安裝,若是使用brew安裝的使用這個指令

若是自己去網站下載並解壓縮的話,使用這個指令

如果需要清除掉資料的話(通常用這麼暴力的升級方式你應該是需要啦XD)

下載新的mongoDB

接著我們下載最新的mongoDB,根據資訊,HomeBrew從2019年的9月就已經將mongodb的資料從核心倉庫移除,但還是有社區版的可以使用!!

不過我這次是採取官方網站下載的方式。

基本上步驟就是

  • 下載
  • 解壓縮

接著就是下一個大階段:註冊指令。

下載

到社區版的官方網站下載,下載後解壓縮他

可以使用指令:

註冊mongoDB的command: mongod、mongo

有兩件事情要注意

  • 一定要做的是指定DB所在的資料夾,預設值其實是/data/db ,你可以建一個;或是自己找其他地方,但後者妳就需要指定DB的資料夾
  • 第二件事情是視需求決定需不需要log日誌

設定同上。

最後開啟mongoDB時,看你是否使用預設值決定參數

參考資料

--

--