首页 > 解决方案 > 如何使用 rpmbuild 打包 Rust 应用程序?

问题描述

我有一个示例 rust 应用程序,我想将其打包为 rpm 文件,但目前无法这样做,因为我总是收到此错误。

error: no matching package named `rand` found
location searched: registry `crates-io`
required by package `hello_rust_dependencies v0.1.0 (/home/jlee/rpmbuild/BUILD/hello-rust-dependencies)`
error: Bad exit status from /var/tmp/rpm-tmp.brtRMA (%build)

在这种情况下,货物似乎可以找到板条箱依赖项?但是我试过了cargo buildcargo package这些都很好,只有 rpmbuild 给出了这个错误,所以......我想知道我是否错过了我的规范文件中的某些内容,或者在我开始打包之前我的项目中是否还有其他内容?

更新

为了进一步解释我的目标,我现在尝试使用openSUSE 的 open-build-service,我什至设置了一个全新的 openSUSE 环境,这样我就可以完全复制他们指南中的步骤。但我还是失败了,它现在仍然可以找到板条箱“rand”......

临时解决方案(也许)

我遇到了这个货物扩展cargo-rpm,并最终成功构建了一个 .rpm 包。但是这个工具的内部工作是cargo build先运行然后将二进制文件打包成 rpm 文件,这样做感觉不太对,因为它违反了@marbu 提到的 Rust 打包指南。并且知道 Fedora 和 OpenSUSE 都有自己的打包 Rust 应用程序的指南,我仍然相信它可以在不使用其他工具的情况下完成。

标签: rustrpmrust-cargorpmbuildopensuse

解决方案


推荐阅读