注:本文受启发于 Edward 的文章《Elixir - MacOSX 深色主题上的 Observer 爬坑记录》,更多细节请参看 Edward 的文章,谢谢~
背景 Background
进行以下操作之后
- 系统升级到 MacOS Big Sur
- Wxmac 直接使用 Homebrew 升级到最新版(未带上--build-from-source 参数)
- Erlang 直接使用 Homebrew 升级到最新版(未带上--build-from-source 参数)
发现原本深色主题的 Elixir Observer 打不开了,然后重新进行了深色主题的还原,多番尝试之后并不能成功,最后在 Edward 的指导与帮助下才成功还原 Elixir Observer 深色主题,以此记录一下还原过程遇到的问题~
坑点 1 The First Pothole
除了 wxmac 外,erlang 与 elixir 均采用 asdf 的方式安装(这里建议最好能进行科学上网,不然安装速度不是一般的慢)(注意我们在修改 wxmac 的 source 为最新版时配置时可以到GitHub上得到,可以先不用着急着修改 sha256 的值,下载安装失败时控制台会输出正确的 sha256 值,这时你再进行把错误的值替换为正确的值就行了。),发现在采用源码安装最新版的 Erlang 时一直安装不上,原因是 Erlang 源码包对 Big Sur 系统进行了判断限制,这时我们需要去掉这个限制,修改源码包的内容再重新打包回去,执行以下命令
# 移动到asdf下载好的源码包位置
$ cd ~/.asdf/plugins/erlang/kerl-home/archives
# 将OTP解压,此时最新版为 23.1.4
$ tar zxvf OTP-23.1.4.tar.gz
# 解除对Big Sur系统的限制,使用Vim对configure.in文件进行编辑
$ vim ~/.asdf/plugins/erlang/kerl-home/archives/otp-OTP-23.1.4/make/configure.in
# 输入法为英文且未进行编辑状态下输入 /#if __ENV 回车跳转到需要修改的位置,使用Shift+4组合键使得光标跳转到句尾,修改以下内容为
#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > $int_macosx_version && false
# 退出编辑状态,并保存
# 重新打包将源码包还原
# 删除原来的源码包
$ rm OTP-23.1.4.tar.gz
# 重新打包
$ tar czvf OTP-23.1.4.tar.gz otp-OTP-23.1.4
# 删除解压出来的文件夹
$ rm -rf otp-OTP-23.1.4
# 重新使用asdf进行安装
$ asdf install erlang 23.1.4
这时 Erlang 能使用 asdf 成功安装上
坑点 2 The Second Pothole
最后使用 asdf 安装 elixir 时发现不管是什么版本的 elixir,在 global 之后始终还是找不到命令(elixir -v 也好,iex 也好,均找不到命令),最后发现是自己安装的 asdf 姿势不对,elixir 的源码分支没能进行更新,以下给出 Git 结合 zsh 终端的方式来确保 asdf 正常安装
# 拉取最新的asdf源码放到用户下的.asdf目录下,目前最新的分支是v0.8.0
$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.0
# 也可以这样操作拉取到最新asdf分支
$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf
$ cd ~/.asdf
$ git checkout "$(git describe --abbrev=0 --tags)"
# 修改.zshrc使得asdf能在zsh下正常工作
$ echo ". $HOME/.asdf/asdf.sh" >> ~/.zshrc
$ echo ". $HOME/.asdf/completions/asdf.bash" >> ~/.zshrc
# 更新一下asdf
$ asdf update
# 添加erlang与elixir plugin
$ asdf plugin add erlang
$ asdf plugin add elixir
# 更新所有的plugin
$ asdf plugin update --all
执行上述步骤之后,就可以重新安装 erlang 与 elixir 了
网友评论