为了账号安全,请及时绑定邮箱和手机立即绑定

使用 rpm-maven-plugin 构建 RPM 时消除对 Python 的依赖

使用 rpm-maven-plugin 构建 RPM 时消除对 Python 的依赖

三国纷争 2023-08-16 17:38:07
我正在使用 rpm-maven-plugin 构建 rpm 作为 mvn 构建的一部分,稍后将其安装在没有 Python 的 docker 映像中。该项目中也没有使用Python。但由于某种原因,生成的规范文件有以下行Requires: python >= 2.6我尝试放入<autoRequires>no</autoRequires><autoProvides>no</autoProvides>但效果不太好。这会导致 docker 构建失败,因为 rpm 安装由于缺少依赖项而失败。如何去掉对python的依赖?以下是我的 pom.xml 的摘录...<version.rpm-maven-plugin>2.2.0</version.rpm-maven-plugin>...<plugin>    <groupId>org.codehaus.mojo</groupId>    <artifactId>rpm-maven-plugin</artifactId>    <executions>        <execution>            <id>generate-rpm</id>            <phase>package</phase>            <goals>                <goal>rpm</goal>            </goals>        </execution>    </executions>    <configuration>        <group>XXX</group>        <vendor>XXX</vendor>        <copyTo>            target/${install.package.name}-${project.version}.rpm        </copyTo>        <targetOS>linux</targetOS>        <autoRequires>no</autoRequires>        <autoProvides>no</autoProvides>        <mappings>            ...        </mappings>        <preinstallScriptlet>            <scriptFile>${basedir}/src/main/package/control/preinst</scriptFile>            <fileEncoding>utf-8</fileEncoding>        </preinstallScriptlet>        <postinstallScriptlet>            <scriptFile>${basedir}/src/main/package/control/postinst</scriptFile>            <fileEncoding>utf-8</fileEncoding>        </postinstallScriptlet>        <preremoveScriptlet>            <scriptFile>${basedir}/src/main/package/control/prerm</scriptFile>            <fileEncoding>utf-8</fileEncoding>        </preremoveScriptlet>        <postremoveScriptlet>            <scriptFile>${basedir}/src/main/package/control/postrm</scriptFile>            <fileEncoding>utf-8</fileEncoding>        </postremoveScriptlet>        <cleanScriptlet>            <script>rm -rf ${project.build.directory}/rpm/buildroot</script>        </cleanScriptlet>    </configuration></plugin>Maven版本:3.5.4。目标 docker 镜像运行简单的 SLES linux,只包含所需的内容,并且没有 Python。
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

通过手动覆盖需求部分让它工作


...

<autoRequires>no</autoRequires>

<autoProvides>no</autoProvides>

<requires>

  <require>java-11-openjdk-headless</require>

</requires>

...


查看完整回答
反对 回复 2023-08-16
  • 1 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信