後端開發者的M1 Macbook開發環境搭建
持續創作,加速成長!這是我參與「掘金日新計劃 · 10 月更文挑戰」的第6天,點選檢視活動詳情
1. JDK
JDK下載地址:http://www.azul.com/downloads/?package=jdk
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
找到我們剛剛安裝的JDK,然後隨便新建一個專案就可以了。
匯入IDEA配置
可以直接匯入之前自己備份的IDEA配置,非常方便!也可以通過
3. 安裝git
開啟終端,輸入git
,會直接跳出對話方塊,點選安裝即可
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/
7. 截圖工具iShot
8. 圖床工具ipic
下載安裝
圖床設定
設定完之後點選驗證按鈕,如果出現通過的字樣說面設定成功,直接點選應用即可,否則檢查資訊重新填寫
9. 最好用的markdown寫作工具Typora
Typora是我目前通過的體驗最好的markdown寫作工具,沒有之一!V1.0之後變成收費產品了,但是新產品並沒有讓我值得付費的新功能。
因此我們只需要使用V1.0之前的版本就可以了。
可以關注「蟬沐風」公眾號,回覆「typora」獲取Windows和Mac的安裝包
設定圖床
開啟偏好設定,選擇「影象」,按照下圖進行設定(需要安裝ipic)
點選「驗證圖片上傳選項」按鈕,出現以下提示說明配置成功,之後再Typora中貼上的圖片就會自動上傳到你的圖床。
10. 解壓縮軟體
11. Docker Desktop
http://www.docker.com/products/docker-desktop
安裝完畢之後登入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,下載對應的版本
```bash
下載指定版本的mysql
docker pull mysql/mysql-server ```
下載完成之後開啟我們的Docker Desktop就可以看到我們下載的映象了
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.
解決方法,按照下圖順序新增自己的共享路徑就可以了
再執行指令,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試一下吧,如果能成功連線,則跳過接下來的步驟);
很遺憾,我這裡連線不了,接下來我們配置一下遠端連線
為了簡單,我們建立一個非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
當前只有一個配置,表示接受客戶端遠端連線,如果有其他配置需求,自己接著寫就可以了。
然後試一下遠端連線,成功!
4. 如何通過終端連線MySQL
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
目錄下,方便我們檢視日誌
最終的檔案對映效果
/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
的問題,你可以這樣
- 先下載git倉庫
bash
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
- 替換zshrc(替換之前請記得備份!)
bash
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
重啟終端,你就會看到花花綠綠的終端了。
我習慣使用預設主題了,怎麼替換主題大家自行百度一下。
13. VSCode
VSCode官方已經完美適配M1晶片,下載的時候需要注意下載指定版本
http://code.visualstudio.com/#alt-downloads
14. NodeJS
http://nodejs.org/zh-cn/download/
驗證安裝
bash
➜ ~ node -v
v16.14.0
➜ ~ npm -v
8.3.1