每次brew update,都会把所有安装的命令行软件全部更新到最新,于是乎就导致了一个问题。某个程序是依赖一个低版本的库编译的,但是它升级到了高版本,但是原程序指向的还是低版本的库,于是程序就蹦沙卡拉卡了。比如下面的mpv就经常出这个问题。

经过一番摸索,完美解决方案如下。

首先,重新编译高版本依赖的ffmpeg

brew reinstall ffmpeg --with-chromaprint --with-fdk-aac --with-fontconfig --with-freetype --with-frei0r --with-game-music-emu --with-libass --with-libbluray --with-libbs2b --with-libcaca --with-libgsm --with-libmodplug --with-libsoxr --with-libssh --with-libvidstab --with-libvorbis --with-libvpx --with-opencore-amr --with-openh264 --with-openjpeg --with-openssl --with-opus --with-rtmpdump --with-rubberband --with-schroedinger --with-sdl2 --with-snappy --with-speex --with-tesseract --with-theora --with-tools --with-two-lame --with-wavpack --with-webp --with-x265 --with-xz --with-zeromq --with-zimg

然后重新编译mpv

brew reinstall mpv --with-bundle --with-jack --with-libaacs --with-libarchive --with-libbluray --with-libcaca --with-libdvdnav --with-libdvdread --with-pulseaudio --with-rubberband --with-uchardet --with-vapoursynth

这样,就把程序里面引用的各种依赖问题解决了。这时候,播放器就可以正常运行了。