解决编译时出现 C compiler 未找到报错

分类:Linux 评论: 0

编译 NGINX 时,安装某个组件后出现无法找到编译器的问题,但是已经安装编译器组件。

问题复现

执行命令时出现以下报错

checking for OS
 + Linux 4.9.0-8-amd64 x86_64
checking for C compiler ... not found

./configure: error: C compiler cc is not found

问题初探

检查编译器安装情况

# apt install build-essential
Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version (12.3).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

编译器已安装,经查询得知 /tmp 目录未挂载也会导致此问题,于是检查挂载状态。

# mount | grep 'tmp'
udev on /dev type devtmpfs (rw,nosuid,relatime,size=498744k,nr_inodes=124686,mode=755)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=102032k,mode=755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=102028k,mode=700)

挂载无问题,若发现无挂载时请使用以下命令重新挂载。

# mount -o remount,rw,exec,nosuid /tmp

解决

# export PATH="/usr/bin:$PATH"

解决问题,但未找到问题出现原因,初步猜想为安装 PageSpeed Module 依赖时覆盖了环境变量导致的。

参考链接

回复