RPM-SPEC - Bash Script не устанавливает пакеты, указанные в% post файле SPEC - PullRequest
1 голос
/ 27 сентября 2019

Я написал скрипт bash для установки нескольких пакетов и вызова скрипта bash в% post.Но это не выполнение сценария.Я новичок в этой области, и я не уверен, что мне не хватает.

Если я вручную выполню сценарий, он работает нормально, но не через пакет rpm.

InstallRPM.spec file:

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.sh

Сценарий оболочки:

#!/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

1 Ответ

0 голосов
/ 30 сентября 2019

Вы используете rpm неправильный путь.Не устанавливайте зависимости в %post скрипте.Я предлагаю вам сначала прочитать руководство по упаковке rpm .

Вы должны использовать Requires в вашем файле спецификации, например:

Requires: vim
Requires: zip
...