我编写了一个bash脚本来安装多个包,并在%post中调用该bash脚本。但是它并没有执行脚本。我是这个领域的新手,我不确定我错过了什么。
如果我手动执行这个脚本,它工作得很好,但不是通过rpm包。
InstallRPM.spec文件:
Name: InstallRPM
Version: 1
Release: 1%{?dist}
Summary: Install RPM Packages
License: Script
URL: NA
Source0: InstallRPM-1.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-buildroot
Requires: /bin/sh
%description
Install RPM files from the /tmp/ folder
%prep
%setup -q
%install
mkdir -p "$RPM_BUILD_ROOT"
cp -R * "$RPM_BUILD_ROOT"
%post
echo "Executing the script /tmp/InstallRPM.sh"
/tmp/InstallRPM.sh
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
/tmp/InstallRPM.shShell脚本:
#!/bin/bash
echo "Installing package using YUM"
package="vim zip"
echo "Install $package ..."
if [ "`cat /etc/centos-release | awk '{print $1}'`" == "CentOS" ]
then
{
for i in $package
do
{
#if [ "`/bin/rpm -qa $i | cut -d. -f1`" == "" ]
if [ "`/bin/rpm -qa $i`" == "" ]
then
{
echo "Clean Install"
/usr/bin/sudo /bin/yum install -y $i
}
else
{
echo "Upgrade"
/usr/bin/sudo /bin/yum update -y $i
}
fi
echo "****************"
}
done
}
fi我运行了rpmbuild -ba InstallRPM.spec,它创建了一个rpm文件,我执行了该文件,但什么也没有发生。它被挂在下面提到的地方。
Downloading packages:
vim-enhanced-7.4.629-6.el7.x86_64.rpm | 1.1 MB 00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
^C发布于 2019-09-30 17:23:10
您正在以错误的方式使用rpm。不要在%post脚本中安装依赖项。我建议你先读一下the rpm packaging guide。
您应该在等级库文件中使用Requires,如下所示:
Requires: vim
Requires: ziphttps://stackoverflow.com/questions/58138331
复制相似问题