模拟构建系统错误:sh:ruby:未找到命令

模拟构建系统错误:sh:ruby:未找到命令

我正在尝试使用模拟构建系统构建 RPM。但是,模拟环境中的 shell 似乎找不到 ruby​​ 命令。我遇到了构建错误:

sh: ruby: command not found

我可以看到 ruby​​ 安装在模拟环境中,因为它是 spec 文件的 BuildRequires 依赖项:

DEBUG util.py:257:  Getting requirements for thrift-0.8.0-1.el6.src
DEBUG util.py:257:   --> byacc-1.9.20070509-6.1.el6.x86_64
DEBUG util.py:257:   --> boost-devel-1.41.0-11.el6_1.2.x86_64
DEBUG util.py:257:   --> dos2unix-3.1-37.el6.x86_64
DEBUG util.py:257:   --> flex-2.5.35-8.el6.x86_64
DEBUG util.py:257:   --> libevent-devel-1.4.13-1.el6.x86_64
DEBUG util.py:257:   --> libtool-2.2.6-15.5.el6.x86_64
DEBUG util.py:257:   --> zlib-devel-1.2.3-27.el6.x86_64
DEBUG util.py:257:   --> openssl-devel-1.0.0-20.el6_2.3.x86_64
DEBUG util.py:257:   --> git-1.7.1-2.el6_0.1.x86_64
DEBUG util.py:257:   --> erlang-R14B-04.1.el6.x86_64
DEBUG util.py:257:   --> 4:perl-devel-5.10.1-119.el6_1.1.x86_64
DEBUG util.py:257:   --> php-devel-5.3.3-3.el6_2.6.x86_64
DEBUG util.py:257:   --> python-devel-2.6.6-29.el6.x86_64
DEBUG util.py:257:   --> ruby-1.8.7.352-7.el6_2.x86_64
DEBUG util.py:257:   --> ruby-devel-1.8.7.352-7.el6_2.x86_64

如果我在模拟环境中手动安装 ruby​​,shell 就可以正常使用它:

[ashinn@rpmbuilder ~]$ mock -q --shell "ruby -v"
/bin/bash: ruby: command not found
[ashinn@rpmbuilder ~]$ mock -q --install ruby
[ashinn@rpmbuilder ~]$ mock -q --shell "ruby -v"
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
[ashinn@rpmbuilder ~]$

但即使我使用 --no-clean 运行,构建仍然会失败。让我印象深刻的一件事是 mock --shell 在 /bin/bash 上失败。但 rpmbuild 输出在 /bin/sh 上失败。

为什么 shell 有差异?这会导致问题吗?

相关内容