ตามตัวอย่างที่กำหนด django-9999 ebuild เพื่อให้ตรงกับสภาพแวดล้อมของนักพัฒนา ฉันต้องชำระเงิน R12120 จากลำต้น การติดตั้ง Django ด้วยตนเองไม่ใช่ตัวเลือกเนื่องจากเหตุผลในการจัดการแพ็คเกจ แต่ยังไม่มี ebuild ใน portage สำหรับรุ่นเบต้า 1.2

ดังนั้นฉันจึงทำสิ่งต่อไปนี้:

ESVN_OPTIONS="-r12120" emerge -1a django

ซึ่งติดตั้งการแก้ไขที่จำเป็นจาก svn แต่วิธีนี้ค่อนข้างยุ่งยาก มีวิธีกำหนดสิ่งนี้แบบคงที่ต่อ ebuild หรือไม่ เช่น:

DJANGO_SVN_REV="12120"

ในmake.conf. นี้จะสะอาดมากขึ้นในสายตาของฉัน

เพราะครั้งต่อไปที่ฉันต้องสร้าง django ใหม่ไม่ว่าจะด้วยเหตุผลใดก็ตาม ฉันต้องจำไว้ว่า: "โอ้ ฉันต้องการสิ่งนี้เพื่อยึดติดกับการแก้ไขเฉพาะ" และคำถามต่อไปคือ "เอ่อ f&!#$?% มันคืออะไรอีก"

วิธีที่ดีที่สุดที่จะไปที่นี่คืออะไร?

โปรดจำไว้ว่า:

  • การติดตั้งแพ็คเกจด้วยตนเองโดยไม่มีความรู้เกี่ยวกับตัวจัดการแพ็คเกจนั้นไม่มีตัวเลือก
  • การทำงานกับคำนำหน้าตัวแปรการปรากฎด้วยตนเองนั้นไม่มีทางเลือก
  • การตั้งค่า /etc/portage/package.env จะเป็นวิธีที่จะไป ( ตามที่อธิบายไว้ ที่นี่ ) แต่ดูเหมือนว่าจะไม่ได้รับการสนับสนุนและไม่ค่อยดีสำหรับฉันและไม่เหมาะสม
  • การแก้ไข make.conf เป็นวิธีที่จะไป
  • การรักษา ebuild ไว้ในโอเวอร์เลย์จะเป็นตัวเลือก
answer

ฉันไม่ได้ต่อต้านการใช้package.env. หากคุณเข้าใจและจัดทำเอกสารไว้ในสภาพแวดล้อมของคุณ อาจเป็นวิธีที่มีประโยชน์ในการใช้การเปลี่ยนแปลงที่ละเอียดอ่อนกับ ebuild hooks ในขณะที่ยังคงติดตาม ebuild ที่เสถียร

ฉันไม่คิดว่ามันเป็นวิธีที่เหมาะสมในการแก้ไข-9999ebuild - ตาม "หลักการของความประหลาดใจน้อยที่สุด" ดูเหมือนmake.confสถานที่ที่ชัดเจนมากในการแก้ไขเวอร์ชันของแพ็คเกจ

แนวทางที่สะอาดกว่าคือการม้วน ebuild ของคุณเองกับ Layman หากคุณตั้งชื่อมันdjango-1.2_pre12120ควรจะชัดเจนกว่านี้ว่ากำลังทำอะไรอยู่และให้เส้นทางทางออกที่ง่ายแก่คุณเมื่อ Django 1.2 ถูกปล่อยและทำให้เสถียรใน Portage