找不到rpmbuild规格文件

发布于 2025-01-28 04:01:30 字数 3801 浏览 2 评论 0原文

我正在尝试构建一些脚本和系统配置(添加用户,将ssh键添加到oteruitied_keys中),然后将其捆绑在RPM软件包中。我发现很难获得一些适当的文档。

这是我的规格文件,我不确定我在做什么错。

这里的目标是在RHEL8上安装Lsyncd依赖项,提取Gateway-tools.tar软件包,然后在 /usr /bin中安装脚本。安装公共密钥(如果不存在的话,请创建.ssh目录),并将某些用户添加到Sudoers文件中。

Name:           exe-gateway
Version:        1.0
Release:        0
Summary:        ESAO EXE Gateway utils

License:        GPL
URL:            /
Source0:        gateway-tools.tar

Requires:       epel-release
Requires:       inotify
Requires:       lsyncd

BuildArch:      x86_64

%description
ESAO EXE Gateway tools, scripts and dependencies along with system configuration

%prep
tar -xf %{_sourcedir}/gateway-tools.tar
mkdir -p $RPM_BUILD_ROOT/usr/local/bin/
mkdir -p $RPM_BUILD_ROOT/usr/local/share/utils
echo %{_specdir}
cp ./gateway-tools/scripts/* $RPM_BUILD_ROOT/usr/local/bin
cp ./gateway-tools/assets/* $RPM_BUILD_ROOT/usr/local/share/utils
ls -lRa $RPM_BUILD_ROOT
exit

%setup -q -n gateway-tools

%install

%post
mkdir -p /local/home/esaoadmi/.ssh
ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa <<< n >/dev/null 2>&1
mkdir -p /var/log/lsyncd
touch /etc/lsyncd.conf
touch /var/log/lsyncd/lsyncd.{log,status}
chown -R root:users /var/log/lsyncd /etc/lsyncd.conf
chmod -R g+r /var/log/lsyncd
chmod -R g+w /etc/lsyncd.conf
echo "%users ALL=(root) NOPASSWD: /bin/systemctl restart lsyncd, /bin/systemctl reload lsyncd" > /etc/sudoers.d/users

%clean

%files
%attr(0744, esaoadmi, users) /usr/local/bin/*
%attr(0600, esaoadmi, users) /usr/local/share/utils/gtsi_key.pub

rpmbuild命令的结果:

Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.rZn36O
+ umask 022
+ cd /home/esaoadmi/gateway/rpmbuild/BUILD
+ tar -xf /home/esaoadmi/gateway/rpmbuild/SOURCES/gateway-tools.tar
+ mkdir -p /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/bin/
+ mkdir -p /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/share/utils
+ echo /home/esaoadmi/gateway/rpmbuild/SPECS
/home/esaoadmi/gateway/rpmbuild/SPECS
+ cp ./gateway-tools/scripts/init_sync.sh ./gateway-tools/scripts/install.sh ./gateway-tools/scripts/stop_sync.sh /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/bin
+ cp ./gateway-tools/assets/gtsi_key.pub ./gateway-tools/assets/lsyncd.conf.lua.template /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/share/utils
+ exit
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.xAU4MR
+ umask 022
+ cd /home/esaoadmi/gateway/rpmbuild/BUILD
+ '[' /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64 '!=' / ']'
+ rm -rf /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64
++ dirname /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64
+ mkdir -p /home/esaoadmi/gateway/rpmbuild/BUILDROOT
+ mkdir /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64
+ cd gateway-tools
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-ldconfig
/sbin/ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf: No such file or directory
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip /usr/bin/strip
+ /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile '' 1
+ /usr/lib/rpm/brp-python-hardlink
+ PYTHON3=/usr/libexec/platform-python
+ /usr/lib/rpm/redhat/brp-mangle-shebangs
Processing files: exe-gateway-1.0-0.x86_64
error: File not found: /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/bin/*
error: File not found: /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/share/utils/gtsi_key.pub

I am trying to build some scripts and system configuration (adding users, adding SSH key to authorized_keys) and bundle it in a RPM package. I find it very hard to get some proper documentation.

Here's my SPEC file, I am unsure what I am doing wrong.

The goal here is to install lsyncd dependencies on RHEL8, extract the gateway-tools.tar package and install scripts in /usr/bin. Install a public key (create .ssh directory if doesn't exist), and add some commands for a certain user to sudoers file.

Name:           exe-gateway
Version:        1.0
Release:        0
Summary:        ESAO EXE Gateway utils

License:        GPL
URL:            /
Source0:        gateway-tools.tar

Requires:       epel-release
Requires:       inotify
Requires:       lsyncd

BuildArch:      x86_64

%description
ESAO EXE Gateway tools, scripts and dependencies along with system configuration

%prep
tar -xf %{_sourcedir}/gateway-tools.tar
mkdir -p $RPM_BUILD_ROOT/usr/local/bin/
mkdir -p $RPM_BUILD_ROOT/usr/local/share/utils
echo %{_specdir}
cp ./gateway-tools/scripts/* $RPM_BUILD_ROOT/usr/local/bin
cp ./gateway-tools/assets/* $RPM_BUILD_ROOT/usr/local/share/utils
ls -lRa $RPM_BUILD_ROOT
exit

%setup -q -n gateway-tools

%install

%post
mkdir -p /local/home/esaoadmi/.ssh
ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa <<< n >/dev/null 2>&1
mkdir -p /var/log/lsyncd
touch /etc/lsyncd.conf
touch /var/log/lsyncd/lsyncd.{log,status}
chown -R root:users /var/log/lsyncd /etc/lsyncd.conf
chmod -R g+r /var/log/lsyncd
chmod -R g+w /etc/lsyncd.conf
echo "%users ALL=(root) NOPASSWD: /bin/systemctl restart lsyncd, /bin/systemctl reload lsyncd" > /etc/sudoers.d/users

%clean

%files
%attr(0744, esaoadmi, users) /usr/local/bin/*
%attr(0600, esaoadmi, users) /usr/local/share/utils/gtsi_key.pub

Results of the rpmbuild command :

Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.rZn36O
+ umask 022
+ cd /home/esaoadmi/gateway/rpmbuild/BUILD
+ tar -xf /home/esaoadmi/gateway/rpmbuild/SOURCES/gateway-tools.tar
+ mkdir -p /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/bin/
+ mkdir -p /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/share/utils
+ echo /home/esaoadmi/gateway/rpmbuild/SPECS
/home/esaoadmi/gateway/rpmbuild/SPECS
+ cp ./gateway-tools/scripts/init_sync.sh ./gateway-tools/scripts/install.sh ./gateway-tools/scripts/stop_sync.sh /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/bin
+ cp ./gateway-tools/assets/gtsi_key.pub ./gateway-tools/assets/lsyncd.conf.lua.template /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/share/utils
+ exit
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.xAU4MR
+ umask 022
+ cd /home/esaoadmi/gateway/rpmbuild/BUILD
+ '[' /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64 '!=' / ']'
+ rm -rf /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64
++ dirname /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64
+ mkdir -p /home/esaoadmi/gateway/rpmbuild/BUILDROOT
+ mkdir /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64
+ cd gateway-tools
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-ldconfig
/sbin/ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf: No such file or directory
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip /usr/bin/strip
+ /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile '' 1
+ /usr/lib/rpm/brp-python-hardlink
+ PYTHON3=/usr/libexec/platform-python
+ /usr/lib/rpm/redhat/brp-mangle-shebangs
Processing files: exe-gateway-1.0-0.x86_64
error: File not found: /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/bin/*
error: File not found: /home/esaoadmi/gateway/rpmbuild/BUILDROOT/exe-gateway-1.0-0.x86_64/usr/local/share/utils/gtsi_key.pub

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文