後端開發者的M1 Macbook開發環境搭建

語言: CN / TW / HK

持續創作,加速成長!這是我參與「掘金日新計劃 · 10 月更文挑戰」的第6天,點選檢視活動詳情


1. JDK

JDK下載地址:http://www.azul.com/downloads/?package=jdk

image-20220218091853090

bash [email protected] ~ % java -version openjdk version "1.8.0_322" OpenJDK Runtime Environment (Zulu 8.60.0.21-CA-macos-aarch64) (build 1.8.0_322-b06) OpenJDK 64-Bit Server VM (Zulu 8.60.0.21-CA-macos-aarch64) (build 25.322-b06, mixed mode)

2. IDEA

先建立個專案,不出意外的話一開始會讓我們首先設定JDK

image-20220218094513067

image-20220218094656590

找到我們剛剛安裝的JDK,然後隨便新建一個專案就可以了。

匯入IDEA配置

可以直接匯入之前自己備份的IDEA配置,非常方便!也可以通過

image-20220218094846204

3. 安裝git

開啟終端,輸入git,會直接跳出對話方塊,點選安裝即可

image-20220218100831086

4. homebrew

注意,這裡我安裝的是ARM版本的homebrew,X86版本的請查閱相關資料

bash /bin/bash -c "$(curl -fsSL http://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"

設定環境變數

從macOS Catalina(10.15.x) 版開始,Mac使用zsh作為預設Shell,使用.zprofile,所以對應命令:

bash echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"

如果是macOS Mojave 及更低版本,並且沒有自己配置過zsh,使用.bash_profile

bash echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.bash_profile eval "$(/opt/homebrew/bin/brew shellenv)"

驗證是否安裝成功,輸入

bash brew

參考連結:http://zhuanlan.zhihu.com/p/341831809

5. 資料庫連線工具TablePlus

http://tableplus.com/

6. 虛擬機器

http://www.parallels.cn/pd/general/

image-20220218082630096

7. 截圖工具iShot

image-20220218082652425

8. 圖床工具ipic

下載安裝

image-20220218093650789

圖床設定

image-20220218093621274

image-20220218093827541

設定完之後點選驗證按鈕,如果出現通過的字樣說面設定成功,直接點選應用即可,否則檢查資訊重新填寫

9. 最好用的markdown寫作工具Typora

Typora是我目前通過的體驗最好的markdown寫作工具,沒有之一!V1.0之後變成收費產品了,但是新產品並沒有讓我值得付費的新功能。

因此我們只需要使用V1.0之前的版本就可以了。

可以關注「蟬沐風」公眾號,回覆「typora」獲取Windows和Mac的安裝包

設定圖床

開啟偏好設定,選擇「影象」,按照下圖進行設定(需要安裝ipic)

image-20220218094058704

點選「驗證圖片上傳選項」按鈕,出現以下提示說明配置成功,之後再Typora中貼上的圖片就會自動上傳到你的圖床。

image-20220218094150355

10. 解壓縮軟體

image-20220218095306409

11. Docker Desktop

http://www.docker.com/products/docker-desktop

image-20220218095801784

安裝完畢之後登入dockerhub,然後找到你想下載的軟體,接下來我會把連結直接放到每個軟體的下方

11.1 MySQL

http://hub.docker.com/r/mysql/mysql-server

1. 下載映象

需要下載的映象是mysql/mysql-server,這是社群版本,因為docker官方沒有提供適配m1晶片的5.7.X版本的MySQL(arm64)

在終端中直接輸入下面的指令,拉取mysql映象

```bash

不加tag預設下載最新版mysql伺服器

docker pull mysql/mysql-server ```

你也可以選擇mysql映象提供的tag,下載對應的版本

image-20220218122739940

```bash

下載指定版本的mysql

docker pull mysql/mysql-server ```

下載完成之後開啟我們的Docker Desktop就可以看到我們下載的映象了

image-20220218134135613

2. 執行MySQL例項

bash docker run -d --name mysql-server-8 -v /Users/chanmufeng/Docker/mysql8/data:/var/lib/mysql -v /Users/chanmufeng/Docker/mysql8/my.cnf.d:/etc/mysql/my.cnf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql/mysql-server

下面解釋一下這個指令

  • docker run是docker的指令,表示執行容器
  • -d標識後臺執行容器
  • --name mysql-server-8:給容器起個名字叫mysql-server-8
  • -v /Users/chanmufeng/Docker/mysql8/data:/var/lib/mysql:將MySQL容器中的/var/lib/mysql目錄(這是預設的資料目錄)對映到本機的/Users/chanmufeng/Docker/mysql8/data目錄
  • -v /Users/chanmufeng/Docker/mysql8/my.cnf.d:/etc/mysql/my.cnf.d:將MySQL容器中的配置檔案所在目錄/etc/mysql/my.cnf.d對映到本機的/Users/chanmufeng/Docker/mysql8/my.cnf.d目錄

你可能會問,容器中的目錄位置我是怎麼知道的,看一下官方文件就知道了,如果你懶得看,恰好用的映象和我是同一個,那就直接照抄,如果是其他版本,我不敢保證目錄對不對哦

  • -p 3306:3306:容器的3306埠對映到本機的3306埠,這樣一來你訪問本機3306就相當於訪問了容器的3306埠
  • -e MYSQL_ROOT_PASSWORD=123456:root使用者的登入密碼
  • mysql/mysql-server:我們剛剛拉取的映象名稱

執行命令之後可能會掛載失敗(如果成功了就直接跳到第3步),資訊如下

docker: Error response from daemon: Mounts denied: The path XXXXXX/mysql57/data is not shared from the host and is not known to Docker. You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing.

解決方法,按照下圖順序新增自己的共享路徑就可以了

image-20220218132811271

再執行指令,mysql就執行成功了

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 6f2496a1f77961c27e9ff6d509162af0246dfa00380d110fb06bec22d7ee481a

3. 配置遠端連線

接下來用資料連線工具連線一下本地的MySQL試一下吧,如果能成功連線,則跳過接下來的步驟);

image-20220218135153548

很遺憾,我這裡連線不了,接下來我們配置一下遠端連線

為了簡單,我們建立一個非root使用者chanmufeng

```bash

切換資料庫

use mysql;

建立使用者和密碼

CREATE USER 'chanmufeng'@'%' IDENTIFIED BY '123456';

授權chanmufeng使用者

grant all on . to 'chanmufeng'@'%'; ```

為了以防萬一,我還建立了一個my.cnf檔案放在了/Users/chanmufeng/Docker/mysql8/my.cnf.d,因為這個目錄和容器內的配置檔案所在的目錄做了對映,所以我們寫得配置能被容器直接讀取

[mysqld] bind-address=0.0.0.0

當前只有一個配置,表示接受客戶端遠端連線,如果有其他配置需求,自己接著寫就可以了。

然後試一下遠端連線,成功!

image-20220218141246263

4. 如何通過終端連線MySQL

image-20220218141854176

11.2 Redis

http://hub.docker.com/_/redis

1. 下載映象

bash docker pull redis:6

2. 配置環境

建立目錄/Users/chanmufeng/Docker/redis6/conf,然後在該目錄下建立redis.conf檔案,內容如下

```

記得把這個配置遮蔽掉,否則你會浪費很多時間

bind 127.0.0.1

protected-mode no port 6379 tcp-backlog 511 timeout 0

tcp-keepalive 300

如果命令列使用了-d 這個地方必須設定為no,否則容器無法啟動

daemonize no supervised no pidfile /var/run/redis_6379.pid loglevel notice

這個目錄也會針對本機做一個對映

logfile "/var/log/redis/6379.log"

databases 16 always-show-logo yes

```

3. 執行容器

bash docker run -d -v /Users/chanmufeng/Docker/redis6/conf:/usr/local/etc -p 6379:6379 -v /Users/chanmufeng/Docker/redis6/log:/var/log/redis --name myredis redis:6 redis-server /usr/local/etc/redis.conf

接下來講解一下指令

  • -v /Users/chanmufeng/Docker/redis6/conf:/usr/local/etc:我們在/Users/chanmufeng/Docker/redis6/conf目錄下建立了redis的配置檔案,就等同於在/usr/local/etc目錄下也建立了同一個配置檔案(這個很重要,仔細體會)
  • -v /Users/chanmufeng/Docker/redis6/log:/var/log/redis我們在redis.conf檔案中設定了redis容器日誌檔案的地址,然後把日誌檔案所在的目錄對映到了本機的/Users/chanmufeng/Docker/redis6/log目錄下,方便我們檢視日誌

最終的檔案對映效果

image-20220218145342778

  • /usr/local/etc/redis.conf:指定redis服務啟動時使用的配置檔案,這個配置檔案的地址是容器中檔案的地址,實際是由我們本地對映的,參見第一條對映關係

12. 配置iTem2 + Zsh + Oh My Zsh

Mac OS,雖然內建了很多開發工具,但是兵器還是要自己親手調教後才是順手用的。接下來介紹Mac下的iTerm2 + Zsh + Oh My Zsh 終端環境配置

iTem2下載安裝

http://iterm2.com/index.html

Zsh

mac從Catalina開始已經預設使用Zsh了,所以無需多餘設定

Oh My Zsh

Zsh雖然好用,但是配置起來還是挺繁瑣的。Oh My Zsh開源專案就是為了解決這個問題,他自帶了基本配置和非常多的面板設定,我們只需要選擇喜歡的主題即可

先安裝wget

bash brew install wget

安裝Oh My Zsh

bash sh -c "$(wget -O- http://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

這一步如果沒什麼問題那就恭喜你了

如果你遇到了git clone of oh-my-zsh repo failed的問題,你可以這樣

  1. 先下載git倉庫

bash git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

  1. 替換zshrc(替換之前請記得備份!

bash cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

重啟終端,你就會看到花花綠綠的終端了。

我習慣使用預設主題了,怎麼替換主題大家自行百度一下。

13. VSCode

VSCode官方已經完美適配M1晶片,下載的時候需要注意下載指定版本

http://code.visualstudio.com/#alt-downloads

image-20220219133804670

14. NodeJS

http://nodejs.org/zh-cn/download/

image-20220219133937717

驗證安裝

bash ➜ ~ node -v v16.14.0 ➜ ~ npm -v 8.3.1