【问题标题】:C compiler gcc not found while installing passenger and nginx安装乘客和 nginx 时找不到 C 编译器 gcc
【发布时间】:2012-09-28 00:59:23
【问题描述】:

我正在尝试在我的 VPS 上安装Passenger 和 Nginx。

我关注these instructions并将所有来源的所有链接替换为当前版本。

但是当我为 Nginx 运行 Phusion Passenger 安装程序时,gcc 编译器出了点问题:

Compiling and installing Nginx...
# sh ./configure --prefix='/opt/nginx' --with-http_ssl_module --with-http_gzip_static_module --with-cc-opt='-Wno-error' --add-module='/usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.17/ext/nginx'
checking for OS
 + Linux 2.6.32-220.el6.x86_64 x86_64
checking for C compiler ... not found

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

我该怎么办?

OBS:我的 VPS 适用于 CentOS 6.2 x64

【问题讨论】:

  • 你安装了包含gcc的CentOS包吗?如果没有,请安装它,它应该可以解决您遇到的问题。
  • 你真的跑yum install zlib-devel wget openssl-devel pcre pcre-devel make gcc gcc-c++ curl-devel了吗?
  • 是的,我安装了 gcc 包并运行了yum install zlib-devel wget openssl-devel pcre pcre-devel make gcc gcc-c++ curl-devel
  • 看我跑了gcc -v并得到了Using built-in specs. Target: x86_64-redhat-linux gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)
  • @EduardoLeal:configure 脚本很可能正在检查某个位置是否存在 gcc,而它安装在其他位置。例如:/usr/bin 与 /usr/local/bin。这可能是软件包与操作系统版本不兼容的问题。

标签: nginx gcc centos sh passenger


【解决方案1】:

如果您确实安装了 gcc,则问题源于 /tmp 被安装为 noexec。该错误并不完全有帮助,但如果您将 /tmp 重新安装为 exec,您可以正确安装乘客。

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

【讨论】:

  • 那行得通。但是,由于我收到 403 禁止错误,redmine 似乎无法正常工作。在 nginx 日志中我找到了nginx: [emerg] unknown directive "passenger_enabled" in /etc/nginx/sites-enabled/site:33
  • 听起来你没有安装 Nginx 和乘客模块。你可以做nginx -V 列出已编译的标志。确保那里列出了乘客。还要确保passenger_enabled on; 列在server 块内。
【解决方案2】:

遇到同样的问题,下面的命令解决了; (在 ubuntu 服务器上)

sudo apt-get install linux-kernel-headers
sudo apt-get install build-essential

【讨论】:

    【解决方案3】:

    如果适用,请务必使用 sudo。

    例子:

    sudo ./configure ...
    

    【讨论】:

      【解决方案4】:

      遇到同样的错误。刚刚安装了 gcc,它就开始工作了:

      yum 安装 gcc

      【讨论】:

      • 在 Amazon Linux AMI 上遇到了同样的问题,这很有效!
      【解决方案5】:

      同样的问题,我发现我无法以 root 身份运行命令 必须使用

       sudo
      

      它就像魅力一样工作

      【讨论】:

        【解决方案6】:

        一个快速的技巧(我为此费了很多力气,最后安装了预构建的)是安装 Nginx 的预构建包,而不是从源代码编译它。

        对于 RHEL/CentOS,创建名为 /etc/yum.repos.d/nginx.repo 的文件,其内容如下:

        [nginx]
        name=nginx repo
        baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
        gpgcheck=0
        enabled=1
        

        在上面的baseurl 中,将“OS”替换为“centos”,将“OSRELEASE”替换为“6”。

        最后执行yum install nginx

        参考https://nginx.org/en/linux_packages.html#stable

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-11
          • 2018-05-18
          • 1970-01-01
          • 2016-06-08
          • 2016-07-12
          • 1970-01-01
          • 1970-01-01
          • 2012-05-12
          相关资源
          最近更新 更多