我有一個怪異的RPM問題,我是新來的,所以忍受着我......我創建了spec文件,當我運行以執行構建我收到錯誤:從/var/tmp/rpm-tmp.ajKra4退出狀態不佳(%準備)
/var/tmp/rpm-tmp.ajKra4:第36行:cd:hero-01:沒有這樣的文件或目錄 錯誤:從/ var/tmp出現錯誤退出狀態/rpm-tmp.ajKra4(%prep)
然後我檢查臨時文件,它試圖將CD放到一個不存在的目錄中。是否應該在spec文件中創建它?如果是這樣的話?
這裏是我的規格文件:
Summary: Install Hero
Name: hero
Version: 01
Release: 1
Group: Billing reporting
Source: %{name}-%{version}.tar.gz
License: SLA
%description
Hero billing reports system
%prep
rm -rf %{_topdir}/BUILD/*
%setup
%install
mkdir -p /opt/%{name}
cp -r * /opt/%{name}
%post
find /opt/%{name} -type d -exec chmod 755 {} \;
find /opt/%{name} -type f -exec chmod 644 {} \;
chmod -R 755 /opt/%{name}/bin
%files
/opt/%{name}
%defattr(-,root,root,0755)
%clean
rm -rf $RPM_BUILD_ROOT
%postun
rm -rf /opt/%{name}
也許我失去了一些東西?不會是第一個笑,感謝
這裏也是什麼TMP文件輸出:
#!/bin/sh
RPM_SOURCE_DIR="/root/rpmbuild/SOURCES"
RPM_BUILD_DIR="/root/rpmbuild/BUILD"
RPM_OPT_FLAGS="-O2 -g"
RPM_ARCH="x86_64"
RPM_OS="linux"
export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS
RPM_DOC_DIR="/usr/share/doc"
export RPM_DOC_DIR
RPM_PACKAGE_NAME="hero"
RPM_PACKAGE_VERSION="01"
RPM_PACKAGE_RELEASE="1"
export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
LANG=C
export LANG
unset CDPATH DISPLAY ||:
RPM_BUILD_ROOT="/root/rpmbuild/BUILDROOT/hero-01-1.x86_64"
export RPM_BUILD_ROOT
PKG_CONFIG_PATH="/usr/lib64/pkgconfig:/usr/share/pkgconfig"
export PKG_CONFIG_PATH
set -x
umask 022
cd "/root/rpmbuild/BUILD"
rm -rf /root/rpmbuild/BUILD/*
cd '/root/rpmbuild/BUILD'
rm -rf 'hero-01'
/usr/bin/gzip -dc '/root/rpmbuild/SOURCES/hero-01.tar.gz' | /bin/tar -xvvf -
STATUS=$?
if [ $STATUS -ne 0 ]; then
exit $STATUS
fi
cd 'hero-01'
/bin/chmod -Rf a+rX,u+w,g-w,o-w .
exit 0
太棒了,謝謝你pwan ..這通過添加前綴(文件目錄)來修復它。非常感謝 – DoCnTex 2012-02-15 16:42:54
對不起,我不能完全理解我能做些什麼來解決它? – Markipe 2014-08-02 03:41:24
帶上你的hero-01.tar.gz文件,並用一個像'tar -zxvf hero-01.tar.gz'這樣的命令將它解壓到臨時目錄中。它會創建一個包含所有文件的新目錄。 使用該目錄名稱作爲%setup宏的'-n'標誌的參數。 – pwan 2014-08-02 18:39:38