好用到爆!GitHub 星標 32.5k+的命令列軟體管理神器,功能真心強大!
前言(廢話)
本來打算在公司偷偷摸摸給星球的使用者寫一篇程式設計喵整合 MongoDB 的文章,結果在通過 brew 安裝 MongoDB 的時候竟然報錯了。原因很簡單,公司這臺 Mac 上的 homebrew 環境沒有配置好。剛好 Java 程式設計師進階之路上缺少這樣一篇內容。
所以我就想,不如趁機水一篇吧,啊,不不不,趁機給小夥伴們普及一下 Homebrew 吧!瞧我這該死的大公無私的心(手動狗頭)。
不會吧?不會還有人用 macOS 沒有安裝/配置 Homebrew 吧?
Homebrew 能幹什麼
Homebrew 的 Slogan :The missing package manager for macOS (or Linux)
Homebrew 這款命令列軟體管理神器在 GitHub 上已經有 32.5k+ 的 star 了,功能也真心強大,幾乎 macOS 上的軟體包它都包了。Homebrew 本身沒有問題,問題在於。。。。。不說了,你懂的。
Homebrew 除了是 macOS 的包管理器也可以裝在 Linux 上成為 Linux 的包管理器,僅需要執行相應的命令,就能下載安裝需要的軟體包,省去了下載、解壓、拖拽等繁瑣的步驟。
用 Homebrew 官方的話來總結就是:安裝 Apple(或 Linux 系統)沒有預裝但你需要的軟體。比如說安裝 MongoDB,只需要執行以下命令就可以安裝,前提條件是環境一定要配置好。
brew install mongodb
簡單一條命令,就可以實現包管理,還不用擔心依賴/檔案路徑等問題。
Homebrew 主要由四個部分組成: brew、homebrew-core 、homebrew-cask、homebrew-bottles。
- brew:Homebrew 的原始碼倉庫
- homebrew-core:Homebrew 的核心源
- homebrew-cask:提供 macOS 應用和大型二進位制檔案的安裝
- homebrew-bottles:預編譯二進位制軟體包
再來了解一下 Homebrew 的接個核心概念,後續會經常用到。
- formula(e),安裝包的描述檔案,帶 e 為複數
- cellar,包安裝好後所在的目錄
- bottle,預先編譯好的包,不需要再下載原始碼編譯,速度會快很多,官方庫中的包大多數是通過 bottle 方式安裝的
- tap,下載源
- cask(s),安裝 macOS native 應用的擴充套件,可以理解為有圖形化介面的應用,帶 s 為複數
- bundle,描述 Homebrew 依賴的擴充套件
安裝配置 Homebrew
世上無難事,只要找到 Homebrew 的正確安裝方式。
按理說,Homebrew 的安裝方式非常簡單,只需要執行官方的一句命令就可以完成安裝了。
/bin/bash -c "$(curl -fsSL http://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
但國內開發者命苦就苦在,經常會因為網路的原因安裝失敗。原因我只能說這是 http://raw.githubusercontent.com
網站的鍋,誰讓它訪問不穩定呢?
怎麼辦呢?
必須換一種高效且科學的安裝方式,那就是使用映象安裝。 Gitee 上有開源作者提供了一鍵安裝包,只需要執行以下命令就可以了。
/bin/zsh -c "$(curl -fsSL http://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
安裝腳本里提供了中科大、清華大學、北京外國語大學、騰訊、阿里巴巴等下載源。
但過來人告訴你,別選其他映象源,就選中科大,速度槓槓的,40-50M/s,這速度比其他映象源快多了,對比起來,其他就是蝸牛🐌。
這個安裝指令碼非常的智慧,幾乎可以一件幫我們搞定所有問題。
再次感謝 Gitee 上這位大牛,已經 3k star 了,我把地址貼出來:
brew 本體安裝成功後,會提示我們配置國內映象源。
nice,安裝完成了。執行下面這幾個命令體驗下。
brew ls
檢視本地命令;brew search mongodb
查詢軟體;brew -v
檢視版本;brew update
更新版本;brew install --cask firefox
安裝圖形化介面軟體brew config
檢視配置。
brew 和 brew cask 的區別
這裡順帶說一下 brew 和 brew cask 的區別,這也是一開始我使用 brew 時困惑的一個點。
以前的版本中,是可以直接 brew cask list
這樣執行命令的,現在改成了 brew list --cask
。
brew 是從下載原始碼開始,然後編譯(不一定,有些有現成的 bottle)解壓,通過 ./configure && make install
進行安裝,同時會包含相關的依賴庫。環境變數也是自動配置的。
brew cask 是下載解壓已經編譯好了的軟體包(.dmg/.pkg),放在統一的目錄中,省去了手動去下載、解壓、拖拽等蛋疼步驟。
通過 brew search google
我們也可以看得出兩者之間的區別。
- 「Formulae」一般是那些命令列工具、開發庫、字型、外掛等不含 GUI 介面的軟體。
- 「Cask」就會包含一些 GUI 圖形化介面的軟體,如 Google Chrome、FireFox 、Atom 等
使用 Homebrew
Homebrew安裝配置完成後,我們來實操體驗兩把。
這裡是 homebrew 常用命令的一個清單,可供參考。
命令| 描述 ---|--- brew update| 更新 Homebrew brew search package| 搜尋軟體包 brew install package| 安裝軟體包 brew uninstall package| 解除安裝軟體包 brew upgrade| 升級所有軟體包 brew upgrade package| 升級指定軟體包 brew list| 列出已安裝的軟體包列表 brew services command package| 管理 brew 安裝軟體包 brew services list| 列出 brew 管理執行的服務 brew info package| 檢視軟體包資訊 brew deps package| 列出軟體包的依賴關係 brew help| 檢視幫助 brew cleanup| 清除過時軟體包 brew link package| 建立軟體包符號連結 brew unlink package| 取消軟體包符號連結 brew doctor| 檢查系統是否存在問題 brew tap [user/repo] | 將開源倉庫新增到源
第一把,使用 Homebrew 安裝 JDK
作為一名 Java 後端程式設計師,JDK 是必須要安裝的,對吧?
1)執行 brew search jdk
查詢有哪些可供安裝的 JDK
2)執行 brew install openjdk@17
安裝 JDK。
3)但我們在 macOS 上安裝了多個版本的 JDK 後,怎麼管理它們呢?可以安裝一下 jEnv,一個幫助我們管理 JAVA_HOME 的命令列工具,在 GitHub 上已經收穫 4.3k 的 star。
GitHub 地址:http://github.com/jenv/jenv
官方文件也非常的簡潔大方:
安裝:
brew install jenv
配置:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
新增:
jenv add /usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home/
JDK 的安裝路徑可以通過下圖的位置查詢。
管理:
jenv versions
jenv global 17.0.3
是不是賊方便?再也不用整這 echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
玩意了!爽,實在是爽!
第二把,使用 Homebrew 安裝 MongoDB
先看 MongoDB 的官方文件(當前 release 版本是 5.0,我這裡就先用上一個穩定版 4.4):
http://www.mongodb.com/docs/v4.4/tutorial/install-mongodb-on-os-x/
1)拉取 MongoDB 的源
brew tap mongodb/brew
2)更新 brew
brew update
3)安裝 MongoDB
brew install [email protected]
OK,安裝成功。
小結
通過 Homebrew 下載的軟體基本上來自於官網,所以大可以放心。而且而且它儘可能地利用了系統自帶的各種庫,使得軟體包的編譯時間大大縮短,基本上不會造成冗餘。
這裡順帶給大家提一則小故事,教別人學演算法的大佬可以拿走了:homebrew 的作者去面 Google,被考演算法題: 反轉二叉樹,結果沒通過被拒了,😆
好了好了,今天這篇文章就先水到這吧,我們下期見~
沒有什麼使我停留——除了目的,縱然岸旁有玫瑰、有綠蔭、有寧靜的港灣,我是不繫之舟。
本文已收錄到 GitHub 上星標 2.8k+ 的開源專欄《Java 程式設計師進階之路》,據說每一個優秀的 Java 程式設計師都喜歡她,風趣幽默、通俗易懂。內容包括 Java 基礎、Java 併發程式設計、Java 虛擬機器、Java 企業級開發(Git、Nginx、Maven、Intellij IDEA、Spring、Spring Boot、Redis、MySql 等等)、Java 面試等核心知識點。學 Java,就認準 Java 程式設計師進階之路😄。
http://github.com/itwanger/toBeBetterJavaer
star 了這個倉庫就等於你擁有了成為了一名優秀 Java 工程師的潛力。
- 發現一款後端程式設計師必備的壓測工具,十分鐘就能上手,yyds
- 銀行外包996,騎驢找馬要跳槽
- 外包四年太差勁,幡然醒悟要跳槽
- 裝了我這 10 個 IDEA 神級外掛後,同事也開始情不自禁的嘚瑟了
- JetBrains再出手,這次要幹翻 VS Code了????
- 我的第一個,10萬
- GitHub 官宣:棄用 trending 熱榜,開發者炸鍋了
- 大吃一驚!GitHub 30天后棄用Trending熱榜!
- WindTerm:新一代開源免費的終端工具,GitHub星標6.6k ,太酷了!
- 網上接單掙了 10000 元后的感觸
- 別再用 System.currentTimeMillis 統計耗時了,太 Low,試試 Spring Boot 原始碼在用的 StopWatch吧,夠優雅!
- 別再用 System.currentTimeMillis 統計耗時了,太LOW,這個工具類好用到爆!
- 在IDEA裡下個五子棋不過分吧?
- 在IDEA裡下五子棋不過分吧?
- 好用到爆!GitHub 星標 32.5k 的命令列軟體管理神器,功能真心強大!
- 終於,夢想實現了
- 我扔進垃圾桶的第一本Java書...
- 解放雙手!推薦一款 GitHub 星標 8.2k 的命令列軟體管理器,非常酷炫!
- 再見收費的TeamViewer,推薦一款不限速的國產遠端控制軟體
- 我的母親