Я бы хотел улучшить распространение и управление версиями программы, которую я унаследовал, которая в настоящее время распространяется как файл .tar.gz
, путем создания .rpm
для RHEL7, который просто извлекает содержимое в /usr/bin/
. Тарбол не маленький, состоит из файлов размером около 120 МБ.
Я новичок в сборке пакетов, поэтому я следовал примеру bello
из https://rpm-packaging-guide.github.io, но пример слишком прост для моих нужд.
Пока у меня есть этот файл .spec
:
Name: my-app
Version: 2.0
Release: 1%{?dist}
Summary: My application
License: Internal license
URL: <my-website>
Source0: <my-website>/%{name}-%{version}.rhel7.x86_64.tar.gz
Requires: bash
BuildArch: x86_64
%description
My application
%prep
%setup -q
%build
%install
mkdir -p %{buildroot}/%{_bindir}
install -m 0755 %{name} %{buildroot}/%{_bindir}/%{name}
%files
%{_bindir}/%{name}
, который генерирует очень маленький .rpm
всего с /usr/bin/my-app
. При установке, если жалуется на многие отсутствующие зависимости, которые находятся внутри каталога lib
тарбола, но, конечно, не в моем пакете.
Насколько я понимаю, директива %files
должна содержать список всех файлы, которые должны быть внутри .rpm
, но их сотни. Итак, я предполагаю, что есть лучший способ собрать пакет, в конце концов просто распаковывает архив.
У вас есть какие-нибудь указатели?