後端開發者的M1 Macbook開發環境搭建
持續創作,加速成長!這是我參與「掘金日新計劃 · 10 月更文挑戰」的第6天,點擊查看活動詳情
1. JDK
JDK下載地址:http://www.azul.com/downloads/?package=jdk
bash
chanmufeng@chanmufengdeMacBook-Pro ~ % 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