Я пытаюсь построить RPM для моего кода Java. Разделы сборки и установки RPM работают нормально. Но позже я добавил сценарий оболочки в% post, чтобы запустить файл сценария оболочки, который создает некоторые файлы и запускает приложение Java. Файл копируется нормально. Но в разделе% post я получаю ошибку bin / sh с ошибками. Я собираю rpm на машине linux, а целевые машины - centOS. Я также пробовал AutoReqProv: нет в spec-файл. Я не запускаю установку от имени пользователя root. Кроме того, на целевых машинах не должно быть ANT (я использую его для создания кода Java, это может быть не связано с проблемой). Я прилагаю Код ниже. По умолчанию расположение установки находится в папке tmp. (для тестирования).
Summary: test Summary: test
Name: test
Version: 1
Release: 1
License: Restricted
Group: Applications/System
BuildRoot: ~/rpm/BUILD/helloworld-root
URL: http://mycompany.net/helloworld.tar
Vendor: Mycompany
Packager: Mycompany
Prefix: /tmp
BuildArchitectures: x86_64
%description
Hello World
%prep
pwd
%build
pwd
echo "changing directory"
echo $RPM_BUILD_ROOT
cd %{_sourcedir}
pwd
ant -f testbuild.xml
%install
pwd
echo "in install"
echo $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/tmp/test/
cd $RPM_BUILD_ROOT/tmp/test/
tar -xf %{_builddir}/test.tar
%post
sh /tmp/test/createdb.sh
%clean
%files
/tmp/test
%changelog
Я также выполнил поиск в Google, но не смог найти способ запуска сценария оболочки из spec.with раздела post, я попытался запустить через командную строку, он работает нормально. Я ценю помощь, если кто-то может указать, где проблема является?