จำลองการทำงานของ "make install" - ยูทิลิตี้ "dry run" หรือโปรแกรมจำลองสถานการณ์หรือไม่?


13

มีวิธีการทั่วไปในการใช้งานสคริปต์ทุบตีและดูคำสั่งที่เป็นผลลัพธ์ แต่ไม่ได้เรียกใช้คำสั่งจริง - นั่นคือ "dry run" / โปรแกรมจำลองการเรียงลำดับหรือไม่?

ฉันมีสคริปต์ติดตั้งฐานข้อมูล (จริง ๆ แล้ว "ทำการติดตั้ง" หลังจากใช้งาน. / กำหนดค่าและสร้าง) ที่ฉันต้องการเรียกใช้ แต่มันติดตั้งทุกประเภทของสิ่งที่ฉันไม่ต้องการ

ดังนั้นฉันต้องการวิธีที่จะดูว่าสิ่งที่จะทำก่อนที่ฉันจะเรียกใช้มันจริง - แม้กระทั่งเรียกใช้คำสั่งด้วยมือแทน

มียูทิลิตี้ใดบ้างที่สามารถทำงานดังกล่าวได้ (หรืออะไรก็ตามที่เกี่ยวข้อง / คล้ายกัน)?


ฉันคิดว่า 'set -n' ทำอะไรแบบนั้น ลองเพิ่ม -x เช่นกัน
Jeff Schaller

ฉันจะไพพ์ "ทำให้ติดตั้ง" เพื่อตั้งค่า -n ได้อย่างไร
Vérace

bash -n make installแต่จากman bash: "เชลล์แบบโต้ตอบอาจไม่สนใจตัวเลือกนี้"
pfnuesel

bashไม่มีตัวเลือกใน dryrun คือ ดูเพิ่มเติมที่นี่stackoverflow.com/questions/19115156/...
pfnuesel

คำตอบ:


17

GNU make มีตัวเลือกในการทำแบบแห้ง:

'-n'

'--just พิมพ์'

'--dry วิ่ง'

'--recon'

“ไม่มี-op” สาเหตุทำให้พิมพ์สูตรที่จำเป็นเพื่อทำให้เป้าหมายเป็นปัจจุบัน แต่ไม่ได้ดำเนินการตามจริง โปรดทราบว่าบางสูตรยังคงดำเนินการแม้จะมีการตั้งค่าสถานะนี้ (ดูวิธีการทำงานของตัวแปร) นอกจากนี้ยังมีสูตรใด ๆ ที่จำเป็นในการอัปเดต makefiles รวมอยู่

ดังนั้นสำหรับสถานการณ์ของคุณเพียงแค่เรียกใช้make -n installเพื่อดูคำสั่งที่makeจะดำเนินการ


5

เวอร์ชันใดก็ได้makeมี-nตัวเลือก (ดูคำอธิบาย POSIX ของmake ) แต่เชลล์ไม่มีตัวเลือกที่สอดคล้องกัน (ดูตัวอย่างแสดงคำสั่งโดยไม่ต้องดำเนินการ )

เพื่อทำให้สถานการณ์แย่ลงถ้าคุณใช้ automake มันจะวางสคริปต์ขนาดใหญ่ในส่วนของสคริปต์สำเร็จรูป (ซึ่งผู้พัฒนาเรียกว่า "กฎแบบเรียกซ้ำ") ซึ่งเอาชนะความสามารถของใครก็ตามที่ใช้ "make -n" และดูว่าจะทำอะไร เกิดขึ้น

อ่านเพิ่มเติม:

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