成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何在linux中使用Homebrew

小編給大家分享一下如何在linux中使用Homebrew,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)專注于貢覺企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站開發(fā)。貢覺網(wǎng)站建設(shè)公司,為貢覺等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

Homebrew 項(xiàng)目最初是為了給 Mac 用戶提供一個(gè)非官方的 Linux 式的包管理器。用戶很快就愛上了它友好的界面以及幫助性的提示,而且,它已經(jīng)被移植到 Linux 系統(tǒng) —— 這看起來像是一個(gè)奇怪的命運(yùn)轉(zhuǎn)折。

一開始,有兩個(gè)分開的項(xiàng)目分別針對 macOS 和 Linux (Homebrew 與 Linuxbrew),但是現(xiàn)在是由 Homebrew 核心管理著這兩個(gè)操作系統(tǒng)。由于我正 從 Mac 切換到 Linux,所以一直在研究我在 macOS 最常用的開源軟件在 Linux 表現(xiàn)如何,最終,我很高興地發(fā)現(xiàn) Homebrew 對 Linux 的支持太贊了!

為什么要在 Linux 使用 Homebrew 呢?

長期使用 Linux 的用戶對 Homebrew 的第一反應(yīng)是:“為什么不直接使用……呢”,省略號(hào)代表他們喜歡的某個(gè) Linux 包管理器?;?Debian 的系統(tǒng)早就有了 apt,基于 Fedora 的系統(tǒng)則有 dnf 和 yum,并且像 Flatpak 跟 AppImage 這樣的項(xiàng)目,在兩種系統(tǒng)上都能流暢運(yùn)行。我花了不少時(shí)間嘗試這些技術(shù),不得不說,它們都有其強(qiáng)大之處。

那我為什么還要 堅(jiān)持使用 Homebrew 呢?首先,我對它非常熟悉。在為我過去使用的專有軟件尋找開源替代品的過程中,我已經(jīng)學(xué)會(huì)了許多使用方法,而保持一些熟悉的東西,比如 Homebrew,可以讓我專注于一次學(xué)習(xí)一件事情,而不是被不同系統(tǒng)間的差異搞垮。

此外,我沒有看到哪一個(gè)包管理器像 Homebrew 一樣,對用戶如此友好。正如默認(rèn)的幫助命令一樣,命令井然有序:

$ brew -hExample usage:  brew search [TEXT|/REGEX/]  brew info [FORMULA...]  brew install FORMULA...  brew update  brew upgrade [FORMULA...]  brew uninstall FORMULA...  brew list [FORMULA...] Troubleshooting:  brew config  brew doctor  brew install --verbose --debug FORMULA Contributing:  brew create [URL [--no-fetch]]  brew edit [FORMULA...] Further help:  brew commands  brew help [COMMAND]  man brew  <https://docs.brew.sh>

過于簡短的輸出可能會(huì)被誤解為它功能局限,但是你簡單看看每一個(gè)子命令,都有很豐富的功能。雖然上面的列表只有短短 23 行,但對高級(jí)用戶來說,光是子命令 install 就包含整整 79 行的幫助信息:

$ brew --help | wc -l23$ brew install --help | wc -l79

它可以選擇忽略或者安裝依賴關(guān)系,也可以選擇用源代碼編譯以及用什么編譯器來編譯某個(gè)確切的上游 Git 提交,或者選擇應(yīng)用的官方 “灌裝” 版??偠灾?,Homebrew 即適合新手,也同樣能滿足老鳥。

開始在 Linux 使用 Homebrew

如果你想要試著使用 Homebrew,可以用這個(gè)單行腳本在 Mac 或者 Linux 上進(jìn)行安裝:

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

這條命令會(huì)立即開始安裝 Homebrew。如果你比較謹(jǐn)慎,可以使用 curl 將該文件下載到本地,檢查完畢之后再運(yùn)行。

$ curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh --output homebrew_installer.sh$ more homebrew_installer.sh # 審核該腳本,直到你覺得沒問題了$ bash homebrew_installer.sh

對 Linux 的安裝步驟還包括如何配置點(diǎn)文件,對于 Debian 系統(tǒng)來說是 ~/.profile,對于 Fedora 系統(tǒng)是 ~/.bash_profile。

$ test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)$ test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile$ echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile

為了確認(rèn)已經(jīng)安裝好,Homebrew 團(tuán)隊(duì)提供一個(gè)空的 hello “秘方” 供測試:

$ brew install hello==> Downloading https://linuxbrew.bintray.com/bottles/hello-2.10.x86_64_linux.bottle.tar.gz######################################################################## 100.0%==> Pouring hello-2.10.x86_64_linux.bottle.tar.gz?  /home/linuxbrew/.linuxbrew/Cellar/hello/2.10: 52 files, 595.6KB

看起來安裝毫無問題,讓我來試試更多操作。

命令行工具 Brew

Homebrew 宣稱自己是一款默認(rèn)只 “安裝你需要而 [Linux] 沒有的東西”的應(yīng)用程序。

你可以用 brew 命令安裝任何打包在 Homebrew 中的命令行軟件。這些包的定義文件叫做 “秘方formula”,而且它們通過“瓶子bottle”來編譯并分享。在 Homebrew 的世界里,還有許多 “啤酒方面” 的術(shù)語,但這個(gè)包管理器主要目的是讓軟件便于使用。

都有些什么樣的軟件呢?對我這樣的技術(shù)玩家(既然你已經(jīng)在讀這篇文章,估計(jì)你也是)來說最方便的東西。例如,便利的 tree 命令,可以展示目錄結(jié)構(gòu),或者 pyenv,我用它來 在 Mac 管理不同版本 Python。

你可以用 search 命令查看所有可以安裝的“秘方”,在后面加上 wc 命令看看一共有多少:

# -l 選項(xiàng)統(tǒng)計(jì)行數(shù)$ brew search | wc -l    5087

迄今為止,一共有 5000 多個(gè) “秘方”,這囊括了很多軟件。需要注意的是:并非所有 “秘方” 都能在 Linux 運(yùn)行。在 brew search --help 輸出中有一節(jié)提到可以按軟件運(yùn)行的操作系統(tǒng)來篩選軟件。它會(huì)在瀏覽器打開用于每個(gè)操作系統(tǒng)的軟件倉庫。我運(yùn)行的是 Fedora,所以我會(huì)用它來試一試:

$ brew search --fedora tree

瀏覽器打開了網(wǎng)址 https://apps.fedoraproject.org/packages/s/tree,向我展示了所有 Fedora 的可用選項(xiàng)。你也可以通過其它方法進(jìn)行瀏覽?!懊胤健?被集中整理到由操作系統(tǒng)劃分的核心倉庫當(dāng)中(Mac 在 Homebrew Core,Linux 在 Linux Core)。同樣也可以通過 Homebrew API 在網(wǎng)頁顯示。

即使有這些選擇,我還是通過其它用戶的推薦找到很多新工具。我列出一些我最喜歡的工具,你可以在里面找點(diǎn)靈感:

  • pyenv、rbenv 和 nodenv 用來管理(相應(yīng)的) Python、Ruby 和 Node.js 版本

  • imagemagick 用于腳本化編輯圖片

  • pandoc 用于腳本化轉(zhuǎn)換文檔格式(我通常將 .docx 文件轉(zhuǎn)成 .md 或者 .html)

  • hub 為 GitHub 用戶提供 更好的 Git 體驗(yàn)

  • tldr 展示了命令工具的使用范例

想要深入了解 Homebrew,可以去 trldr 頁面 看看,比起應(yīng)用的 man 頁面,它要友好得多。使用 search 命令確認(rèn)你可以安裝:

$ brew search tldr==> Formulaetldr ?

太好了!對勾說明你可以安裝。那么繼續(xù)吧:

$ brew install tldr==> Downloading https://linuxbrew.bintray.com/bottles/tldr-1.3.0_2.x86_64_linux.bottle.1.tar.gz######################################################################## 100.0%==> Pouring tldr-1.3.0_2.x86_64_linux.bottle.1.tar.gz?  /home/linuxbrew/.linuxbrew/Cellar/tldr/1.3.0_2: 6 files, 63.2KB

Homebrew 提供了編譯好的二進(jìn)制文件,所以你不必在本地機(jī)器上從源碼編譯。這能節(jié)省很多時(shí)間,也不用聽 CPU 風(fēng)扇的噪聲。我很欣賞 Homebrew 的另外一點(diǎn)是,你不完全理解每一個(gè)選項(xiàng)的含義也不會(huì)影響正常使用。若你想自己編譯,可以在 brew install 命令后面加上 -s 或者 --build-from-source 標(biāo)識(shí),這樣就能從源碼編譯 “秘方”(即便已經(jīng)有一個(gè) “瓶子” 存在)。

同樣,軟件底層的復(fù)雜性也很有意思。使用 info 可以查看 tldr 軟件的依賴管理,“秘方” 的源代碼存放在磁盤上的何處,甚至還能查看公開分析。

$ brew info tldrtldr: stable 1.3.0 (bottled), HEADSimplified and community-driven man pageshttps://tldr.sh/Conflicts with:  tealdeer (because both install `tldr` binaries)/home/linuxbrew/.linuxbrew/Cellar/tldr/1.3.0_2 (6 files, 63.2KB) *  Poured from bottle on 2020-06-08 at 15:56:15From: https://github.com/Homebrew/linuxbrew-core/blob/master/Formula/tldr.rb==> DependenciesBuild: pkg-config ?Required: libzip ?, curl ?==> Options--HEAD        Install HEAD version==> Analyticsinstall: 197 (30 days), 647 (90 days), 1,546 (365 days)install-on-request: 197 (30 days), 646 (90 days), 1,546 (365 days)build-error: 0 (30 days)

從 Mac 到 Linux 的一點(diǎn)不足

在 macOS,Homebrew 的 cask(“酒桶”)子命令可以讓用戶使用命令行安裝、管理整個(gè)應(yīng)用軟件。不幸的是,cask還不能在任何 Linux 發(fā)行版上使用。我在安裝一個(gè)開源工具時(shí)發(fā)現(xiàn)了這點(diǎn):

$ brew cask install tuskError: Installing casks is supported only on macOS

我在 論壇上 問了一下,很快得到其他用戶的反饋。總結(jié)一下,方案如下:

  • 復(fù)刻 Homebrew 項(xiàng)目,構(gòu)建這個(gè)特性,然后像別人展示其價(jià)值

  • 給該軟件寫一個(gè) “秘方”,然后從源代碼編譯

  • 為該軟件創(chuàng)建一個(gè)第三方倉庫

最后一個(gè)是我最感興趣的。Homebrew 通過 創(chuàng)建并維護(hù) “水龍頭tap” (另一個(gè)受啤酒影響的術(shù)語)管理第三方倉庫。隨著你對系統(tǒng)越來越熟悉,并想加入生態(tài)系統(tǒng), “水龍頭” 是值得研究的。

備份 Homebrew 的安裝記錄

我最中意的 Homebrew 特性之一就是你可以像其它任何 用版本控制工具來備份點(diǎn)文件 一樣備份你的安裝記錄。為了實(shí)現(xiàn)這個(gè)目的,Homebrew 提供 bundle(“捆扎”)子命令,它可以控制一個(gè)叫 dump(“傾倒”)的子命令生成一個(gè) Brewfile。這個(gè)文件包含你目前所有安裝的工具列表,可以重復(fù)使用。進(jìn)入你想使用的目錄然后運(yùn)行命令,它會(huì)根據(jù)你所安裝的軟件生成 Brewfile

$ cd ~/Development/dotfiles # This is my dotfile folder$ brew bundle dump$ ls BrewfileBrewfile

當(dāng)我換了一臺(tái)機(jī)器,想要安裝一樣的軟件時(shí),進(jìn)入含有 Brewfile 的文件夾,然后重新安裝:

$ ls BrewfileBrewfile$ brew bundle

它會(huì)在我的新機(jī)器上安裝所有列出的 “秘方”。

在 Mac 和 Linux 同時(shí)管理 Brewfile

Brewfile 非常適合備份你目前的安裝記錄,但是如果某些在 Mac 上運(yùn)行的軟件無法運(yùn)行在 Linux 呢?或者剛好相反?我發(fā)現(xiàn)不管是 Mac 還是 Linux,如果軟件無法在當(dāng)前操作系統(tǒng)運(yùn)行,Homebrew 會(huì)優(yōu)雅地忽略那一行。如果它遇到不兼容的請求(比如使用 brew 在 Linux 安裝 “酒桶cask” 時(shí)),它會(huì)選擇跳過,繼續(xù)安裝過程:

$ brew bundle --file=Brewfile.example Skipping cask licecap (on Linux)Skipping cask macdown (on Linux)Installing fishHomebrew Bundle complete! 1 Brewfile dependency now installed.

為了保持配置文件的簡潔,我在兩個(gè)操作系統(tǒng)上使用同一份 Brewfile,因?yàn)樗话惭b與操作系統(tǒng)相關(guān)的版本,所以我一直沒有遇到任何問題。

使用 Homebrew 管理軟件包

Homebrew 已經(jīng)成了我必備的命令行工具,由于我很熟悉它,所以在 Linux 上的體驗(yàn)也充滿樂趣。Homebrew  讓我的工具井然有序,并且時(shí)刻保持更新,我愈發(fā)欣賞它在實(shí)用性與功能上找到的平衡點(diǎn)。我更喜歡將軟件包管理的細(xì)節(jié)保持在用戶需要了解的最小程度,大多數(shù)人都會(huì)從中受益。如果你已經(jīng)很熟悉  Linux 包管理器了,Homebrew 可能會(huì)讓你覺得很基礎(chǔ),但稍微深入一點(diǎn)看,就會(huì)發(fā)現(xiàn)它的高級(jí)選項(xiàng)遠(yuǎn)遠(yuǎn)超過本文的內(nèi)容。

以上是“如何在linux中使用Homebrew”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁名稱:如何在linux中使用Homebrew
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article20/ghhojo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、品牌網(wǎng)站建設(shè)、建站公司、響應(yīng)式網(wǎng)站、ChatGPT、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
那坡县| 岑溪市| 仲巴县| 阿巴嘎旗| 利津县| 龙口市| 安塞县| 阿克| 白水县| 兴山县| 芜湖县| 秦安县| 耒阳市| 三河市| 菏泽市| 阿克陶县| 汨罗市| 藁城市| 龙山县| 调兵山市| 南丹县| 迁安市| 七台河市| 营山县| 柯坪县| 虹口区| 盐城市| 英山县| 金堂县| 万州区| 上思县| 新干县| 南安市| 新巴尔虎右旗| 安西县| 丘北县| 德昌县| 潍坊市| 山阴县| 林周县| 定南县|