วิธีการดีบักความล้มเหลวในการบิลด์ซึ่งไม่สามารถทำซ้ำนอกสภาพแวดล้อมการสร้าง Launchpad ได้อย่างไร


8

ฉันกำลังพยายามสร้างแพ็คเกจ libdbusmenu ที่แก้ไขแล้ว มันสร้างอย่างถูกต้องหากฉันสร้างในเครื่อง:

sudo apt-get build-dep libdbusmenu
wget https://launchpad.net/~a-j-buxton/+archive/dbusmenu/+files/libdbusmenu_12.10.3%2B13.10.20130913-0ubuntu2.1.diff.gz
wget https://launchpad.net/~a-j-buxton/+archive/dbusmenu/+files/libdbusmenu_12.10.3%2B13.10.20130913-0ubuntu2.1.dsc
wget https://launchpad.net/~a-j-buxton/+archive/dbusmenu/+files/libdbusmenu_12.10.3%2B13.10.20130913.orig.tar.gz
dpkg-source -x libdbusmenu*.dsc
cd libdbusmenu*
dpkg-buildpackage

อย่างไรก็ตามใน PPA การทดสอบอย่างใดอย่างหนึ่งล้มเหลวในการเรียกใช้ซึ่งทำให้การสร้างล้มเหลว เอาต์พุตการทดสอบจริงไม่ได้ถูกเขียนไปยัง buildlog:

https://launchpadlibrarian.net/155471644/buildlog_ubuntu-saucy-amd64.libdbusmenu_12.10.3%2B13.10.20130913-0ubuntu2.1_FAILEDTOBUILD.txt.gz

ฉันจะแก้ปัญหานี้ได้อย่างไร

มันอาจลงมาเพื่อสร้างสภาพแวดล้อมการสร้างที่ใช้โดยผู้สร้าง PPA อย่างใกล้ชิดยิ่งขึ้น ถ้าเป็นเช่นนั้นฉันจะทำอย่างไร

ฉันได้ลองสร้างโดยใช้ pbuilder chroot - ทำงานได้อย่างถูกต้องในระบบท้องถิ่นของฉัน

Lintian สร้างคำเตือนต่อไปนี้บนแพ็คเกจ:

W: libdbusmenu source: quilt-build-dep-but-no-series-file
W: libdbusmenu source: patch-system-but-no-source-readme
W: libdbusmenu source: ancient-standards-version 3.9.2 (current is 3.9.4)

ใช่ lintian จะสร้างข้อผิดพลาดมากมายบนบรรจุภัณฑ์ แต่นี่เป็นแพคเกจ Ubuntu ที่ไม่มีการแก้ไข (เฉพาะการเปลี่ยนแปลงชน) ที่สร้างขึ้นได้ทุกที่ยกเว้น PPA ดังนั้นฉันจึงไม่มั่นใจในเรื่องนี้
Alistair Buxton

ฉันไม่แน่ใจว่าสิ่งนี้มีคุณสมบัติเป็นคำตอบหรือไม่ แต่คุณสามารถเปรียบเทียบบันทึกการสร้างของคุณกับบันทึกการใช้งานจากแพ็คเกจ Ubuntu อย่างเป็นทางการ คุณสามารถเพิ่มexport VERBOSE=1เพื่อdebian/rulesบังคับให้เอาต์พุตชุดการทดสอบทั้งหมดถูกเขียนลงในบันทึกการสร้างเมื่อล้มเหลว คุณอาจลองใช้ sbuild แทน pbuilder ดูwiki.ubuntu.com/SimpleSbuild
Mike Miller

คำตอบ:


1

ในการดูบันทึกมีคำเตือนบางอย่างที่คุณอาจจะต้องดูโดยเฉพาะอย่างยิ่งถ้าคุณไม่ได้รับพวกเขาบนเครื่องท้องถิ่น แต่ฉันคิดว่าคำใบ้ใหญ่เกี่ยวกับสิ่งที่เกิดขึ้นคือชื่อของการทดสอบที่ล้มเหลว: glib -events

เหตุการณ์มักจะเกี่ยวข้องกับ I / O ดังนั้นเพื่อพยายามบังคับให้เกิดข้อผิดพลาดบนเครื่องโลคัลตั้งค่า XAUTHORITY และ DISPLAY ปิดอินพุตมาตรฐานหรือเปลี่ยนเส้นทางไปยัง / dev / null และเปลี่ยนเส้นทางมาตรฐานและข้อผิดพลาดไปยังไฟล์ nohup จะทำการเปลี่ยนเส้นทางให้คุณ แต่จะไม่แตะต้องสภาพแวดล้อมหรือคุณสามารถใช้ at หรือ batch แทน nohup ซึ่งยังมีข้อได้เปรียบในการเปลี่ยนผู้นำเซสชัน


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