簡明 homebrew

来源:https://www.cnblogs.com/xiaohuochai/archive/2020/02/14/12306284.html

[1]介紹 [2]優勢 [3]安裝 [4]使用 [5]cask [6]逸事 ...


homebrew

介紹

包管理工具幾乎已經成為現代操作系統或者開發平臺不可或缺的工具軟體,無論做開發,或是管理伺服器,都免不了用到一些第三方依賴包。包管理工具的基本功能就是提供一個集中的平臺,可以在這裡找到大部分流行的組件,而不用費力的到每個軟體自己的主頁去下載安裝。只需要輸入簡單的命令,就可以直接安裝,並且包管理工具還會幫助用戶管理所有這些包的版本,以及它們之間的依賴關係。包管理工具可以讓安裝和更新程式變得更方便,目前在 MacOS 系統中受歡迎的包管理工具是 Homebrew

Homebrew(可直譯為家釀啤酒) 是一款 MacOS 平臺下的軟體包管理工具,是一個開源的 Ruby 腳本,最早的創建者是馬克斯·霍威爾(max howell)。該工具擁有安裝、卸載、更新、查看、搜索等很多實用的功能。簡單的一條指令,就可以實現包管理,而不用關心各種依賴和文件路徑的情況,十分方便快捷

優勢

1、通過 Homebrew 下載安裝的軟體全部來自對應的軟體官網,無需擔心下載源的安全問題

2、依存於系統既有的庫,減少了空間占用和冗餘

3、使用 Git 進行管理和更新

4、易於定製

5、安裝軟體、軟體包、軟體都在一個目錄/usr/local/Cellar下(cellar 是酒窖的意思),方便管理

安裝

【xcode】

如果沒有安裝 Xcode.app,可能需要先下載並安裝 Xcode。但實際上並不需要,只需要安裝完成 Xcode 命令行工具(Xcode Command Line Tools )即可

xcode-select —install

然後,執行下麵代碼就可以安裝 Homebrew 了,這是一個 ruby 腳本,執行這個安裝腳本就可以完成 Homebrew 所有安裝操作

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

將 /usr/local/bin 添加至 $PATH 環境變數中,要註意的是,.bash_profile中的內容會和其他shell共用,.bashrc中的內容僅僅bash會載入

echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

運行以下命令,確保 Homebrew 運行正常

brew doctor

使用

brew install <package_name> # 安裝包
brew uninstall <package_name> # 卸載包
brew upgrade <package_name> # 更新包
brew search <package_name> # 搜索包
brew update # 更新所有安裝過的包(包括homebrew)
brew list --versions # 列出所有安裝過的包(包括版本號)

cask

Homebrew 是下載源碼解壓,然後 ./configure && make install ,同時會包含相關依賴庫,並自動配置好各種環境變數

Homebrew Cask 是在 Homebrew 基礎上的一個增強工具,用來安裝 Mac 上的 GUI 程式應用包(.dmg/.pkg)。它是下載程式包解壓到統一的目錄中(/opt/homebrew-cask/Caskroom),省掉了自己去下載、解壓、拖拽(安裝)等步驟,然後再軟鏈到~/Applications/目錄下, 非常方便,而且還包含很多在 AppStore 里沒有的常用軟體

所以,Homebrew 一般管理第三方庫和命令行工具,而 Homebrew Cask 可以看作是 APP Store 的補充

使用 brew search 命令搜索 google-chrome 時

$ brew search google-chrome
==> Casks
google-chrome
homebrew/cask-versions/google-chrome-beta
homebrew/cask-versions/google-chrome-canary
homebrew/cask-versions/google-chrome-dev

表示 google-chrome 只能用 brew cask 命令來安裝

cask 的常用命令如下,cask 只能更新所有包,而不能更新單個包

brew cask install <package_name> # 安裝程式包
brew cask uninstall <package_name> # 卸載程式包
brew cask list  # 列出安裝過的程式包
brew cask upgrade # 更新所有安裝過的包(包括homebrew)

兩件逸事

一、演算法面試失敗

Homebrew 的創始人 Max Howell,在 2015 年初曾去 Google 面試,因為 “白板” 寫演算法題「翻轉二叉樹」失敗,憤而發 twitter 諷刺

Google: 90% of our engineers use the software you wrote (Homebrew), but you can't invert a binary tree on a whiteboard so fuck off.

二、移除 MongoDB

MongoDB 在 2018 年 10 月宣佈將開源 License 從 GNU AGPLv3 切換到 Server Side Public License(SSPL),以此回應 AWS 等雲廠商將 MongoDB 以服務的形式提供給用戶而沒有回饋社區的行為。SSPL 明確要求托管 MongoDB 實例的雲廠商要麼獲取商業許可證要麼向社區開放其服務源碼。

但是開源社區對此似乎有不少反對聲音,許多人認為 SSPL 是具有針對性的,對特定類別的用戶具有嚴重歧視性,這違反了開源的真諦,所以 Fedora 認定 SSPL 不是一個自由軟體許可,紅帽和 Debian 也宣佈從發行版中刪除 MongoDB

Homebrew core 列表目前已經將 MongoDB 移除,不再為其提供支持

所以,使用 brew doctor 命令時,會有一個如下的 warning

Warning: Some installed formulae are not readable:
  mongodb: unknown version :mountain_lion

您的分享是我們最大的動力!

更多相關文章
  • 常見的color, font-family, background 等css屬性都能夠設置鏈接的樣式,a鏈接的特殊性在於能夠根據它們所處的狀態來設置它們的樣式。a標簽與人交互的4個狀態屬於偽類狀態切換,常見的鏈接四種狀態為:a:link - 普通的、未被訪問的鏈接a:visited - 用戶已訪問的... ...
  • CSS文本屬性可定義文本的外觀,這是毫無疑問的,其次css可以通過以下屬性改變文字的排版,比方說letter-spacing實現字元間距text-indent: 2em;完成首行縮進2字元word-spacing改變了文字的間距,direction改變文本從左至右的閱讀順序,white-space處... ...
  • 對象的遍歷 對象可以當做數組處理,使用for in var person={}; person.name="cyy"; person.age=25; person.infos=function(){ alert(this.name+" "+this.age); } for(var i in pers ...
  • 前次用 electron-packager 打包成功,這次改用 electron-builder 打包,然後根據項目中實際需要進行選擇使用。 第一步:全局安裝 electron-builder,便於系統通用 npm install -g electron-builder 或 cnpm install ...
  • CSS 字體屬性定義文本的字體系列、大小、加粗、風格(如斜體)和變形(如小型大寫字母)font-family控制字體,由於各個電腦系統安裝的字體不盡相同,但是基本裝有黑體、宋體與微軟雅黑這三款字體,通常這樣寫font-family:"黑體", "宋體","Microsoft YaHei" font-... ...
  • jQuery初學者筆記 一 Mirror王宇陽 by jQuery語法 jQuery語法是通過選取HTML元素,並對選取的元素進行操作 基礎語法: 所有jQuery語句用“$”符號開始 jQuery函數位於一個document ready函數中,我們需要在js中載入該函數文檔 選擇器語法: jQue ...
  • JavaScript中的基本數據類型 在JS中,有6種基本數據類型: 1. string 2. number 3. boolean 4. null 5. undefined 6. Symbol(ES6) 除去這六種基本數據類型以外,其他的所有變數數據類型都是Object。基本類型的操作在JS底層中是 ...
  • 一、Overview angular 入坑記錄的筆記第一篇,完成開發環境的搭建,以及如何通過 angular cli 來創建第一個 angular 應用。入坑一個多星期,通過學習官方文檔以及手摸手的按教程敲官方的快速上手項目,很像後端,嗯,完美的契合了我這種後端開發人員。 對應官方文檔地址: 搭建本 ...
一周排行
  • 比如要拆分“呵呵呵90909086676喝喝999”,下麵當type=0返回的是中文字元串“呵呵呵,喝喝”,type=1返回的是數字字元串“90909086676,999”, private string GetStrings(string str,int type=0) { IList<strin ...
  • Swagger一個優秀的Api介面文檔生成工具。Swagger可以可以動態生成Api介面文檔,有效的降低前後端人員關於Api介面的溝通成本,促進項目高效開發。 1、使用NuGet安裝最新的包:Swashbuckle.AspNetCore。 2、編輯項目文件(NetCoreTemplate.Web.c ...
  • 2020 年 7 月 30 日, 由.NET基金會和微軟 將舉辦一個線上和為期一天的活動,包括 微軟 .NET 團隊的演講者以及社區的演講者。本次線上大會 專註.NET框架構建微服務,演講者分享構建和部署雲原生應用程式的最佳實踐、模式、提示和技巧。有關更多信息和隨時瞭解情況:https://focu... ...
  • #abp框架Excel導出——基於vue #1.技術棧 ##1.1 前端採用vue,官方提供 UI套件用的是iview ##1.2 後臺是abp——aspnetboilerplate 即abp v1,https://github.com/aspnetboilerplate/aspnetboilerp ...
  • 前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者:碧茂大數據 PS:如有需要Python學習資料的小伙伴可以加下方的群去找免費管理員領取 input()輸入 Python提供了 input() 內置函數從標準輸入讀入一 ...
  • 從12年到20年,python以肉眼可見的趨勢超過了java,成為了當今It界人人皆知的編程語言。 python為什麼這麼火? 網路編程語言搜索指數 適合初學者 Python具有語法簡單、語句清晰的特點,這就讓初學者在學習階段可以把精力集中在編程對象和思維方法上。 大佬都在用 Google,YouT ...
  • 在社會上存在一種普遍的對培訓機構的學生一種歧視的現象,具體表現在,比如:當你去公司面試的時候,一旦你說了你是培訓機構出來的,那麼基本上你就涼了,那麼你瞞著不說,然後又通過了面試成功入職,但是以後一旦在公司被髮現有培訓經歷,可能會面臨被降薪,甚至被辭退,培訓機構出來的學生,在用人單位眼裡就是能力低下的 ...
  • from typing import List# 這道題看了大佬寫的代碼,經過自己的理解寫出來了。# 從最外圍的四周找有沒有為O的,如果有的話就進入深搜函數,然後深搜遍歷# 判斷上下左右的位置是否為Oclass Solution: def solve(self, board: List[List[s ...
  • import requests; import re; import os; # 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, li ...
  • import requests; import re; import os; import parsel; 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537. ...