<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      brew挖坑填坑記

      前言

      前段時(shí)間被一公眾號(hào)安利了款替代Docker Desktop 的mac軟件——OrbStack,號(hào)稱快速、內(nèi)存占用小,還能用來(lái)管理創(chuàng)建虛擬機(jī)等。
      感受過(guò)Docker Desktop的詬病以及頻繁使用虛擬機(jī)的需求,毫不猶豫的上官網(wǎng)看介紹準(zhǔn)備體驗(yàn)一番。

      當(dāng)看到安裝部分時(shí),可通過(guò) brew 安裝,心想著這不挺好的,而后看到一行 macOs >12 小字,emm 這不是逼著升級(jí)系統(tǒng)么?
      在網(wǎng)上 macOs 升級(jí)后的各種問(wèn)題,猶豫了下,最終還是鐵下心來(lái)進(jìn)行了升級(jí)。萬(wàn)幸,系統(tǒng)升級(jí)后并沒有出現(xiàn)網(wǎng)友所說(shuō)的嚴(yán)重(無(wú)法開機(jī)、卡頓、掉電等)情況。

      安裝升級(jí)

      打開終端 brew install orbstack 歷經(jīng)一段時(shí)間后安裝成功。運(yùn)行軟件操作頁(yè)面以及功能正如官網(wǎng)介紹那般,非常符合我心意。
      而后繼續(xù)通過(guò)官網(wǎng)深入了解了OrbStack,新的版本修復(fù)了些bug,而且還有更好的體驗(yàn),然后對(duì)比了下自己安裝的版本稍微低了點(diǎn),心想著那不得更新體驗(yàn)下。
      怎么更新呢? 原本電腦的上的很多軟件都是通過(guò) brew 進(jìn)行管理,那就用 brew upgrade 升級(jí)下看看唄。
      使用 brew upgrade --cask orbsack 后再看下版本,咦!what?為啥沒有更新?隨后上 brew 官網(wǎng)查詢了下 orbstack 的版本1.1.0_16370

      這就讓我郁悶了,不是能查到最新版本么,為啥不能更新版本? 而且更新的時(shí)候也沒像最開始安裝時(shí)展示些信息,難道是緩存導(dǎo)致?想到這里網(wǎng)上搜索了下 brew 緩存路徑。
      通過(guò) cd $(brew --cache) 命令進(jìn)入緩存目錄,在Cask文件里還真有舊版本的安裝包文件,二話不說(shuō)直接刪除文件,然后執(zhí)行brew uninstall orbstack 。 心想這下重新安裝總可以了吧

      觀察分析

      興致勃勃的來(lái)了個(gè) brew install --cask orbstack 這次仔細(xì)觀察了下 brew 安裝時(shí)的信息,恩哼?what?為啥還是之前的版本?

      在疑惑的同時(shí)還注意到brew安裝時(shí)的步驟:
      1、先下了一個(gè) orbstack.rb 文件
      2、然后在下載 dmg 的安裝包
      3、而后再進(jìn)行依賴包下載安裝 (若有)
      4、最后安裝軟件。

      到這基本可以確定的是 orbstack.rb 文件安裝就是舊版的 orbstack。
      再次回到 brew 的緩存目錄,進(jìn)入 downloads 目錄下看到帶很長(zhǎng)校驗(yàn)碼前綴的 orbstack.rb 文件,查看文件內(nèi)容果然寫的就是舊版的。

      那怎么辦呢?這會(huì)想起最開始安裝brew時(shí)了解到的信息: 桌面軟件的安裝是由 homebrew-cask 擴(kuò)展來(lái)管理的,而brew本身以及其擴(kuò)展的更新就是 git pull 最新的master分支代碼。
      嗯?難道非得更新 brew 來(lái)才能安裝這軟件么?可我不想更新brew ,因?yàn)檫@玩意一更新就更新安裝的其他軟件(雖然可通過(guò)pin來(lái)禁止更新)。

      挖坑解決

      坑1

      這時(shí)候又奇思異想了,直接更新 homebrew-cask 的代碼不就行了?簡(jiǎn)直是一氣呵成,堪稱完美。

      cd $(brew --repo homebrew/cask) && git pull && brew install --cask orbstack

      看著安裝步驟一步步符合預(yù)期,心想著這總成了吧?what?
      突然出現(xiàn)了一行報(bào)錯(cuò):Error: SHA256 mismatch \n Expected:xxx ; Actual:xxx
      什么玩意?sha256 不匹配?看到這想到一般文件下載時(shí)都有什么校驗(yàn)碼而且會(huì)用到 sha256算法,然后回到 緩存 downloads 目錄查看 orbstack.rb 文件,版本信息是最新啊。

      然后又回到官網(wǎng)orbstack介紹界面,在 /api/cask/orbstack.json 在 ruby_source_checksum 字段找到了報(bào)錯(cuò)信息里 Actual 的校驗(yàn)碼。
      難道是哪里還有舊版本的信息沒有更新。關(guān)鍵字 api ? 緩存目錄下不是也有 api 、 api-source . 遍歷下看到幾個(gè) cask 相關(guān) json 文件。

      最后在 cask.jsw.json 文件中找到了 Expected的校驗(yàn)碼。那么再更新下這個(gè)文件不就可以安裝新版本了么?那這個(gè)最新文件哪里找呢?

      坑2

      帶著上述的問(wèn)題,又回到了官網(wǎng)找到所有cask的 cask.json, 下載后打開跟 cask.jsw.json 對(duì)比了下結(jié)構(gòu)還有點(diǎn)不一樣,少了頂層的信息。
      卒~~ 那既然全部替換不行那就部分替換唄??jī)H替換 orbstack 部分的信息,但是奈何文件有點(diǎn)大且這段信息還是json的字符串格式,手動(dòng)替換著實(shí)有點(diǎn)難。

      觀察json文件 orbstack 信息是在 playload 下數(shù)組中的第n元素,那么只要取出playload循環(huán)遍歷判斷是否包含 orbstack 信息,然后覆蓋值即可。而后備份了源文件,又寫了串java代碼使用 fastjson 把數(shù)據(jù)替換。

      再次 brew install --cask orbstack . 然后又出現(xiàn)了新報(bào)錯(cuò),驗(yàn)證完整性失敗(簽名不匹配),還給出地址?整個(gè)人都麻了...
      "Failed to verify integrity (signature mismatch) of: https://formulae.brew.sh/api/cask.jws.json "

      解決

      根據(jù)報(bào)錯(cuò)的地址打開發(fā)現(xiàn)這不正是我需要的那份完整文件么?這程序設(shè)計(jì)的真好,頓時(shí)感覺老香了。
      下載替換原始的 cask.jws.json 文件,再次 brew install --cask orbstack .
      哈哈,安裝成功!

      小結(jié)

      不用更新 brew 版本方式升級(jí)其他桌面應(yīng)用軟件,步驟如下(應(yīng)該brew更新的邏輯也是如下吧):

      • 通過(guò) git pull 更新桌面應(yīng)用軟件的下載文件,即 homebrew-cask 下各目錄中的 *.rb
      • 手動(dòng)下載 cask.jws.json 文件,替換brew緩存目錄下cask.jws.json文件 $HOME/Library/Caches/Homebrew/api/cask.jws.json

      最后

      為了一個(gè)新軟件的體驗(yàn),然后心驚膽戰(zhàn)的升級(jí)了一波系統(tǒng),然后給又自己挖了兩坑,最后耗時(shí)7、8個(gè)小時(shí)(包括系統(tǒng)升級(jí))才把問(wèn)題解決。
      一系列的連鎖反應(yīng),哎!我太難了,沒事體驗(yàn)它干啥玩意?升個(gè)什么玩意最新版本?鬼知道這么折騰后會(huì)不會(huì)有其他問(wèn)題,后續(xù)在研究研究 brew 背后是如何進(jìn)行管理安裝軟件的吧。

      posted @ 2023-11-19 23:58  zeotoone  閱讀(929)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 中文字幕乱码熟妇五十中出| 露脸叫床粗话东北少妇| 中文字幕成熟丰满人妻| 奇米777四色影视在线看| 国产日韩精品免费二三氏| 成人区精品一区二区不卡| 国产无遮挡又黄又爽不要vip软件| 一区二区三区四区亚洲自拍| 国产精品国产亚洲看不卡| 韩国精品一区二区三区| 99久久国产精品无码| 无码专区 人妻系列 在线| 免费无码一区无码东京热 | 人妻日韩人妻中文字幕| 精品国产乱码久久久人妻| 久久天天躁夜夜躁狠狠| 中文人妻av高清一区二区| 国产gaysexchina男外卖| 嫩草成人AV影院在线观看| 欧美黑人添添高潮a片www| 欧美日产国产精品| 国产成人AV在线免播放观看新| 国产亚洲精品第一综合另类| 国产精品一品二区三区日韩| 国产一区二区三区导航| 久久人妻精品白浆国产| 久久九九日本韩国精品| 欧美乱妇高清无乱码免费| 中文字幕日韩精品有码视频| 免费天堂无码人妻成人av电影| 午夜福利在线观看6080| 国产suv精品一区二区| 吉川爱美一区二区三区视频| 67194熟妇在线观看线路| 鲁大师在线视频播放免费观看| 亚洲国产精品第一二三区| 亚洲avav天堂av在线网爱情| 国产午夜大地久久| 激情综合色综合啪啪五月| 2021亚洲国产精品无码 | 99riav国产精品视频|