【问题标题】:Installing tomcat7 with Tomcat Cookbook使用 Tomcat Cookbook 安装 tomcat7
【发布时间】:2014-06-16 22:46:01
【问题描述】:

在我的 CentOS 6.5 机器上使用 vagrant-berkshelf,我尝试将 7 指定为要安装的 Tomcat 版本:

    "tomcat" => {
      "base_version" => "7"
    }

但是,当我尝试运行vagrant provision 时,我遇到了错误:

[2014-03-21T18:23:50+00:00] ERROR: package[tomcat7] (tomcat::default line 45) 
       had an error: Chef::Exceptions::Package: No version specified, 
       and no candidate version available for tomcat7

此操作码“添加对 Tomcat7 的支持”bug 被标记为“已修复”,但仅显示为针对 Ubuntu 12.04 进行了测试。我不确定这是否意味着 (a) 它没有针对 CentOS 进行测试,或者 (b) 它从未针对 CentOS 被破坏。

如何在 Chef 的 vagrant box 上使用 tomcat7

【问题讨论】:

    标签: tomcat chef-infra vagrant cookbook


    【解决方案1】:

    有两个问题:

    1. 在 CentOS 上,tomcat 7 包 (7.0.33-3.el6) 位于 EPEL 中,简称为“tomcat”。
    2. 这个包目前有问题。 [参见:https://bugzilla.redhat.com/show_bug.cgi?id=1080195] 较新的版本 (7.0.33-4.el6) 解决了这个问题,但目前它位于 epel-testing 存储库中。

    见:https://github.com/opscode-cookbooks/tomcat/pull/34

    我的临时解决方案是编写一个包装器 Chef 配方,它通过包管理器安装 EPEL 存储库和错误修复 tomcat7 包。比如:

    # BERKSHELF
    cookbook "yum", "~> 3.2.0"
    cookbook "yum-epel", "~> 0.3.6"
    
    
    # CHEF
    override['yum']['epel-testing']['enabled'] = true
    package 'tomcat'
    

    【讨论】:

      【解决方案2】:

      似乎 tomcat7 还没有在 centos6.5 的标准/epel 存储库中。

      [root@secure36 rfridman]# cat /etc/issue
      CentOS release 6.5 (Final)
      
      [root@secure36 rfridman]# yum search tomcat
      Loaded plugins: fastestmirror, security
      Loading mirror speeds from cached hostfile
       * base: mirror.atlanticmetro.net
       * epel: mirror.symnds.com
       * extras: mirror.es.its.nyu.edu
       * updates: mirror.cogentco.com
      ==================================================================== N/S Matched: tomcat =====================================================================
      tomcatjss.noarch : JSSE implementation using JSS for Tomcat
      apache-tomcat-apis.noarch : Tomcat Servlet and JSP APIs
      jakarta-commons-collections-tomcat5.noarch : Jakarta Commons Collection dependency for Tomcat5
      jakarta-commons-dbcp-tomcat5.noarch : DBCP dependency for Tomcat5
      jakarta-commons-pool-tomcat5.x86_64 : Pool dependency for Tomcat5
      jglobus-ssl-proxies-tomcat.noarch : Globus Java - SSL and proxy certificate support for Tomcat
      tomcat-admin-webapps.noarch : The host-manager and manager web applications for Apache Tomcat
      tomcat-docs-webapp.noarch : The docs web application for Apache Tomcat
      tomcat-javadoc.noarch : Javadoc generated documentation for Apache Tomcat
      tomcat-jsp-2.2-api.noarch : Apache Tomcat JSP API implementation classes
      tomcat-jsvc.noarch : Apache jsvc wrapper for Apache Tomcat as separate service
      tomcat-lib.noarch : Libraries needed to run the Tomcat Web container
      tomcat-native.x86_64 : Tomcat native library
      tomcat-servlet-3.0-api.noarch : Apache Tomcat Servlet API implementation classes
      tomcat-webapps.noarch : The ROOT and examples web applications for Apache Tomcat
      tomcat6.noarch : Apache Servlet/JSP Engine, RI for Servlet 2.5/JSP 2.1 API
      tomcat6-admin-webapps.noarch : The host-manager and manager web applications for Apache Tomcat
      tomcat6-docs-webapp.noarch : The docs web application for Apache Tomcat
      tomcat6-javadoc.noarch : Javadoc generated documentation for Apache Tomcat
      tomcat6-jsp-2.1-api.noarch : Apache Tomcat JSP API implementation classes
      tomcat6-lib.noarch : Libraries needed to run the Tomcat Web container
      tomcat6-servlet-2.5-api.noarch : Apache Tomcat Servlet API implementation classes
      tomcat6-webapps.noarch : The ROOT and examples web applications for Apache Tomcat
      glite-security-trustmanager-tomcat6.noarch : Java trustmanager interface supporting a GSI grid name space
      tomcat.noarch : Apache Servlet/JSP Engine, RI for Servlet 3.0/JSP 2.2 API
      tomcat-el-2.2-api.noarch : Expression Language v1.0 API
      tomcat6-el-2.1-api.noarch : Expression Language v1.0 API
      

      您应该尝试从源代码编译 tomcat7,或者尝试找到包含 tomcat7 的存储库并将其添加到您的食谱配置中。

      【讨论】:

      • 我不能也获取二进制文件吗?我很好奇您为什么列出 (1) 来源或 (2) update yum repo 作为可能的答案。
      • 当然可以。虽然如果您同时拥有 x86 和 x64 架构,您将需要两个二进制文件。每个不同的 centos 版本还有两个
      • 你能告诉我一些值得信赖的/官方的 yum/rpm repos 来安装 tomcat7 吗?
      【解决方案3】:

      Tomcat 7 在您显示的列表中。

      yum info tomcat
      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
       * base: centos.mirror.ndchost.com
       * epel: mirror.vcu.edu
       * extras: centos.sonn.com
       * updates: mirror.atlanticmetro.net
      Available Packages
      Name        : tomcat
      Arch        : noarch
      Version     : 7.0.33
      Release     : 3.el6
      Size        : 86 k
      Repo        : epel
      Summary     : Apache Servlet/JSP Engine, RI for Servlet 3.0/JSP 2.2 API
      URL         : http://tomcat.apache.org/
      License     : ASL 2.0
      Description : Tomcat is the servlet container that is used in the official Reference
                  : Implementation for the Java Servlet and JavaServer Pages technologies.
                  : The Java Servlet and JavaServer Pages specifications are developed by
                  : Sun under the Java Community Process.
                  : 
                  : Tomcat is developed in an open and participatory environment and
                  : released under the Apache Software License version 2.0. Tomcat is intended
                  : to be a collaboration of the best-of-breed developers from around the world.
      

      问题出在 tomcat 食谱中。它正在寻找一个 tomcat7 包。

      【讨论】:

        【解决方案4】:

        遇到同样的问题; 我的“快速修复”:将 JPackage repo 用于 tomcat 7(它被称为 tomcat7,就像配方要求的那样)

        【讨论】:

          猜你喜欢
          • 2014-09-19
          • 1970-01-01
          • 2013-02-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多