如何解决Ubuntu 22.04中nam与ns2模拟器不兼容无法启动的问题
解决Ubuntu 22.04更新后NS2与NAM不兼容的问题
方案一:降级NAM至兼容版本
Ubuntu 22.04更新后的默认NAM版本大概率和NS2存在兼容性冲突,手动降级到旧版是最直接的解决方式:
- 先卸载当前安装的NAM:
sudo apt remove --purge nam sudo apt autoremove - 下载适配Ubuntu 20.04的NAM deb包(推荐版本
nam_1.15-7build1_amd64.deb,该版本和NS2.35等主流版本兼容) - 安装下载的旧版包:
sudo dpkg -i nam_1.15-7build1_amd64.deb - 若出现依赖错误,执行以下命令修复:
sudo apt -f install - 锁定NAM版本,避免后续系统更新再次替换:
sudo apt-mark hold nam
方案二:补全NAM图形依赖
系统更新可能误删了NAM运行所需的图形库,尝试安装缺失的依赖:
sudo apt install libx11-6 libxmu6 libxmu-dev libxt6 libxt-dev libpng16-16 libpng-dev
安装完成后重新运行ns sampleprog.tcl测试。
方案三:手动指定NAM路径运行
如果系统中同时存在多个NAM版本,可在TCL脚本中直接指定兼容版的路径,或者在终端运行时指定:
- 修改TCL脚本开头,添加NAM路径指定:
set nam_exec "/usr/bin/nam" ;# 替换为实际旧版NAM的安装路径 exec $nam_exec & - 或者直接在终端用指定路径运行脚本:
ns -nam /usr/bin/nam sampleprog.tcl
方案四:源码编译兼容版NS2与NAM
如果上述方法都无效,可自行编译适配Ubuntu 22.04的NS2和NAM:
- 先安装编译依赖:
sudo apt install build-essential autoconf automake libx11-dev libxmu-dev libxt-dev libpng-dev - 下载NS2.35的源码包(
ns-allinone-2.35.tar.gz),解压后进入目录:tar xzf ns-allinone-2.35.tar.gz cd ns-allinone-2.35 - 单独编译NAM并指定安装路径:
cd nam-1.15 ./configure --prefix=/usr/local/nam-compat make sudo make install - 将编译好的NAM路径加入环境变量:
echo 'export PATH=/usr/local/nam-compat/bin:$PATH' >> ~/.bashrc source ~/.bashrc - 重新运行脚本验证效果。
内容的提问来源于stack exchange,提问作者Chinmay Naik
相关产品推荐
相关产品推荐

