2016-11-14 11 views
1

Я пытаюсь создать 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, но я смущен тем, где объявить каталог установки и где объявить, что я хочу в пакете.

ответ

3

Вам нужно добавить /local/0/opt к вашему %files разделе

Это инструктирует процесс сборки оборотов в минуту, где найти файлы, которые он должен пакет в конце.

Кроме того, необходимо установить и манипулировать файлами относительно вашего оборотов Buildroot внутри %install

%install 
mkdir -p %{buildroot}/local/0 
cp -r /root/rpmbuild/BUILD/Agent %{buildroot}/local/0/opt 
cd %{buildroot}/local/0/opt/Agent 

, так как процесс сборки оборотов будет выглядеть внутри там файлы для упаковки.

Возможно, вы захотите очистить этот файл спецификации, включая помещение %clean выше %files и перемещение %install действий внутри %build.

+0

Hi Matt. Я действительно пробовал это перед публикацией. Вот ошибка, которую она мне дала. 'Ошибки сборки RPM: Directory not found:/root/rpmbuild/BUILDROOT/AutomicAgent-1.0-1.x86_64/local/0/opt' – Pudding

+0

@Pudding Обновлен ответ. Должен работать сейчас. –

+0

Спасибо за помощь. К сожалению, я все еще получаю сообщение об ошибке '+ 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

 Смежные вопросы

  • Нет связанных вопросов^_^