macOS 10.14.5 を使用している。

 

リンク切れのシンボリックリンクを一斉検挙する方法のメモ

>find -L . -type l    

(最後の文字は小文字のエル)  

 

これで、カレントディレクトリに存在するリンク切れシンボリックリンクを見つけることができる。

それらを一斉に削除したければ

 

>find -L . -type l  -exec rm {} \;   

 


 

久しぶりに MacBook の上で Python や R でいろいろしていると、何かをした拍子にエラーが出るようになっていた。

普段はデスクトップでやっているので気付かなかった。

いろいろバージョンをアップグレードしないといけないのか。

 

まずは Python のアップデート、

 

> pyenv install 3.7.0   

zipimport.ZipImportError: can't decompress data; zlib not available

 

エラーが出た。むむむ

zlib のインストール

 

>brew reinstall zlib      

Error: Permission denied @ unlink_internal - Error: Permission denied @ unlink_internal - /usr/local/share/ghostscript/9.23/Resource/CIDFSubst/LiHeiPro.ttf

 

これも上のようなエラーが続発。

パーミッションの問題を最初疑ったが、調べて見るとシンボリックリンク先のファイルが存在していなかった。

エラーの出たシンボリックリンクを削除しても良かったかも知れないが念のため /tmp へ移動。そして再実行したところ別のシンボリックリンクで同様のエラーが出た。

 

リンク切れのシンボリックリンクを一斉検挙するために

 

>find -L . -type l -exec sudo mv {} /tmp \;   

 

そしてようやく

 

>brew reinstall zlib      

 

が成功。

そのときのログに表示されていた以下の指示に従って

 

For compilers to find zlib you may need to set:

  export LDFLAGS="-L/usr/local/opt/zlib/lib"

  export CPPFLAGS="-I/usr/local/opt/zlib/include"

 

For pkg-config to find zlib you may need to set:

  export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig"

 

LDFLAGS、CPPFLAGS, PKG_CONFIG_PATH の3つの環境変数にそれぞれの値を追加するように .zshrc に記述を追加。(私は zsh を使っているので)

 

すると、pyenv install 3.7.0 が成功した。