标签: rpm

rpm.spec文件中的多个tar(源文件)文件

我在linux上提出了一个集中式日志记录服务器.在这一点上,我正在努力巩固,使事情更容易加载到另一台机器上.我希望有一个RPM可以一次安装多个程序.我正在使用CentOS 7服务器.我想要打包到rpm的程序将是:

eventlog 2.12 
libdbi 0.9.0
freetds 0.91 
libdbi-drivers 0.9.0
json-c
syslog-ng 3.5.6
Run Code Online (Sandbox Code Playgroud)

我一直在做很多关于RPM的阅读,只是很难理解如何将多个源集成到一个RPM中.我安装这些的原因而不仅仅是yum安装它们是因为我需要在"./configure --enable-example"中调用配置.所以我有源在我的机器上安装了所有这些程序,然后我重新安装它们并尝试使用该文件作为源.任何能够指出我正确方向的想法或任何人都将不胜感激.

linux centos rpm centos7

10
推荐指数
1
解决办法
8620
查看次数

如何使RPM依赖于包OR包?

这似乎是一个简单的问题,但文档似乎没有任何关于这个主题的说法.我想做点什么,Requires: vim or emacs但是当我这样做时,我实际上依赖于vim,or而且emacs.取决于两个包中的一个或另一个的语法是什么?

dependencies rpm requires

9
推荐指数
2
解决办法
6782
查看次数

rpm规范文件中的chkconfig命令

我想在rpm spec文件的%install部分中使用'chkconfig --del NetworkManager'命令.如果我包含此命令,rpm正在构建正常但是当我安装该rpm时,它看起来命令没有被执行.安装后我使用'chkconfig --list'命令验证并观察到服务一直运行.

这是我正在使用的spec文件.请让我知道我错了.

%define name disable_network-manager
%define version 1.0
%define release fc

Name:       %{name}
Version:    %{version}
Release:    1%{?dist}
Summary:    Includes the script to disable Network Manager services

Group:      Development/Other
License:    GPL
URL:        www.abcd.com
Source0:    %{name}-%{version}.tar.gz
BuildRoot:  %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

%description
sample text.

%prep
%setup -q

#%build

%install
/sbin/chkconfig --del NetworkManager
rm -rf $RPM_BUILD_ROOT
install -m 0755 -d $RPM_BUILD_ROOT/usr/bin
install -m 0755 enablenm.sh $RPM_BUILD_ROOT/usr/bin/enablenm.sh

%clean
rm -rf $RPM_BUILD_ROOT


%files
/usr/bin/enablenm.sh
Run Code Online (Sandbox Code Playgroud)

rpm rpmbuild

9
推荐指数
1
解决办法
5161
查看次数

CentOS相当于dpkg -s

我正在调整以前为Ubuntu编写的CentOS准备脚本.

在Ubuntu脚本中,dpkg -s {some program}经常调用该命令.例如,一个这样的命令是dpkg -s snmpd检查是否安装了SNMP守护程序.

CentOS中的等价物是什么?我知道RPM是包管理器.该命令rpm -q类似,但它查找包而不是程序.

例如,运行rpm -q snmpd返回:

package snmpd is not installed
Run Code Online (Sandbox Code Playgroud)

我的问题是,相当于Ubuntu命令的CentOS是什么dpkg -s

ubuntu centos rpm dpkg package

9
推荐指数
1
解决办法
2万
查看次数

来自/var/tmp/rpm-tmp.ajKra4的退出状态不佳(%prep)

我有一个奇怪的RPM问题,我是新手,所以请耐心等待...我创建了spec文件,当我运行构建时出现错误:

/var/tmp/rpm-tmp.ajKra4:第36行:cd:hero-01:没有这样的文件或目录错误:/var/tmp/rpm-tmp.ajKra4的错误退出状态(%prep)

然后我检查那个临时文件,它正在尝试将CD发送到一个不存在的目录.它应该在spec文件中创建吗?如果是这样的话?

这是我的spec文件:

    Summary: Install Hero
    Name: hero
    Version: 01 
    Release: 1
    Group: Billing reporting
    Source: %{name}-%{version}.tar.gz
    License: SLA

    %description
    Hero billing reports system

    %prep
    rm -rf %{_topdir}/BUILD/*

    %setup

    %install
    mkdir -p /opt/%{name}
    cp -r * /opt/%{name}

    %post
    find /opt/%{name} -type d -exec chmod 755 {} \;
    find /opt/%{name} -type f -exec chmod 644 {} \;
    chmod -R 755 /opt/%{name}/bin



    %files 
    /opt/%{name}
    %defattr(-,root,root,0755)

    %clean
    rm -rf $RPM_BUILD_ROOT

    %postun
    rm -rf /opt/%{name}
Run Code Online (Sandbox Code Playgroud)

也许我错过了什么?不会是第一个大声笑,谢谢

这也是tmp文件输出的内容:

    #!/bin/sh

      RPM_SOURCE_DIR="/root/rpmbuild/SOURCES"
      RPM_BUILD_DIR="/root/rpmbuild/BUILD"
      RPM_OPT_FLAGS="-O2 -g"
      RPM_ARCH="x86_64" …
Run Code Online (Sandbox Code Playgroud)

specifications centos rpm rpmbuild

9
推荐指数
1
解决办法
2万
查看次数

rpmbuild已安装(但未打包)的文件源

我正在尝试在REDHAT 6系统上从二进制文件构建RPM.我有所有文件包含在%files部分(查找/ path/to/fake/install -type f >> specfile)

当我运行rpmbuild -bb specfile --target x86_64时,我得到了

检查未打包的文件:/ usr/lib/rpm/check-files /path/to/rpmbuild/BUILDROOT/Package-1.0.0-1.el6.x86_64错误:已找到已安装(但未打包)的文件:

RPM构建错误:已找到已安装(但未打包)的文件:

请注意,错误消息中未列出任何文件.我不确定什么是错的,还有想法?

linux packaging redhat rpm rpmbuild

9
推荐指数
2
解决办法
2万
查看次数

CentOS上的rpmbuild问题 - 来自/home/me/rpmbuild/tmp/rpm-tmp.58942的错误退出状态

我正在尝试创建一个只更新系统上文件的软件包,但是在运行rpmbuild时我一直遇到错误.该错误表示文件丢失.

我在CentOS 5和6上尝试过这个,结果相同.

我曾经rpmdev-setuptree设置过文件系统,也就是设置~/.rpmmacros文件.然后我用来rpmdev-newspec初始化spec文件.

我作为非root用户运行.

我有spec文件~/rpmbuild/SPECS/test.spec,我的来源是:~/rpmbuild/SOURCES/test-1.tar.gz.提取此文件会创建一个以test-12个文件命名的目录.我已经确认~/rpmbuild/BUILD/test-1在我尝试构建软件包时它会被提取出来.

我跑: rpmbuild -ba ~/rpmbuild/SPECS/test.spec

然后我收到这个错误:

  • ./configure --build = x86_64-redhat-linux-gnu --host = x86_64-redhat-linux-gnu --target = x86_64-redhat-linux-gnu --program-prefix = --prefix =/usr - exec-prefix =/usr --bindir =/usr/bin --sbindir =/usr/sbin --sysconfdir =/etc --datadir =/usr/share --includedir =/usr/include --libdir =/usr/lib64 --libexecdir =/usr/libexec --localstatedir =/var --sharedstatedir =/usr/com --mandir =/usr/share/man --infodir =/usr/share/info/home/me/rpmbuild /tmp/rpm-tmp.58942:line 37:./ configure:没有这样的文件或目录错误:/home/me/rpmbuild/tmp/rpm-tmp.58942(%build)的退出状态错误

RPM构建错误:/home/me/rpmbuild/tmp/rpm-tmp.58942(%build)的退出状态错误

这是我的spec文件:

Name:           test
Version:        1
Release:        1%{?dist}
Summary:        Test

Group:          Test
License: …
Run Code Online (Sandbox Code Playgroud)

rpm rpmbuild

9
推荐指数
1
解决办法
8803
查看次数

如何用yum安装两个不同版本的相同包

说我想安装相同包的两个不同版本.

具体来说,我想为GNOME,gjs包安装两个版本的Javascript绑定.我想拥有gjs-1.38.1-1.fc20.x86_64gjs-1.36.1-1.fc19.x86_64.

Fedora 20中还有其他软件包,这在很大程度上依赖于gjs-1.38.1-1.fc20.x86_64它,因此无法替换它gjs-1.36.1-1.fc19.x86_64.

我有一个不兼容的特定程序,gjs-1.38.1-1.fc20.x86_64需要前一个程序.

那么有可能安装以前版本的gjs gjs-1.36.1-1.fc19.x86_64并通过/usr/bin/env gjs1(通过一些魔术!)访问它来运行不兼容的程序而不会破坏任何东西吗?

rpm yum package

9
推荐指数
1
解决办法
7334
查看次数

制作设置POSIX文件功能的RPM

如何制作一个设置文件POSIX功能RPM?如果我尝试以非root用户身份进行操作,那么当我的makefile的安装挂钩尝试运行时,我会收到错误,但如果我不运行,将如何 复制这些功能?似乎没有任何方法可以在RPM spec文件中设置功能.rpmbuildsetcapsetcaprpmbuild

linux rpm rpm-spec linux-capabilities

9
推荐指数
1
解决办法
1397
查看次数

适用于 CentOS 7 的 OpenSSL 1.1.1 RPM

我想要一个用于 CentOS 7 的 OpenSSL 1.1.1 RPM 包。(不是 1.1.0...)

我在谷歌上搜索了这个非常具体的 RPM 文件,但它根本不可用。

我也发了邮件openssl-users,但没有人回复正确的答案。

- - 编辑 - -

最后,该包可用。

openssl rpm

9
推荐指数
0
解决办法
4712
查看次数