我正在尝试通过rpm在CentOS-7上部署一个相当大的rpm项目,但是当我运行"rpm -i rpm- project -1.0.0-1.0.0.x86_64“时,我得到以下输出:
error: Failed dependencies:
ld-linux-aarch64.so.1()(64bit) is needed by rpm-project-1.0.0-1.0.0.x86_64
ld-linux-aarch64.so.1(GLIBC_2.17)(64bit) is needed by rpm-project-1.0.0-1.0.0.x86_64
libXss.so.1()(64bit) is needed by rpm-project-1.0.0-1.0.0.x86_64
libatk-bridge-2.0.so.0()(64bit) is needed by rpm-project-1.0.0-1.0.0.x86_64
libatspi.so.0()(64bit) is needed by rpm-project-1.0.0-1.0.0.x86_64
libgcc_s.so.1(GCC_3.5) is needed by rpm-project-1.0.0-1.0.0.x86_64
libgdk-3.so.0()(64bit) is needed by rpm-project-1.0.0-1.0.0.x86_64
libgtk-3.so.0()(64bit) is needed by rpm-project-1.0.0-1.0.0.x86_64
libpthread.so.0(GLIBC_2.17)(64bit) is needed by rpm-project-1.0.0-1.0.0.x86_64
libstdc++.so.6(CXXABI_ARM_1.3.3) is needed by rpm-project-1.0.0-1.0.0.x86_64
我知道这不是我的机器的问题,因为它成功地安装了我之前创建的另一个项目rpm。一些依赖失败发生在已经安装的包上,还有一些是yum找不到的包。例如,我尝试通过几种不同的方式安装ld-linux-aarch64.so.1()(64位),甚至在'ld‘和'linux’上运行yum搜索也没有找到任何输出。我也被一些试图在他们的圆括号中询问额外细节的包搞糊涂了。“libstdc++.so.6( CXXABI_ARM_1.3.3 )”似乎在请求libstdc++.so.6,这是libstdc++的一部分,但我找不到关于CXXABI_ARM_1.3.3的任何细节,或者它的意思,为什么它想要它,或者它从哪里获得请求。我确实知道这些依赖项中的很多都是“开发工具”组的一部分,我已经单独和通过yum groupinstall安装了这个组。‘’libatk bridge-2.0.so.0()(64bit)‘似乎也不存在。我试过使用npm中的rpm-builder,然后直接生成一个.spec文件并运行rpm-build。下面是我制作的Specfile:
Name: project
Version: 1.0.0
Release: 1.0.0
Summary: No summary
License: OTHERLICENSE
BuildArch: x86_64
Vendor: Vendor
Group: Development/Tools
%description
No description
%build
./../BUILDROOT/builder.pl
%files
"/build/project-cli/bin/run"
"/build/project-cli/bin/run.cmd"
"/build/project-cli/build/linux/project"
"/build/project-cli/build/linux/project.gz"
"/build/project-cli/build/build.js"
"/build/project-cli/build/build.sh"
"/build/project-cli/build/release.sh"
"/build/project-cli/LICENSE"
"/build/project-cli/node_modules/*"
"/build/project-cli/project-core/build"
"/build/project-cli/project-core/doc"
"/build/project-cli/project-core/LICENSE"
"/build/project-cli/project-core/node_modules"
"/build/project-cli/project-core/project-cluster-api"
"/build/project-cli/project-core/package-lock.json"
"/build/project-cli/project-core/package.json"
"/build/project-cli/project-core/src"
"/build/project-cli/package-lock.json"
"/build/project-cli/package.json"
"/build/project-cli/README.md"
"/build/project-cli/src/commands"
"/build/project-cli/src/hooks"
"/build/project-web-api/build/build.js"
"/build/project-web-api/build/build.sh"
"/build/project-web-api/build/linux"
"/build/project-web-api/build/release.sh"
"/build/project-web-api/config.js"
"/build/project-web-api/docs/endpoints"
"/build/project-web-api/docs/objects.md"
"/build/project-web-api/docs/util.md"
"/build/project-web-api/index.js"
"/build/project-web-api/node_modules/*"
"/build/project-web-api/project-core/build"
"/build/project-web-api/project-core/doc"
"/build/project-web-api/project-core/LICENSE"
"/build/project-web-api/project-core/node_modules"
"/build/project-web-api/project-core/project-cluster-api"
"/build/project-web-api/project-core/package-lock.json"
"/build/project-web-api/project-core/package.json"
"/build/project-web-api/project-core/src"
"/build/project-web-api/package-lock.json"
"/build/project-web-api/package.json"
"/build/project-web-api/passport/auth.js"
"/build/project-web-api/passport/index.js"
"/build/project-web-api/passport/strategies.js"
"/build/project-web-api/README.md"
"/build/project-web-api/restart.sh"
"/build/project-web-api/routes/clusters.routes.js"
"/build/project-web-api/routes/credentials.routes.js"
"/build/project-web-api/routes/jobs.routes.js"
"/build/project-web-api/routes/license.routes.js"
"/build/project-web-api/routes/moab.routes.js"
"/build/project-web-api/routes/providers.routes.js"
"/build/project-web-api/routes/stacks.routes.js"
"/build/project-web-api/routes/users.routes.js"
"/build/project-web-api/restart.sh"
"/build/project-web-api/server.cert"
"/build/project-web-api/server.key"
"/build/project-web-api/start.sh"
"/build/project-web-api/stop.sh"
"/build/project-web-api/util/clusters.js"
"/build/project-web-api/util/credential.js"
"/build/project-web-api/util/email.js"
"/build/project-web-api/util/error.js"
"/build/project-web-api/util/files.js"
"/build/project-web-api/util/jobs.js"
"/build/project-web-api/util/managers"
"/build/project-web-api/util/project.js"
"/build/project-web-api/util/scripts"
"/build/project-web-ui/build/asset-manifest.json"
"/build/project-web-ui/build/assets"
"/build/project-web-ui/build/electron.js"
"/build/project-web-ui/build/favicon.ico"
"/build/project-web-ui/build/index.html"
"/build/project-web-ui/build/manifest.json"
"/build/project-web-ui/build/material-ui-static"
"/build/project-web-ui/build/precache-manifest.bf51f30dad406a5bf8d839d729041248.js"
"/build/project-web-ui/build/service-worker.js"
"/build/project-web-ui/build/static"
"/build/project-web-ui/jsconfig.json"
"/build/project-web-ui/node_modules/*"
...
there is more but I am out of characters. I had to shorten a lot of things here.
如果我尝试同时添加%install脚本和%build脚本,则无法找到安装脚本,并且进一步的测试显示,当构建脚本完成时,该目录将被擦除。这是所有的上下文,如果需要的话,我可以提供更多,但我实际上试图解决的事情是,rpm在构建后将不会安装。我身边没有任何人告诉我如何做到这一点,或者任何人解释rpms应该如何做他们通常做的事情,这是输出工作的二进制文件和服务,当你安装它们(据我所知),所以除了帮助我解决这个错误,任何关于rpms的常识也将非常感谢。
发布于 2021-05-01 08:54:38
您特别提到的文件(ld-linux-aarch64.so.1()(64bit)
和libstdc++.so.6(CXXABI_ARM_1.3.3)
)是ARM而不是x86_64。我假设您已经捆绑了其他东西,所以RPM依赖生成器会找到这些.so
文件,并假设您需要部署它们。更有可能的是,它们是你提供的有效负载,所以不需要是可执行的。
你需要找到它们并告诉rpmbuild
不要扫描它们。例如,如果它们位于子目录/srv/
中
%filter_requires_in -P /srv/
%filter_setup
更多信息请访问available on GitHub。
发布于 2021-08-20 18:07:01
我自己设法解决了这个问题。答案很简单。我需要使用非rpm方法完全构建并安装项目,然后执行rpm构建过程。这使得rpm停止请求我无法访问的内容。我不知道为什么,但简单地以其他方式安装项目就允许我生成一个工作的rpm。
https://stackoverflow.com/questions/67336627
复制相似问题