我有一个内部软件安装程序,其大小大于4.9GB, 它安装了一堆rpms /库,并在最后设置了一些配置。 我需要使用rpmbuild(这个rpm创建的新手)来创建RPM,以便安装RPM,并继续安装/执行此安装程序(它的bash文件)。
我的rpm规范当前正在执行此操作(您可以查看下面的代码):
%install
%post
将这些文件解压缩到特定文件夹中。
运行那些zip文件中的bash脚本安装程序(它将静默运行,因为它具有-s标志)。
成功完成bash和rpm的安装。
我已经建立了rpm,所以当我尝试:
yum install .rpm,
它做的zip部分很好,但在bash安装部分它永远不做任何事情,也许是因为这rpm锁定的事情,但是我不确定。
顺便说一句,我最终不确定这是否是一个好方法,我的意思是结合了rpm和安装内容
所以因为install.sh部分给了我这个问题,所以我尝试了以下不同的更改:
sudo /root/sotfware/install.sh -silent /root/software/silent_configfile.conf
/root/sotfware/install.sh -silent /root/software/silent_configfile.conf
./ root / sotfware / install.sh -silent /root/software/silent_configfile.conf
你们这家伙在做什么我错了吗?, 最好的方法是什么?要么 您对此有何建议?
这是规格文件:
Name: software-19
Version: 1.0
Release: 1
Summary: software 2019
License: N/A
URL: https://
AutoReqProv: no
AutoReq: no
%description
Some description
%install
mkdir -p %{buildroot}/root/software2019
cp /root/software/software-1.zip %{buildroot}/root/software2019/software-1.zip
cp /root/software/software-2.zip %{buildroot}/root/software2019/software-2.zip
%post
unzip /root/software/software-1.zip -d /root/software2019/
unzip /root/software/software-2.zip -d /root/software2019/rpm/
sudo /root/software/install.sh -s /root/software2019/silent_configfile.conf
rm -rf /root/software/
%clean
rm -rf %{buildroot}
%files
/root/software/*
%changelog
* Tue Jan 20 2019 1.0
- Initial release
希望我很清楚,谢谢!!
答案 0 :(得分:1)
您在这里遇到多个问题
您正在以root
的形式构建RPM,这很危险,如果书写不正确,可能会擦除计算机。由于您才刚刚入门,因此可能性更大。
源文件不应具有绝对路径。
您不应使用sudo
,因为RPM安装始终以root
的身份运行。
silent_configfile.conf
未包含在RPM中,因此目标计算机可能没有它。
%post
会删除您告诉RPM您将要安装的文件,这可能会导致错误。
rpm -V
验证。您通过在%post
中进行第三方安装来滥用RPM系统。
rpm -q --whatprovides /root/software19/myfile
之类的东西。rpm -V
,因为它无法验证您安装的文件。%preun
和相关文件来“做正确的事”。要正确执行操作并且在未来几年内不会引起管理员的头痛,您需要在目标RPM创建过程中运行那些安装程序(同样,将{em> not 设为root
!),并以目标为目标%{buildroot}
的大小,然后将结果文件结构作为RPM分发。如果这不能解决,那么RPM可能对您不起作用,您需要查看其他分发选项,例如自定义脚本。