从二进制文件创建 RPM 包不会将文件打包到存档中
creating an RPM package from binary file doesn't package the files into an archive
我正在尝试从使用 pkg
.
打包到二进制文件中的节点项目创建 RPM 包
我在 /root/rpmbuild
.
中创建了一个 rpmbuild
骨架
二进制包已复制到 /root/rpmbuild/SOURCES
。
我在 /root/rpmbuild
中创建了一个 menlolab-runner.service
文件。
我正在跳过 .spec
文件中的 %prep
和 %build
部分。在安装部分,二进制文件被复制到 /usr/bin
文件夹。在 %post
部分中,服务文件被复制到 /etc/systemd/system/
%define version %(cat package.json | jq -r '.version')
%define release 1
%define buildroot /root/rpmbuild/BUILDROOT/
Name: %{name}
Version: %{version}
Release: %{release}
Summary: menlolab-runner
Group: Installation Script
License: MIT
Source0: runner
AutoReqProv: no
%description
The agent deployed on private and public infrastructure to manage tasks.
%global debug_package %{nil}
%prep
%build
%pre
getent group menlolab-runner >/dev/null || groupadd -r menlolab-runner
getent passwd menlolab-runner >/dev/null || useradd -r -g menlolab-runner -G menlolab-runner -d / -s /sbin/nologin -c "menlolab-runner" menlolab-runner
%install
mkdir -p %{buildroot}%{_bindir}/
mkdir -p %{buildroot}%{_unitdir}
cp runner %{buildroot}%{_bindir}/menlolab-runner
cp /root/rpmbuild/menlolab-runner.service %{buildroot}%{_unitdir}
%post
systemctl enable %{_unitdir}/menlolab-runner.service
chmod ugo+x /usr/bin/menlolab-runner
mkdir -p '/etc/menlolab-runner/'
chown -R 'menlolab-runner:menlolab-runner' '/etc/menlolab-runner'
chmod 700 '/etc/menlolab-runner'
mkdir -p '/var/lib/menlolab-runner/'
chown -R 'menlolab-runner:menlolab-runner' '/var/lib/menlolab-runner/'
mkdir -p '/var/lib/menlolab-runner/jobs/'
chown -R 'menlolab-runner:menlolab-runner' '/var/lib/menlolab-runner/jobs/'
chmod 700 '/var/lib/menlolab-runner/jobs/'
mkdir -p '/var/log/menlolab-runner/'
chown -R 'menlolab-runner:menlolab-runner' '/var/log/menlolab-runner/'
mkdir -p '/var/cache/menlolab-runner/'
chown -R 'menlolab-runner:menlolab-runner' '/var/cache/menlolab-runner/'
groupadd docker
usermod -aG docker menlolab-runner
%clean
rm -rf %{buildroot}
%files
%{_bindir}/menlolab-runner
%{_unitdir}/menlolab-runner.service
%defattr(644, menlolab-runner, menlolab-runner, 755)
我的问题是 .rpm
在执行 rpmbuild -ba /path/to/spec/file
后不包含任何文件。
我认为这是因为我在 %files
部分没有条目。我不确定在这个部分放什么。如果我在那里添加二进制文件的路径,我会收到以下错误:
error: File not found: /root/rpmbuild/BUILDROOT/menlolab-runner-0.2.5a2-1.x86_64/root/rpmbuild/SOURCES/runner
在您的 %install
部分中,您必须将文件放入 $RPM_BUILD_ROOT
,例如:
%install
cp runner $RPM_BUILD_ROOT%{_bindir}/menlolab-runner
随后,%files
部分应列出相对于 $RPM_BUILD_ROOT
已安装的文件,例如:
%files
%{_bindir}/menlolab-runner
我正在尝试从使用 pkg
.
打包到二进制文件中的节点项目创建 RPM 包
我在 /root/rpmbuild
.
中创建了一个 rpmbuild
骨架
二进制包已复制到 /root/rpmbuild/SOURCES
。
我在 /root/rpmbuild
中创建了一个 menlolab-runner.service
文件。
我正在跳过 .spec
文件中的 %prep
和 %build
部分。在安装部分,二进制文件被复制到 /usr/bin
文件夹。在 %post
部分中,服务文件被复制到 /etc/systemd/system/
%define version %(cat package.json | jq -r '.version')
%define release 1
%define buildroot /root/rpmbuild/BUILDROOT/
Name: %{name}
Version: %{version}
Release: %{release}
Summary: menlolab-runner
Group: Installation Script
License: MIT
Source0: runner
AutoReqProv: no
%description
The agent deployed on private and public infrastructure to manage tasks.
%global debug_package %{nil}
%prep
%build
%pre
getent group menlolab-runner >/dev/null || groupadd -r menlolab-runner
getent passwd menlolab-runner >/dev/null || useradd -r -g menlolab-runner -G menlolab-runner -d / -s /sbin/nologin -c "menlolab-runner" menlolab-runner
%install
mkdir -p %{buildroot}%{_bindir}/
mkdir -p %{buildroot}%{_unitdir}
cp runner %{buildroot}%{_bindir}/menlolab-runner
cp /root/rpmbuild/menlolab-runner.service %{buildroot}%{_unitdir}
%post
systemctl enable %{_unitdir}/menlolab-runner.service
chmod ugo+x /usr/bin/menlolab-runner
mkdir -p '/etc/menlolab-runner/'
chown -R 'menlolab-runner:menlolab-runner' '/etc/menlolab-runner'
chmod 700 '/etc/menlolab-runner'
mkdir -p '/var/lib/menlolab-runner/'
chown -R 'menlolab-runner:menlolab-runner' '/var/lib/menlolab-runner/'
mkdir -p '/var/lib/menlolab-runner/jobs/'
chown -R 'menlolab-runner:menlolab-runner' '/var/lib/menlolab-runner/jobs/'
chmod 700 '/var/lib/menlolab-runner/jobs/'
mkdir -p '/var/log/menlolab-runner/'
chown -R 'menlolab-runner:menlolab-runner' '/var/log/menlolab-runner/'
mkdir -p '/var/cache/menlolab-runner/'
chown -R 'menlolab-runner:menlolab-runner' '/var/cache/menlolab-runner/'
groupadd docker
usermod -aG docker menlolab-runner
%clean
rm -rf %{buildroot}
%files
%{_bindir}/menlolab-runner
%{_unitdir}/menlolab-runner.service
%defattr(644, menlolab-runner, menlolab-runner, 755)
我的问题是 .rpm
在执行 rpmbuild -ba /path/to/spec/file
后不包含任何文件。
我认为这是因为我在 %files
部分没有条目。我不确定在这个部分放什么。如果我在那里添加二进制文件的路径,我会收到以下错误:
error: File not found: /root/rpmbuild/BUILDROOT/menlolab-runner-0.2.5a2-1.x86_64/root/rpmbuild/SOURCES/runner
在您的 %install
部分中,您必须将文件放入 $RPM_BUILD_ROOT
,例如:
%install
cp runner $RPM_BUILD_ROOT%{_bindir}/menlolab-runner
随后,%files
部分应列出相对于 $RPM_BUILD_ROOT
已安装的文件,例如:
%files
%{_bindir}/menlolab-runner