Tôi đang gặp một sự cố RPM kỳ lạ, tôi chưa quen với vấn đề này vì vậy hãy thông cảm... Tôi đã tạo tệp thông số kỹ thuật và khi chạy bản dựng, tôi gặp lỗi:
/var/tmp/rpm-tmp.ajKra4: dòng 36: cd: hero-01: Không có lỗi thư mục hoặc tệp như vậy: Trạng thái thoát không hợp lệ từ /var/tmp/rpm-tmp.ajKra4 (%prep)
Sau đó, tôi đã kiểm tra tệp tạm thời đó và nó đang cố chuyển CD sang một thư mục không tồn tại. Nó có nên tạo cái này trong file spec không? Nếu có thì ở đâu?
Đây là tập tin đặc tả của tôi:
Tóm tắt: Cài đặt anh hùng
Tên: anh hùng
Phiên bản: 01
Phát hành: 1
Nhóm: Báo cáo thanh toán
Nguồn: %{name}-%{version}.tar.gz
Giấy phép: SLA
%Sự miêu tả
Hệ thống báo cáo thanh toán anh hùng
% chuẩn bị
rm -rf %{_topdir}/BUILD/*
%cài đặt
%cài đặt
mkdir -p /opt/%{name}
cp -r * /opt/%{name}
%bưu kiện
tìm /opt/%{name} -type d -exec chmod 755 {} \;
tìm /opt/%{name} -type f -exec chmod 644 {} \;
chmod -R 755 /opt/%{name}/bin
% tập tin
/opt/%{name}
%deffattr(-,root,root,0755)
%lau dọn
rm -rf $RPM_BUILD_ROOT
%postun
rm -rf /opt/%{name}
Có lẽ tôi đang thiếu một cái gì đó? Tôi sẽ không phải là người đầu tiên haha, cảm ơn bạn
Đây cũng là những gì tệp tmp xuất ra:
#!/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"
xuất RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS
RPM_DOC_DIR="/usr/share/doc"
xuất RPM_DOC_DIR
RPM_PACKAGE_NAME="anh hùng"
RPM_PACKAGE_VERSION="01"
RPM_PACKAGE_RELEASE="1"
xuất RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
LANG=C
xuất khẩu LAN
bỏ đặt HIỂN THỊ CDPATH ||:
RPM_BUILD_ROOT="/root/rpmbuild/BUILDROOT/hero-01-1.x86_64"
xuất RPM_BUILD_ROOT
PKG_CONFIG_PATH="/usr/lib64/pkgconfig:/usr/share/pkgconfig"
xuất PKG_CONFIG_PATH
đặt -x
mặt nạ 022
cd "/root/rpmbuild/BUILD"
rm -rf /root/rpmbuild/BUILD/*
cd '/root/rpmbuild/BUILD'
rm -rf 'anh hùng-01'
/usr/bin/gzip -dc '/root/rpmbuild/SOURCES/hero-01.tar.gz' /bin/tar -xvvf -
TÌNH TRẠNG=$?
nếu [ $STATUS -ne 0 ];
thoát $TÌNH TRẠNG
fi
cd 'anh hùng-01'
/bin/chmod -Rf a+rX,u+w,gw,ow .
lối ra 0
Kiểm tra http://www.rpm.org/max-rpm/s1-rpm-inside-macros.html , cụ thể là phần "-n — đặt tên của thư mục bản dựng".
Macro %setup hy vọng rằng sau khi giải nén tar.gz, sẽ có sẵn thư mục hero-01, nhưng hero-01.tar.gz của bạn có thể tạo một số tên thư mục khác có thể không có trong tên.
Vì vậy, ví dụ: nếu sau khi giải nén có thư mục 'hero' trong /root/rpmbuild/BUILD thay vì thư mục 'hero-01', việc cập nhật tệp spec để sử dụng '%setup -n hero' chỉ là '%setup '.
Tôi là một lập trình viên xuất sắc, rất giỏi!