Я пытаюсь создать RPM, чтобы просто разархивировать tar, изменить некоторые разрешения, а затем эхо-то в зависимости от процесса. Вот файл .spec
..spec файл создает пустой .rpm
Summary: Linux agent V.1
Name: Agent
Version: 1.0
Release: 1
License: GPL
Source: Agent.tar.gz
Vendor: test
Packager: test
%description
Test Linux agent
%prep
if ps aux | grep "[u]cx"; then
pkill -f ucx
else
echo "Current agent is not running."
fi
%setup -n Agent
%install
cp -r /root/rpmbuild/BUILD/Agent /local/0/opt
cd /local/0/opt/Agent
chown -R root.root *
cd bin/
chown root.root test1 test2
chmod 775 test1 test2
chmod +s test1 test2
if ps aux | grep "[u]cy"; then
echo "managerup"
else
echo "manager down"
fi
%files
%clean
rm -rf /root/rpmbuild/BUILD/Agent
При строительстве зданий файл .spec
строит чисто и создает обороты. Он также выполняет команды, и я получаю соответствующие файлы в /local/0/opt
. Соответствующая команда построения - rpmbuild -ba agent.spec
. Я попытался сделать это в подробном режиме, и это тоже не дает мне ошибку.
Однако созданный файл .rpm
пуст и на самом деле ничего не делает. Я думаю, что это проблема с файлом .spec
. Однако, поскольку вывод не дает мне ошибку, я не уверен, в чем проблема.
Я следовал http://www.rpm.org/max-rpm/s1-rpm-build-creating-spec-file.html
Я считаю, что проблема заключается в %files
разделе. Я хочу, чтобы он просто разворачивал tar до local/0/opt
, но я смущен тем, где объявить каталог установки и где объявить, что я хочу в пакете.
Hi Matt. Я действительно пробовал это перед публикацией. Вот ошибка, которую она мне дала. 'Ошибки сборки RPM: Directory not found:/root/rpmbuild/BUILDROOT/AutomicAgent-1.0-1.x86_64/local/0/opt' – Pudding
@Pudding Обновлен ответ. Должен работать сейчас. –
Спасибо за помощь. К сожалению, я все еще получаю сообщение об ошибке '+ cp -r/root/rpmbuild/BUILD/Agent /root/rpmbuild/BUILDROOT/Agent-1.0-1.x86_64/local/0/opt cp: невозможно создать каталог '/ root/rpmbuild/BUILDROOT/Agent-1.0-1.x86_64/local/0/opt ': Нет такого файла или каталога 'Я попробую установить buildroot в верхней части спецификационного файла. Просто убедитесь, что это/root/rpmbuild/BUILD/{name} по умолчанию buildroot? – Pudding