You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

macOS通过brew升级nmap至7.70后man nmap显示乱码求助

解决brew升级nmap后man页面乱码的问题

你在brew升级nmap到7.70后遇到的连锁问题挺典型的——先是ncat链接失败,处理后又碰到man nmap乱码。我来帮你一步步排查解决:

1. 确认Homebrew的man路径被系统识别

首先,系统可能没正确读取Homebrew安装的man文件路径。先执行命令查看当前的MANPATH:

echo $MANPATH
  • 如果你用的是Intel芯片Mac,应该能看到/usr/local/share/man
  • 如果是Apple Silicon(M1/M2等),应该看到/opt/homebrew/share/man

要是没看到对应路径,得把它添加到你的shell配置文件里:

  • 用zsh(Mac默认shell)的话,编辑~/.zshrc,添加一行:
    # Intel Mac适用
    export MANPATH="/usr/local/share/man:$MANPATH"
    # Apple Silicon适用
    export MANPATH="/opt/homebrew/share/man:$MANPATH"
    
  • 保存后执行source ~/.zshrc让配置立即生效。

2. 更新man数据库索引

man页面乱码很多时候是因为系统的man数据库没同步更新,没法正确解析新安装的nmap man文件。执行命令更新:

# 更新全量man数据库
mandb
# 或者只更新nmap所在的man目录(更快)
mandb /usr/local/share/man/man1  # Intel Mac
# mandb /opt/homebrew/share/man/man1  # Apple Silicon

3. 重装nmap确保man文件完整

如果上面的方法没用,大概率是升级过程中nmap的man文件损坏了。先卸载再重装:

brew uninstall nmap
brew install nmap
brew link --overwrite nmap

重装完成后再试man nmap,应该就能正常显示了。

4. 检查系统字符编码设置

少数情况是系统编码配置错误导致的乱码,先查看当前编码:

echo $LC_CTYPE

如果输出不是en_US.UTF-8这类UTF-8编码,就在shell配置文件(比如~/.zshrc)里添加:

export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

执行source ~/.zshrc生效后,再尝试打开nmap的man页面。


内容的提问来源于stack exchange,提问作者Jerry

火山引擎 最新活动