无网络Debian Squeeze安装net-snmp时gcc运行异常求助
故障排查步骤
- 先定位系统中真实存在的gcc二进制文件,执行命令:
find / -name gcc -type f -executable 2>/dev/null
过滤掉路径包含/etc/bash_completion.d/的结果,Debian Squeeze默认的gcc 4.4版本真实二进制路径应为/usr/bin/gcc-4.4。 - 校验当前
/usr/bin/gcc的文件类型,执行命令:ls -l /usr/bin/gcc
确认该文件为被错误覆盖的补全脚本,而非软链接或真实二进制程序。
修复步骤
- 备份错误的gcc文件:
mv /usr/bin/gcc /usr/bin/gcc.bak.bad - 若上一步已找到真实的gcc二进制文件(例如
/usr/bin/gcc-4.4),直接创建软关联到标准路径:ln -s /usr/bin/gcc-4.4 /usr/bin/gcc - 验证gcc可用性:
执行gcc --version确认能正常输出版本信息,再执行测试编译:echo 'int main(){return 0;}' > test.c && gcc test.c -o test
无报错且生成可执行文件test即表示修复完成。 - 若未找到真实gcc二进制,说明之前的离线gcc安装未完成,需从Debian Squeeze官方ISO镜像中提取对应架构的gcc依赖包,按顺序执行离线安装:
dpkg -i gcc-4.4-base_*.deb cpp-4.4_*.deb binutils_*.deb linux-libc-dev_*.deb libc6-dev_*.deb gcc-4.4_*.deb
安装完成后再执行上述软链接操作即可。
后续操作
修复完成后重新进入net-snmp源码目录执行./configure,即可解决C编译器无法生成可执行文件的报错,正常进行后续编译安装。
内容的提问来源于stack exchange,提问作者rkrainski
相关产品推荐
相关产品推荐

