Elixir - MacOSX深色主題上的Observer爬坑記錄

Big Sur 上有些問題,具體解決可以參考 http://www.itdecent.cn/p/cf70b835fba5

Elixir/Erlang 有個超贊的開箱即用的運(yùn)行時信息觀察器,這個是其他語言至今都還沒有的,得益于Erlang的Actor模型和工作機(jī)制,開啟這個觀測器,完全不會影響和阻礙系統(tǒng)的正常運(yùn)行。

因此,在即使在生產(chǎn)環(huán)境,你也可以毫無心理負(fù)擔(dān)的使用。甚至,更牛叉的是,由于Erlang的天生分布式,你甚至能夠在本地,用這個觀察器,觀察遠(yuǎn)程生產(chǎn)節(jié)點(diǎn)的運(yùn)行信息。

正常啟動, 在iex命令行中輸入 :observer.start() 回車

iex(1)> :observer.start()

image.png
image.png
image.png
image.png
image.png

看~ 你的程序的運(yùn)行時的一切信息,都能被可視化的查看,如同開啟上帝視角。

你羨慕嗎?想要嗎?


然而,自從MacOS多了一個深色主題模式,每次我打開 Observer , 看到的卻是成了這個效果

image.png

我也在微信群里詢問其他人,其他人又說沒問題 ,讓我不斷懷疑自己這個問題,我便只好忍 再忍 一直忍,困擾了我一年多兩年了。

每打開一次,便不爽一次,通過分析, erlang 的 observer 用的GUI是 wxWidgets,然后我在對比,推斷問題可能出在 wxWidgets 上,那便動手,

brew upgrade wxmac

到最新版了,還是不行. wxmac 是 wxWidgets 的mac包名.

再看,brew 上 wxmac (wxwidgets)最新是 3.0.x
而 wxwidgets 的源代碼已經(jīng)到了 3.1.4 (也稱 wx-3.2) 了

有源代碼,這應(yīng)該是難不倒我了.

下載源碼,編譯,安裝,
一頓操作猛如虎
結(jié)果問題原地杵

還是不行,(現(xiàn)在推斷起來,應(yīng)該是 brew install erlang 沒有用源碼構(gòu)建方式)

無奈,問題只好再繼續(xù)掛起。
再后來,Phoenixframework 1.4.x 出了LiveView, 并用LiveView實(shí)現(xiàn)了LiveDashboard, 直接在瀏覽器上就可以看了,內(nèi)容雖然少了點(diǎn),但也差不多夠用了。 對 observer 的這個問題,也就沒那么糾結(jié)了,但始終不爽~

image.png

再次贊嘆,Elixir的世界,就是這么屌。


今天,偶然有打開了 observer, 再忍不住,網(wǎng)絡(luò)上搜索信息,看到,確實(shí),wxWidgets是到了 3.1.3 版本才正式支持了深色模式,看到源碼庫,最新穩(wěn)定版本已經(jīng)是 3.1.4 , 而且,有人在 erlang-22上搞定了,便重新整理了一下思路。有可能是之前,安裝erlang時,沒有重新用源碼編譯,erlang的預(yù)編譯包用的還是 3.0.5 , 而系統(tǒng)上是 3.1.4 ,直接掛了。

再次動手

# 卸載
brew uninstall elixir
brew uninstall erlang
brew uninstall wxmac

# 修改 wxmac 配置,強(qiáng)行指定 wxwidgets 3.1.4
brew edit wxmac

# 把 第4 、第5 行,url and sha265 替換為下面信息,然后保存
  url "https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.4/wxWidgets-3.1.4.tar.bz2"
  sha256 "3ca3a19a14b407d0cdda507a7930c2e84ae1c8e74f946e0144d2fa7d881f1a94"

# 在 50 行左右的 "--with-zlib" 前,插入
      "--enable-compat28",

#保存
image.png
image.png

# 源碼方式安裝 wxmac
brew install --build-from-source wxmac
brew link --overwrite wxmac

brew install fop

brew 安裝 erlang 和 elixir

brew install --build-from-source erlang
brew install elixir

或者 asdf 安裝erlang 和 elixir (推薦)

asdf plugin add erlang
asdf install erlang 23.1.1
asdf global erlang 23.1.1

asdf plugin add elixir
asdf install elixir 1.11.1-otp-23
asdf global elixir 1.11.1-otp-23

再次進(jìn)入 iex , 啟動observer

iex
iex(1)> :observer.start()

正常的頁面回來了, 歐耶~

image.png

分享這個過程,是想說明:

問題總有解決辦法,
當(dāng)前沒能解決,是因?yàn)槲覀兊?知識 經(jīng)驗(yàn) 能力 還有不足

那就努力提升 知識 經(jīng)驗(yàn) 能力,多去思考 探索

藍(lán)蓮花傳送門

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容