Mac從零搭建開發(fā)環(huán)境

原文發(fā)自我的博客

手上一臺幾乎閑置的mbp mid 2015捂寿,最近升級了Big Sur做粤,感覺煥然一新,想作為主力機使用了螟够,畢竟硬件配置比公司給的低配mbp還好一截。按照現(xiàn)在習(xí)慣的開發(fā)環(huán)境峡钓,重新裝了一遍(下次試試用dotfiles管理)妓笙。

安裝字體

git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh

安裝homebrew

國內(nèi)網(wǎng)絡(luò)環(huán)境太差,安裝速度過慢能岩,掛了代理依然只有幾十KB的速度寞宫,只能選擇換鏡像源。

首先拉鹃,需要已經(jīng)安裝了 bash辈赋、git 和 curl鲫忍,以及 Command Line Tools (CLT) for Xcode, xcode-select --install 钥屈。

接著悟民,在終端輸入以下幾行命令設(shè)置環(huán)境變量:

BREW_TYPE="homebrew"
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/${BREW_TYPE}-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/${BREW_TYPE}-bottles"

最后,在終端運行以下命令以安裝 Homebrew / Linuxbrew:

git clone --depth=1 https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install.git brew-install
/bin/bash -c "$(
    cat brew-install/install.sh |
    sed -E 's|^(\s*HOMEBREW_BREW_GIT_REMOTE=)(.*)$|\1"${HOMEBREW_BREW_GIT_REMOTE:-\2}"|g' |
    sed -E 's|^(\s*HOMEBREW_CORE_GIT_REMOTE=)(.*)$|\1"${HOMEBREW_CORE_GIT_REMOTE:-\2}"|g'
)"
rm -rf brew-install

這樣在首次安裝的時候也可以使用鏡像焕蹄。

安裝好homebrew之后逾雄,需要設(shè)置常用taps以及換源:

BREW_TAPS="$(brew tap)"
for tap in core cask{,-fonts,-drivers,-versions}; do
    if echo "$BREW_TAPS" | grep -qE "^homebrew/${tap}\$"; then
        # 將已有 tap 的上游設(shè)置為本鏡像并設(shè)置 auto update
        # 注:原 auto update 只針對托管在 GitHub 上的上游有效
        git -C "$(brew --repo homebrew/${tap})" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-${tap}.git
        git -C "$(brew --repo homebrew/${tap})" config homebrew.forceautoupdate true
    else   # 在 tap 缺失時自動安裝(如不需要請刪除此行和下面一行)
        brew tap --force-auto-update homebrew/${tap} https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-${tap}.git
    fi
done

更換上游后需重新設(shè)置 git 倉庫 HEAD:

brew update-reset

如有問題,可以復(fù)原倉庫上游:

BREW_TAPS="$(brew tap)"
for tap in core cask{,-fonts,-drivers,-versions}; do
    if echo "$BREW_TAPS" | grep -qE "^homebrew/${tap}\$"; then
        git -C "$(brew --repo homebrew/${tap})" remote set-url origin https://github.com/Homebrew/homebrew-${tap}.git
    fi
done

# 重新設(shè)置 git 倉庫 HEAD
brew update-reset

二進(jìn)制預(yù)編譯包bottles換源:

# 臨時替換
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/bottles"

# 長期替換
# bash
echo 'export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/bottles"' >> ~/.bash_profile
# zsh
echo 'export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/bottles"' >> ~/.zprofile

安裝iTerm2

使用homebrew安裝:

brew install --cask iterm2

安裝主題nord:

wget https://raw.sevencdn.com/arcticicestudio/nord-iterm2/develop/src/xml/Nord.itermcolors

preferences → profiles → colors → color preset → import腻脏,選擇下載的主題文件鸦泳。

image-20210314212900552

設(shè)置光標(biāo)跳轉(zhuǎn),preferences → Keys → Preset → Natural Text Editing 永品。

image-20210314232121400

安裝oh-my-zsh

安裝oh-my-zsh與命令補全做鹰、高亮:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

然后修改 vim.zshrc,找到 plugins=(git) 改為 plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

設(shè)置主題:

Clone this repo:

git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1

Symlink spaceship.zsh-theme to your oh-my-zsh custom themes directory:

ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme" 

Set ZSH_THEME="spaceship" in your .zshrc.

最終樣式:

image-20210317234829665

安裝tmux

安裝tmux:

brew install tmux

oh-my-tmux

選擇用oh-my-tmux一鍵配置:

cd ~
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .


brew install reattach-to-user-namespace

后續(xù)所有tmux配置在 .tmux.conf.local 中修改即可鼎姐。

主題nord-tmux

nord是一個干凈的钾麸、冷色調(diào)的配色主題,提供了一組主題插件集合炕桨,包含諸如 jetbrains饭尝、vscode、vim献宫、tmux 的主題插件钥平,這里有全部的插件倉庫

.tmux.conf.local 中搜索plugin位置姊途,在下面增加一行:

set -g @plugin "arcticicestudio/nord-tmux"

最終效果:

image-20210317235420004

安裝多版本jdk

activate the AdoptOpenJDK:

brew tap AdoptOpenJDK/openjdk

使用國內(nèi)鏡像安裝jdk8涉瘾,編輯rb文件,替換下載的url:

vim /usr/local/Homebrew/Library/Taps/adoptopenjdk/homebrew-openjdk/Casks/adoptopenjdk8.rb


cask "adoptopenjdk8" do
  version "8,282:b08"
  sha256 "f12d380ceae806d02c4cae23bdc601402c543692c763122286b99d8ef6059794"

  # github.com/AdoptOpenJDK was verified as official when first introduced to the cask
  #url "https://github.com/AdoptOpenJDK/openjdk#{version.before_comma}-binaries/releases/download/jdk8u282-b08/OpenJDK8U-jdk_x64_mac_hotspot_8u282b08.pkg",
  url "https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/mac/OpenJDK8U-jdk_x64_mac_hotspot_8u282b08.pkg",
      verified: "https://github.com/AdoptOpenJDK"
  appcast "https://github.com/adoptopenjdk/openjdk#{version.before_comma}-binaries/releases/latest"
  name "AdoptOpenJDK 8"
  desc "AdoptOpenJDK OpenJDK (Java) Development Kit"
  homepage "https://adoptopenjdk.net/"

  pkg "OpenJDK8U-jdk_x64_mac_hotspot_8u282b08.pkg"

  postflight do
    system_command "/usr/sbin/pkgutil", args: ["--pkg-info", "net.adoptopenjdk.8.jdk"], print_stdout: true
  end

  uninstall pkgutil: "net.adoptopenjdk.8.jdk"
end

同樣捷兰,jdk11立叛、jdk15可以替換url安裝:

vim /usr/local/Homebrew/Library/Taps/adoptopenjdk/homebrew-openjdk/Casks/adoptopenjdk11.rb

url "https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/11/jdk/x64/mac/OpenJDK11U-jdk_x64_mac_hotspot_11.0.10_9.pkg"


vim /usr/local/Homebrew/Library/Taps/adoptopenjdk/homebrew-openjdk/Casks/adoptopenjdk15.rb

url "https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/15/jdk/x64/mac/OpenJDK15U-jdk_x64_mac_hotspot_15.0.2_7.pkg"

替換url之后,執(zhí)行:

brew install --cask adoptopenjdk8
brew install --cask adoptopenjdk11
brew install --cask adoptopenjdk15

可以使用 jenv 管理jdk多版本:

brew install jenv

.zshrc 中添加jenv環(huán)境:

# java env
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"

查看已安裝的jdk版本和路徑:

/usr/libexec/java_home -V

Matching Java Virtual Machines (3):
    15.0.2 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 15" /Library/Java/JavaVirtualMachines/adoptopenjdk-15.jdk/Contents/Home
    11.0.10 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
    1.8.0_282 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

添加到 jenv 中管理:

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-15.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

設(shè)置全局默認(rèn) jdk 版本:

jenv global 1.8

安裝maven

homebrew安裝:

brew install maven

設(shè)置環(huán)境(一般不需要):

# 查詢安裝路徑
mvn --version

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec
Java version: 15.0.2, vendor: N/A, runtime: /usr/local/Cellar/openjdk/15.0.2/libexec/openjdk.jdk/Contents/Home
Default locale: zh_CN_#Hans, platform encoding: UTF-8
OS name: "mac os x", version: "11.2.3", arch: "x86_64", family: "mac"

# 設(shè)置環(huán)境變量
vim ~/.zshrc

export M2_HOME=/usr/local/Cellar/maven/3.6.3_1/libexec
export M2=$M2_HOME/bin

安裝node

homebrew安裝n(node版本管理):

brew install n

下載最新lts版本node和npm:

n lts

設(shè)置npm鏡像:

vim ~/.zshrc

# node, npm
export NODE_MIRROR=https://npm.taobao.org/dist/

安裝python

homebrew安裝anaconda:

brew cask install anaconda

創(chuàng)建python環(huán)境

conda create -n py2 python=2.7
conda create -n py3 python=3.8

安裝vscode

jetbrains全家桶固然爽贡茅,但是我的賬號已經(jīng)過期秘蛇,又不想交錢,而且公司配的電腦是乞丐版mbp顶考,8g內(nèi)存太吃緊了彤叉。不過公司提供的開發(fā)機倒是有4 c 16g的配置,而且提供了定制化的vscode server軟件包村怪,在開發(fā)機docker啟動vscode server秽浇,然后本地mbp運行一個配套的定制化vscode client,等于直接在開發(fā)機遠(yuǎn)程coding甚负。這本來是大多數(shù)使用c++開發(fā)的同事的方案柬焕,不過參考vscode提供的support for java方案审残,加入必要的java、maven斑举、spring等插件后搅轿,完全可以作為jetbrain idea intellij的替代方案。

目前使用了近半年vscode做為主力開發(fā)ide富玷,我的低配辦公mbp已經(jīng)很少發(fā)出風(fēng)扇的聲音璧坟,習(xí)慣vscode的coding、debug流程之后赎懦,效率反而變高了不少雀鹃,畢竟再也不卡頓了。

安裝vscode:

brew install --cask visual-studio-code

去應(yīng)用市場安裝插件

Java Extension Pack(包含Java開發(fā)常用插件)
Spring Boot Extension Pack(包含springboot開發(fā)常用插件)

別名配置

git

設(shè)置git全局config:

git config --global -e


[user]
    name = fakeyanss
    email = yanshisangc@gmail.com
[core]
    editor = vim
[alias]
    # Shortening aliases
    co = checkout
    cob = checkout -b
    f = fetch -p
    c = commit
    p = push
    ba = branch -a
    bd = branch -d
    bD = branch -D
    dc = diff --cached

    # Feature improving aliases
    st = status -sb
    a = add -p

    # Complex aliases
    plog = log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'
    tlog = log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative
    lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
    bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"
    rank = "!git log --format='%aN' | sort -u | while read name; do echo \"\\033[32m$name\\033[0m\t\"; git log --author=\"$name\" --pretty=tformat: --numstat | awk \"{ add += \\$1; subs += \\$2; loc += \\$1 - \\$2 } END { printf \\\"added lines: %s, removed lines: %s, total lines: %s\\n\\\", add, subs, loc }\" -; done"

mysql

安裝mycli客戶端

brew install mycli

配置常用連接別名:

vim ~/.zshrc
alias devdb='mycli -h127.0.0.1 -P3306 -Ddev -udev -pdev'

本篇文章由一文多發(fā)平臺ArtiPub自動發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末励两,一起剝皮案震驚了整個濱河市黎茎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌当悔,老刑警劉巖傅瞻,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盲憎,居然都是意外死亡嗅骄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門饼疙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掸读,“玉大人,你說我怎么就攤上這事宏多。” “怎么了澡罚?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵伸但,是天一觀的道長。 經(jīng)常有香客問我留搔,道長更胖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任隔显,我火速辦了婚禮却妨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘括眠。我一直安慰自己彪标,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布掷豺。 她就那樣靜靜地躺著捞烟,像睡著了一般薄声。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上题画,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天默辨,我揣著相機與錄音,去河邊找鬼苍息。 笑死缩幸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的竞思。 我是一名探鬼主播表谊,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼衙四!你這毒婦竟也來了铃肯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤传蹈,失蹤者是張志新(化名)和其女友劉穎押逼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惦界,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡挑格,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了沾歪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漂彤。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖灾搏,靈堂內(nèi)的尸體忽然破棺而出挫望,到底是詐尸還是另有隱情,我是刑警寧澤狂窑,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布媳板,位于F島的核電站,受9級特大地震影響泉哈,放射性物質(zhì)發(fā)生泄漏蛉幸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一丛晦、第九天 我趴在偏房一處隱蔽的房頂上張望奕纫。 院中可真熱鬧,春花似錦烫沙、人聲如沸匹层。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽又固。三九已至仲器,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仰冠,已是汗流浹背乏冀。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洋只,地道東北人辆沦。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像识虚,于是被迫代替她去往敵國和親肢扯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容