Linux rpminstall-安装期间在rpm内运行shell脚本

Linux rpminstall-安装期间在rpm内运行shell脚本,linux,rpm,Linux,Rpm,我正在开发一个RPM,每当我运行rpmbuild时,它都会将tar文件解包成RPM。关于这个过程,我有两个问题: 我将tar文件解包到RPM的过程是否正确 当我将实际的rpm安装到服务器上时,我希望它在rpm中运行一个脚本,我在install.sh中复制了这个脚本。我该怎么做 %build # let's skip this for now %install mkdir -p %{buildroot} chmod 755 ~/rpmbuild/SOURCES/bin/* cp -frv ~/r

我正在开发一个RPM,每当我运行rpmbuild时,它都会将tar文件解包成RPM。关于这个过程,我有两个问题:

  • 我将tar文件解包到RPM的过程是否正确
  • 当我将实际的rpm安装到服务器上时,我希望它在rpm中运行一个脚本,我在
    install.sh
    中复制了这个脚本。我该怎么做

    %build
    # let's skip this for now
    
    %install
    mkdir -p %{buildroot}
    chmod 755 ~/rpmbuild/SOURCES/bin/*
    cp -frv ~/rpmbuild/SOURCES/bin/* %{buildroot}
    
    %files
    /*
    
    %changelog
    # let's skip this for now
    

  • RPM通常支持安装前和安装后/卸载脚本。它们由
    %pre
    %post
    %preun
    %poston
    定义。因此,如果您确定此文件(
    install.sh
    )已存在,则可以通过以下方式运行它:

    %pre
    /path/to/install.sh
    


    un
    表示这些脚本在卸载时运行<代码>%post在安装后运行。您可能希望脚本内容本身位于specfile中,而不是外部文件中。您的第一个示例不起作用,因为在运行
    %pre
    时,
    /path/to/install.sh
    尚未安装。
    %post 
    /path/to/install.sh