รอบต่อนาทีของฉันไม่ได้ดำเนินการตามลำดับการติดตั้ง%


2

ฉันสร้างแพ็คเกจ RPM เป็นครั้งแรก RPM นี้เป็นแอปส่วนหน้าแบบแพคเกจและการติดตั้งจำเป็นต้องย้ายไฟล์แอพและทำการรีสตาร์ท nginx นี่คือไฟล์สเป็คของฉัน:

Name:           my-portal-app

Version:        2.1

Release:        1%{?dist}

Summary:        Descripcion

License:        No-license

URL:            nourl

Source0:        my-portal-app-2.1.tar.gz

%description
My app install

%prep
%setup -q


%build
#%configure
#make %{?_smp_mflags}

%install
#rm -rf $RPM_BUILD_ROOT
cp -r ./* /var/www/myapp
service nginx restart

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%doc

%changelog

ทั้งหมดก็โอเคเมื่อฉันรัน rpmbuild -ba, exit 0, และลำดับการติดตั้ง% ถูกคำนวณ (คัดลอกไฟล์และรีสตาร์ท nginx) ตกลง rpmbuild สร้าง RPM (เป็น rpmbuild / RPMS) และ SRPM ใน (rpmbuild / SRPMS)

แต่ถ้าฉันเข้าใจดีเมื่อฉันติดตั้ง SRPM ด้วย rpm -ivh name.rpm ลำดับการติดตั้งจะต้องดำเนินการ , ฉันถูกไหม? หากเป็นเช่นนั้นลำดับจะไม่ถูกดำเนินการ (ไม่คัดลอกไฟล์ไปยัง / var / www / myapp และไม่เริ่ม nginx ใหม่) ดำเนินการ RPM เหมือนกัน

การบรรจุ SRPM นั้นถูกต้องไฟล์ทั้งหมดอยู่ในและ RPM นั้นว่างเปล่า

คำตอบ:


2

อย่างที่คุณพูด %install ส่วนสำหรับกำหนดค่าประโยคสร้าง RPM เริ่มต้นคุณจะต้องตั้งค่า

เพื่อให้บรรลุเป้าหมายของคุณคุณต้องใช้ %post ในส่วนนั้นคุณสามารถกำหนดการดำเนินการ. sh ของคุณเอง (ตัวอย่าง) หรือคุณสามารถตั้งค่าประโยคที่คุณต้องการทีละตัวอย่างเช่น:

sudo service restart nginx

สำหรับปัญหาของ RPM ที่ว่างเปล่านั้นเป็นเพราะ %files ส่วนไม่ถูกต้องครบถ้วนไบนารีที่ย้ายไปยัง RPM เกี่ยวข้องกับเนื้อหาของส่วนนั้น (% files)


1

ตกลงฉันผิด ... เช่นนี้ คุณหมอ พูดว่า:

ส่วนการติดตั้ง% จะไม่ทำงานเมื่อมีแพ็คเกจ RPM แบบไบนารี   ติดตั้งโดยผู้ใช้ปลายทาง แต่จะทำงานเฉพาะเมื่อสร้างแพ็คเกจ


ส่วนที่ถูกต้องเพื่อให้บรรลุเป้าหมายของฉันคือการโพสต์%
Kalamarico
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.