มาจากโลกของซีและซี ++ สร้างระบบส่วนใหญ่มีinstall
เป้าหมายสะดุดตา Makefiles (ซึ่งจะมีการแนะนำโดย GNUตัวอย่าง) หรือCMake เป้าหมายนี้คัดลอกไฟล์รันไทม์ (ไฟล์เรียกทำงาน, ไลบรารี, ... ) ในระบบปฏิบัติการ (ตัวอย่างเช่นในC:\Program Files\
บน Windows)
นี่รู้สึกแฮ็คจริงๆเพราะสำหรับฉันมันไม่ใช่ความรับผิดชอบของระบบบิลด์ที่จะติดตั้งโปรแกรม (ซึ่งจริงๆแล้วเป็นความรับผิดชอบของผู้จัดการระบบปฏิบัติการ / ผู้จัดการแพ็คเกจ) นอกจากนี้ยังหมายถึงระบบการสร้างหรือสคริปต์การสร้างจะต้องรู้ว่าองค์กรของโปรแกรมที่ติดตั้งพร้อมกับตัวแปรสภาพแวดล้อมตัวแปรรีจิสทรี, symlink, สิทธิ์ ฯลฯ
ที่ดีที่สุดในการสร้างระบบควรจะมีrelease
เป้าหมายที่จะส่งออกโปรแกรมที่ติดตั้ง (ตัวอย่าง.deb
หรือ.msi
) แล้วขอให้ระบบปฏิบัติการเพื่อติดตั้งโปรแกรมที่ make uninstall
นอกจากนี้ยังจะช่วยให้ผู้ใช้สามารถถอนการติดตั้งโดยไม่ต้องพิมพ์
ดังนั้นคำถามของฉัน: ทำไมระบบสร้างมักจะแนะนำให้มีinstall
เป้าหมาย
make install
มักจะติดตั้งภายใต้/usr/local
(หรือแม้กระทั่ง/opt
) ซึ่งเป็นไดเรกทอรีที่ไม่ได้จัดการโดย "ระบบปฏิบัติการหลัก / ระบบการจัดการบรรจุภัณฑ์" ไม่รู้เลยว่า Windows มีแบบแผนที่คล้ายกันบ้างไหม
make install
ไม่มีเหตุผลเมื่อเราพูดถึงการรวบรวมข้าม
DESTDIR
มันจะมี