【问题标题】:Errors in a simple .RPM简单 .RPM 中的错误
【发布时间】:2023-03-13 06:45:01
【问题描述】:

我需要制作一个非常简单的 rpm 来提取 tar.gz 并将其内容放入 /var/www 而不做任何其他事情。

我有一个 .spec 应该这样做,但它失败并出现非详细错误。

rpmlint 不会抛出错误。

这里是规范:

Name:           redmine
Version:        2.4.3
Release:        1%{?dist}
Summary:        A flexible project management web application

Group:          Development/Tools/Other
License:        GPL-2.0
URL:            http://www.redmine.org/
Source0:        %{name}-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

BuildRequires:  gcc
Requires:       httpd

%description

Redmine is a flexible project management web application.
Written using Ruby on Rails framework, it is cross-platform and cross-database.
%prep
%setup

%build

%install
rm -rf %{buildroot}
mkdir -p /var/www/redmine/
install -m 0755 * /var/www/redmine/
mkdir -p /var/www/redmine/tmp/

%clean
rm -rf %{buildroot}


%files
%defattr(-,root,root,-)
/var/www/redmine/*
/var/www/redmine/app/*
/var/www/redmine/config/*
/var/www/redmine/db/*
/var/www/redmine/doc/*
/var/www/redmine/extra/*
/var/www/redmine/lib/*
/var/www/redmine/plugins/*
/var/www/redmine/public/*
/var/www/redmine/script/*
/var/www/redmine/test/*
/var/www/redmine/tmp/*
/var/www/redmine/vendor/*
%defattr(-,apache,apache,-)
/var/www/redmine/tmp/*
/var/www/redmine/files/*
/var/www/redmine/log/*

%post
echo " "
echo "installatios was successful"

这是错误信息的最后一部分:

+ rm -rf /root/rpmbuild/BUILDROOT/redmine-2.4.3-1.el6.i386
+ mkdir -p /var/www/redmine/
+ install -m 0755 CONTRIBUTING.md Gemfile README.rdoc Rakefile app config config.ru db doc extra files lib log plugins public script test tmp vendor /var/www/redmine/
install: omitting directory `app'
install: omitting directory `config'
install: omitting directory `db'
install: omitting directory `doc'
install: omitting directory `extra'
install: omitting directory `files'
install: omitting directory `lib'
install: omitting directory `log'
install: omitting directory `plugins'
install: omitting directory `public'
install: omitting directory `script'
install: omitting directory `test'
install: omitting directory `tmp'
install: omitting directory `vendor'
error: Bad exit status from /var/tmp/rpm-tmp.FwRGmu (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.FwRGmu (%install)

【问题讨论】:

    标签: linux rpm centos6


    【解决方案1】:

    这个.spec 文件有很多问题。以下是一些重要的:

    1. %install 中的绝对路径 - 这使得它需要root 来构建(禁止),并且可以踩踏构建机器已经安装在其上的任何东西。如果您尝试从机器复制配置,请将您想要的文件打包。
    2. 没有源文件。见上文 - 您将无法拥有 .src RPM。
    3. 您不拥有文件列表中的目录 (%dir)。
    4. RPM 不应触及 /var/www/ - 请参阅 Fedora Packaging Guidelines
    5. 名称冲突 - 如果是您的特定配置,请不要将其命名为 redmine。相反,Requires 是一个标准的redmine 包,并将你的命名为redmine-companyname-config。或者使用该名称并使用 ObsoletesProvides 原始 redmine(如果必须)。

    【讨论】:

      【解决方案2】:

      install 不适用于目录。使用它创建目录,然后使用cp 复制内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-25
        • 2010-12-02
        • 1970-01-01
        • 2020-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多