Error: pathname contains null byte on running Vim on newly upgraded macOS Mojave
Error: pathname contains null byte on running Vim on newly upgraded macOS Mojave
我最近升级到 macOS Mojave 10.14.1,在使用本机 Terminal
或 iTerm
时,vim
命令似乎已损坏。错误看起来像
dudeOnMac:~ freddy$ vim file
dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
Referenced from: /usr/local/bin/vim
Reason: image not found
我发现这个 SuperUser post 并没有完全解决问题。其他一些建议是从头开始重新安装 Vim。所以我做了一个
brew update
brew upgrade vim
但留下以下错误
==> Upgrading vim
Error: The following formula
[#<Dependency: "python" []>, #<Options: []>]
cannot be installed as binary package and must be built from source.
Install the Command Line Tools:
xcode-select --install
所以我按照上面的建议进入并安装了 xcode
,但现在留下了一个新的错误
Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
pathname contains null byte
Error: pathname contains null byte
Please report this bug:
https://docs.brew.sh/Troubleshooting
/usr/local/Homebrew/Library/Homebrew/extend/pathname.rb:265:in `initialize'
/usr/local/Homebrew/Library/Homebrew/extend/pathname.rb:265:in `readlink'
/usr/local/Homebrew/Library/Homebrew/extend/pathname.rb:265:in `resolved_path'
/usr/local/Homebrew/Library/Homebrew/keg.rb:422:in `block in oldname_opt_record'
/usr/local/Homebrew/Library/Homebrew/keg.rb:421:in `each'
/usr/local/Homebrew/Library/Homebrew/keg.rb:421:in `find'
/usr/local/Homebrew/Library/Homebrew/keg.rb:421:in `oldname_opt_record'
/usr/local/Homebrew/Library/Homebrew/keg.rb:535:in `optlink'
/usr/local/Homebrew/Library/Homebrew/keg.rb:432:in `link'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:801:in `link'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:619:in `finish'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:586:in `install_dependency'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:539:in `block in install_dependencies'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:539:in `each'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:539:in `install_dependencies'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:252:in `install'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:187:in `upgrade_formula'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:136:in `block in upgrade_formulae'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:133:in `each'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:133:in `upgrade_formulae'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:111:in `upgrade'
/usr/local/Homebrew/Library/Homebrew/brew.rb:102:in `<main>'
我试图严格按照 homebrew
维护者页面中的步骤 - Error: pathname contains null byte and Broken symlink detection needed 并没有解释确切的问题。
我进去 运行 brew doctor
并尝试一个一个地解决问题。首先是创建不存在的目录 /usr/local/sbin
并添加正确的权限
sudo mkdir -p /usr/local/sbin
sudo chown -R $(whoami) /usr/local/sbin
即使在此之后 运行 brew upgrade vim
仍显示相同的错误
Error: pathname contains null byte
初始 link 中的一个页面建议一些损坏的符号 link 可能导致了这个问题,我进去查看 /usr/local/opt
下有实用程序 link从 Cellar
转到路径,但是 readline
没有指向任何地方就被破坏了
lrwxr-xr-x 1 freddy admin 26B Apr 18 2017 readline ->
这似乎是罪魁祸首,使用
将其删除
rm -rf /usr/local/opt/readline
并做了一个新的 brew upgrade vim
,现在安装了所需的依赖项并成功安装 vim
。 awk
我遇到了同样的问题,我必须使用 brew upgrade gawk
.
来解决
我最近升级到 macOS Mojave 10.14.1,在使用本机 Terminal
或 iTerm
时,vim
命令似乎已损坏。错误看起来像
dudeOnMac:~ freddy$ vim file
dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
Referenced from: /usr/local/bin/vim
Reason: image not found
我发现这个 SuperUser post 并没有完全解决问题。其他一些建议是从头开始重新安装 Vim。所以我做了一个
brew update
brew upgrade vim
但留下以下错误
==> Upgrading vim
Error: The following formula
[#<Dependency: "python" []>, #<Options: []>]
cannot be installed as binary package and must be built from source.
Install the Command Line Tools:
xcode-select --install
所以我按照上面的建议进入并安装了 xcode
,但现在留下了一个新的错误
Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
pathname contains null byte
Error: pathname contains null byte
Please report this bug:
https://docs.brew.sh/Troubleshooting
/usr/local/Homebrew/Library/Homebrew/extend/pathname.rb:265:in `initialize'
/usr/local/Homebrew/Library/Homebrew/extend/pathname.rb:265:in `readlink'
/usr/local/Homebrew/Library/Homebrew/extend/pathname.rb:265:in `resolved_path'
/usr/local/Homebrew/Library/Homebrew/keg.rb:422:in `block in oldname_opt_record'
/usr/local/Homebrew/Library/Homebrew/keg.rb:421:in `each'
/usr/local/Homebrew/Library/Homebrew/keg.rb:421:in `find'
/usr/local/Homebrew/Library/Homebrew/keg.rb:421:in `oldname_opt_record'
/usr/local/Homebrew/Library/Homebrew/keg.rb:535:in `optlink'
/usr/local/Homebrew/Library/Homebrew/keg.rb:432:in `link'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:801:in `link'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:619:in `finish'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:586:in `install_dependency'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:539:in `block in install_dependencies'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:539:in `each'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:539:in `install_dependencies'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:252:in `install'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:187:in `upgrade_formula'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:136:in `block in upgrade_formulae'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:133:in `each'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:133:in `upgrade_formulae'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:111:in `upgrade'
/usr/local/Homebrew/Library/Homebrew/brew.rb:102:in `<main>'
我试图严格按照 homebrew
维护者页面中的步骤 - Error: pathname contains null byte and Broken symlink detection needed 并没有解释确切的问题。
我进去 运行 brew doctor
并尝试一个一个地解决问题。首先是创建不存在的目录 /usr/local/sbin
并添加正确的权限
sudo mkdir -p /usr/local/sbin
sudo chown -R $(whoami) /usr/local/sbin
即使在此之后 运行 brew upgrade vim
仍显示相同的错误
Error: pathname contains null byte
初始 link 中的一个页面建议一些损坏的符号 link 可能导致了这个问题,我进去查看 /usr/local/opt
下有实用程序 link从 Cellar
转到路径,但是 readline
没有指向任何地方就被破坏了
lrwxr-xr-x 1 freddy admin 26B Apr 18 2017 readline ->
这似乎是罪魁祸首,使用
将其删除rm -rf /usr/local/opt/readline
并做了一个新的 brew upgrade vim
,现在安装了所需的依赖项并成功安装 vim
。 awk
我遇到了同样的问题,我必须使用 brew upgrade gawk
.