AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[rpmbuild](unix)

Martin Hope
giomanda
Asked: 2024-10-02 13:35:08 +0800 CST

帮助理解 spec 文件“提供”语法

  • 5

我对 rpm 构建还很陌生,我一直试图理解 spec 文件中“Provides”的语法,但没有成功。我有以下用于构建 clamav rpm 的 spec 文件片段:

Summary:    End-user tools for the Clam Antivirus scanner
Name:       clamav
Version:    0.103.12
Release:    1%{?dist}

%package data
Summary:    Virus signature data for the Clam Antivirus scanner
Requires:   ns-clamav-filesystem = %{version}-%{release}
Provides:   data(clamav) = full
Provides:   clamav-db = %{version}-%{release}
Obsoletes:  clamav-db < %{version}-%{release}
BuildArch:  noarch

%package update
Summary:    Auto-updater for the Clam Antivirus scanner data-files
Requires:   ns-clamav-filesystem = %{version}-%{release}
Requires:   ns-clamav-lib        = %{version}-%{release}
Provides:   data(clamav) = empty
Provides:   clamav-data-empty = %{version}-%{release}
Obsoletes:  clamav-data-empty < %{version}-%{release}

%package -n ns-clamd
Summary: The Clam AntiVirus Daemon
Requires:   data(clamav)
Requires:   ns-clamav-filesystem = %{version}-%{release}
Requires:   ns-clamav-lib        = %{version}-%{release}
Requires:   coreutils
Requires(pre):  shadow-utils

我知道这里的“提供:”表示什么,并且提供旁边的括号表示模块的安装(针对该包)。在我的例子中,%package data(clamav-data)在安装时,它还会向 rpm/yum 声明它提供clamav-db和data(clamav)。

我data(clamav)不明白。它与默认包名前缀有什么关系clamav-data?不应该是吗clamav(data)?

我如何data(clamav在 yum/rpm 中搜索此 )?我可以在 rpm 信息中看到这一点,但是当我安装它时,我如何像在其他软件包上一样搜索它?例如yum info <package>

    #   rpm -q --requires RPMS/x86_64/ns-clamd-0.103.12-1.el8.x86_64.rpm
   /bin/sh 
   /bin/sh 
   /bin/sh 
   /bin/sh
   coreutils
   data(clamav)

   #   rpm -q RPMS/noarch/ns-clamav-data-0.103.12-1.el8.noarch.rpm  --provides
   clamav-db = 0.103.12-1.el8
   config(ns-clamav-data) = 0.103.12-1.el8
   data(clamav) = full
   ns-clamav-data = 0.103.12-1.el8
rpmbuild
  • 1 个回答
  • 19 Views
Martin Hope
Mose
Asked: 2022-03-09 12:28:00 +0800 CST

rpmbuild 失败 | 缺少依赖项(但是安装了缺少的依赖项)

  • 1

我正在尝试为我们在我公司使用的各种代理构建 RPM 和 Repo。这个特定的包有一个私人图书馆,我无法弄清楚问题是什么。

该软件包似乎构建得很好,但是我收到以下错误:

[root@test ~]# rpm -ivh rpmbuild/RPMS/x86_64/ir-agent-1-1.el8.x86_64.rpm
error: Failed dependencies:
        libc.so.6 is needed by ir-agent-1-1.el8.x86_64
        libc.so.6(GLIBC_2.0) is needed by ir-agent-1-1.el8.x86_64
        libc.so.6(GLIBC_2.1.3) is needed by ir-agent-1-1.el8.x86_64
        libdl.so.2 is needed by ir-agent-1-1.el8.x86_64

glib-2.28-164.el8.x86_64 安装在系统上,所以我不清楚问题是什么。

以下是我正在使用的规范文件:

[root@test ~]# cat rpmbuild/SPECS/ir-agent-1.0.spec
Name:           ir-agent
Version:        1
Release:        1%{?dist}
Summary:        Rapid7 Insight Agent
Group:          Application/Other
License:        BSD
URL:            www.rapid7.com
Source0:        %{name}-%{version}.tar.gz
BuildArch:      x86_64
BuildRequires:  systemd
Requires:  glibc
 
 
%description
Aires installation of Rapid7 Insight Agent.
 
%global debug_package %{nil}
%global __provides_exclude_from $RPM_BUILD_ROOT/opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/lib/.*\\.so$
 
%prep
%setup -q
 
%build
 
%install
#%{__mkdir} -p %{buildroot}%{base_install_dir}
#%{__install} -D -m 755 %{SOURCE0}
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/lib/systemd/{system,system-preset}
mkdir -p $RPM_BUILD_ROOT/opt/rapid7/ir_agent/components/network_sensor/{0,common}
mkdir -p $RPM_BUILD_ROOT/opt/rapid7/ir_agent/components/insight_agent/{3.1.3.80,common}
mkdir -p $RPM_BUILD_ROOT/opt/rapid7/ir_agent/components/bootstrap/{2.4.0.5,common,ssl}
 
cp 90-ir-agent.preset $RPM_BUILD_ROOT/usr/lib/systemd/system-preset/
cp ir-agent.service $RPM_BUILD_ROOT/usr/lib/systemd/system/
cp config.json $RPM_BUILD_ROOT/opt/rapid7/ir_agent/components/insight_agent/common/
cp client.{key,crt} $RPM_BUILD_ROOT/opt/rapid7/ir_agent/components/bootstrap/ssl/
cp cafile.pem $RPM_BUILD_ROOT/opt/rapid7/ir_agent/components/bootstrap/ssl/
cp -r local/* $RPM_BUILD_ROOT/opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/
cp local/bootstrap $RPM_BUILD_ROOT/opt/rapid7/ir_agent
mv local/bootstrap $RPM_BUILD_ROOT/opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/ir_agent
ln -s /opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/ir_agent $RPM_BUILD_ROOT/opt/rapid7/ir_agent/components/insight_agent/insight_agent
 
%clean
rm -rf $RPM_BUILD_ROOT
 
%post
%systemd_post ir-agent.service
 
%preun
%systemd_preun ir-agent.service
 
%postun
%systemd_postun_with_restart ir-agent.service
 
%files
%defattr(600,root,root,751)
%dir /opt/rapid7/ir_agent
%config %attr(600, root, root) /opt/rapid7/ir_agent/components/insight_agent/common/config.json
%attr(600, root, root) /opt/rapid7/ir_agent/*
%ghost /opt/rapid7/ir_agent/components/insight_agent/insight_agent
%attr(700, root, root) /opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/bootstrap
%attr(700, root, root) /opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/bootstrap_upgrader
%attr(700, root, root) /opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/connectivity_test
%attr(700, root, root) /opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/get_proxy
%attr(700, root, root) /opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/ir_agent
%attr(700, root, root) /opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/token_handler
%attr(700, root, root) /opt/rapid7/ir_agent/components/insight_agent/3.1.3.80/upgrade_agent
%attr(644, root, root) /usr/lib/systemd/system/ir-agent.service
%attr(644, root, root) /usr/lib/systemd/system-preset/90-ir-agent.preset
 
%doc
 
%changelog
* Sat Mar 5 2022 
- release 1.0 - initial release
 

我在构建 RPM 方面做得并不多,所以我不清楚除了定义“要求”之外还能做什么。

rpm rpmbuild
  • 1 个回答
  • 432 Views
Martin Hope
Cyker
Asked: 2019-01-13 09:38:20 +0800 CST

Fedora 29 Copr 上没有 Python

  • 3

我的一个 srcrpm提交给Copr构建失败,因为没有 Python 实现;这是因为 src rpm 本身有问题,还是 copr 机器上根本没有 Python 实现,或者我错过了一些设置?

checking for perl... /usr/bin/perl
checking for python... no
BUILDSTDERR: configure: error: You need 'python' to compile XXX
fedora rpmbuild
  • 1 个回答
  • 308 Views
Martin Hope
THEGreatGatsby
Asked: 2018-11-18 17:11:33 +0800 CST

Fedora rpm vs Redhat rpm?

  • 0

我们正在我们的一个 VMS 上执行 docker 安装。

我们怀疑 EPEL fedora 中的 Fedora rpm 是否与 RedHat 7.5 中的相似。

docker有什么区别吗?我们可以从fedora repo安装redhat docker rpm吗?

docker rpmbuild
  • 1 个回答
  • 1429 Views
Martin Hope
Viktor
Asked: 2018-10-10 07:10:43 +0800 CST

使用 rpmbuild 安装 RPM 期间的自定义选项

  • 0

我想在 RPM 安装期间使用自定义选项。我使用 rpmbuild 来制作 RPM,所以我有 SPEC 文件。
我可以定义我自己的选项,我可以在 SPEC 文件中使用(例如rpm -i --r_password=something acme-1.1-1.el7.noarch.rpm,r_password的值将被放入一个文件 -> 由%postSPEC 文件的部分控制)?

rpm rpmbuild
  • 1 个回答
  • 626 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve