2017-07-25 63 views
2

這裏有一點非常奇怪。我建立一個RPM包,這裏是我的規格文件:沒有在第二次安裝的rpm上創建的符號鏈接

[[email protected] rpmbuild]# cat SPECS/generated.spec 
# The name of your package 
Name: sotoolkit 

# A short summary of your package 
Summary: Toolkit 

# The version of your package 
Version: 1.5 

# The release number of your package 
Release: 1 

#URL 
URL: https://github.blah blah blah 

# Any license you wish to list 
License: GPLv2 

# What group this RPM would typically reside in 
Group: Development/Tools 

# Who packaged this RPM 
Packager: Me 

# The build architecture of this RPM (noarch/x86_64/i386/etc) 
Buildarch: noarch 

# You generally should not need to mess with this setting 
Buildroot: %{_tmppath}/%{name} 

# Change this extension to change the compression level in your RPM 
# tar/tar.gz/tar.bz2 
Source0: %{name}.tar.gz 

# If you are having trouble building a package and need to disable 
# automatic dependency/provides checking, uncomment this: 
AutoReqProv: no 

# If this package has prerequisites, uncomment this line and 
# list them here - examples are already listed 
#Requires: bash, python >= 2.7 

# A more verbose description of your package 
%description 
Toolkit v.1.5 

# You probably do not need to change this 
%define debug_package %{nil} 

%prep 
%setup -q -c 

%build 

%install 
rsync -a . %{buildroot}/ 
ln -sf /integration/scripts/sotoolkit1.5/start.sh /usr/bin/sotoolkit 

%clean 
rm -rf %{buildroot} 

#%pre 

#%post 

#%preun 

%postun 
unlink /usr/bin/sotoolkit 

#%trigger 

#%triggerin 

#%triggerun 

%changelog 
* Tue Jul 18 2017 L.Popovski <[email protected]> 
- 1.5-1 

%files 
%attr(0644, root, root) "/README" 
%attr(0755, root, root) %dir "/integration/scripts/sotoolkit1.5/changelog" 
%attr(0644, root, root) "/integration/scripts/sotoolkit1.5/changelog/fixes1.5.txt" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/check_if_single_or_multinode.sh" 
%attr(0755, root, root) %dir "/integration/scripts/sotoolkit1.5/log" 
%attr(0755, root, root) %dir "/integration/scripts/sotoolkit1.5/multinode" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/exp" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/firmware_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/fm_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/fs_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/functions_multi" 
%attr(0755, root, root) %dir "/integration/scripts/sotoolkit1.5/multinode/log_tools" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/log_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/log_tools/collectl_perf.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/log_tools/crashdump.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/log_tools/exp" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/log_tools/timediff.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/log_tools/vsp_collect.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/menu.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/node_tools.sh" 
%attr(0755, root, root) %dir "/integration/scripts/sotoolkit1.5/multinode/other_tools" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/other_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/other_tools/b6200_missing_cluster.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/other_tools/exp" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/other_tools/relaxhw.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/other_tools/syscheck.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/sset_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/multinode/sys_tools.sh" 
%attr(0755, root, root) %dir "/integration/scripts/sotoolkit1.5/multinode/tmp" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/replay_last_session.sh" 
%attr(0755, root, root) %dir "/integration/scripts/sotoolkit1.5/singlenode" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/exp" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/firmware_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/fm_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/fs_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/functions_single" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/guideme.sh" 
%attr(0755, root, root) %dir "/integration/scripts/sotoolkit1.5/singlenode/log_tools" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/log_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/log_tools/crashdump.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/log_tools/exp" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/menu.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/node_tools.sh" 
%attr(0755, root, root) %dir "/integration/scripts/sotoolkit1.5/singlenode/other_tools" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/other_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/other_tools/exp" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/other_tools/relaxhw.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/other_tools/syscheck.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/sset_tools.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/singlenode/sys_tools.sh" 
%attr(0755, root, root) %dir "/integration/scripts/sotoolkit1.5/singlenode/tmp" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/sotoolkit.sh" 
%attr(0755, root, root) "/integration/scripts/sotoolkit1.5/start.sh" 
%doc README 

來了奇怪的事情:

  1. 在第一次安裝RPM的一切工作正常 - 被中創建符號鏈接/ usr/bin
  2. 我卸載工具 - 一切正常再次
  3. 我嘗試了第二次安裝,這次沒有創建符號鏈接!很奇怪 !
  4. 如果我重新生成rpm並重新安裝它 - 它工作得很好,我卸載它,並且它不會在第二次安裝時創建符號鏈接。

[根@本地的rpmbuild]#轉速-e sotoolkit-1.5-1.noarch 的unlink:不能解除連結 '的/ usr /斌/ sotoolkit':沒有這樣的文件或目錄 警告:%postun(sotoolkit- 1.5-1.noarch)的scriptlet失敗,退出狀態1 [根@本地的rpmbuild]#

任何錯誤或警告使用rpm時發現有rpmlint

任何想法檢查,是什麼引發的?

回答

1

我已經找到了問題:

在%安裝部分,我錯誤地做:

ln -sf /integration/scripts/sotoolkit1.5/start.sh /usr/bin/sotoolkit 

,然後在%postun我錯誤地做:

unlink /usr/bin/sotoolkit 

,而不是正確的事要做的是%install:

mkdir -p %{buildroot}/usr/bin/ 
ln -s /integration/scripts/sotoolkit1.5/start.sh %{buildroot}/usr/bin/sotoolkit 

然後將鏈接添加到文件%

/usr/bin/sotoolkit 

%postun可移除的符號鏈接文件的一部分,如果刀具被卸載將被刪除。