Score:0

ติดตั้งไลบรารีระบบ 20.04 ใน 21.10

ธง ve

ฉันกำลังประสบปัญหาแปลกๆ ฉันพัฒนาแอปพลิเคชัน Qt/C++ จนกระทั่งเมื่อวานนี้เครื่อง dev ของฉันและเครื่องเป้าหมายใช้ Ubuntu 20.04 ทั้งคู่

เมื่อวานฉันต้องอัปเกรดเครื่อง dev เป็น 21.10 เพื่อเรียกใช้ซอฟต์แวร์เฉพาะ น่าเสียดายที่สิ่งนี้ทำให้ความเข้ากันได้ของไฟล์ปฏิบัติการของฉันเสียหาย:

./MyProject: /lib/x86_64-linux-gnu/libc.so.6: ไม่พบเวอร์ชัน `GLIBC_2.34' (จำเป็นโดย ./MyProject)
./MyProject: /lib/x86_64-linux-gnu/libc.so.6: ไม่พบเวอร์ชัน `GLIBC_2.32' (จำเป็นโดย ./MyProject)
./MyProject: /lib/x86_64-linux-gnu/libstdc++.so.6: ไม่พบเวอร์ชัน `GLIBCXX_3.4.29' (จำเป็นโดย ./MyProject)

ฉันไม่สามารถ:

  • อัปเกรดเครื่องเป้าหมาย
  • ดาวน์เกรดเครื่อง dev ของฉัน
  • ใช้เครื่องเสมือน (อันที่จริง ฉันทำได้ แต่ฉันพยายามหลีกเลี่ยงอย่างยิ่ง)

ดังนั้นฉันจึงสงสัยว่าฉันสามารถติดตั้งไลบรารีระบบของ 20.04 ใน 21.10 ของฉันและบอก QtCreator ให้ใช้ชุดของไลบรารีนี้หรือชุดนั้น เช่นเดียวกับเวอร์ชัน Qt หรือไม่

ChanganAuto avatar
us flag
*Frankensystems* ไม่เคยเป็นความคิดที่ดีเลย...
David avatar
cn flag
ไม่ใช่ถ้าคุณคาดหวังว่ามันจะใช้งานได้ เวลาที่จะใช้ VM
ve flag
@David เป็นเวลาหลายปีที่ฉันใช้ VM แต่ฉันเบื่อแล้ว ... ฉันต้องการใช้เครื่องมือที่ทำงานในระบบของฉัน ... ดังนั้นคุณทั้งคู่จึงบอกว่ามันเป็นไปไม่ได้ที่จะเรียกใช้แอปพลิเคชันสำหรับสถาปัตยกรรมเดียวกัน distro เดียวกัน แต่ แค่รุ่นก่อนหน้า/ถัดไป?
mchid avatar
bo flag
มีวิธีให้แอปพลิเคชันของคุณใช้ไลบรารีสำรองเพื่อไม่ให้ระบบเสียหายโดยปล่อยให้ libs เริ่มต้นไม่เสียหาย และเพียงเรียกไลบรารีที่จำเป็นเมื่อคุณเรียกใช้ไฟล์เรียกทำงาน [คำตอบนี้ดูเหมือนจะปลอดภัย](https://stackoverflow.com/a/47115598/3393576) คุณ **ไม่** ต้องการแทนที่ไฟล์ glibc ปัจจุบันของคุณและยัง **ไม่** `ส่งออก' ไปยังระบบทั้งหมดของคุณ
mchid avatar
bo flag
คุณต้องการให้ระบบของคุณเรียกใช้ glibc libs ที่เป็นค่าเริ่มต้น แต่มีเพียงไฟล์เรียกทำงานเท่านั้นที่จะใช้ libs สำรอง
Score:3
ธง cn

อัปเกรดแอพเดียว ออกจากวง ไม่เคยเป็นความคิดที่ดี โดยเฉพาะอย่างยิ่งเกี่ยวกับ กลิบ.

สำหรับเครื่องมือสร้าง ดีที่สุด วิธีจัดการกับปัญหานั้นคือการใช้คอนเทนเนอร์ Docker

การดาวน์เกรดเป็นตัวเลือก แต่ต้องมีการติดตั้งใหม่ทั้งหมด และไม่แนะนำให้อัปเกรดเป็น 21.10 เนื่องจาก 20.04 เป็น distro ที่ได้รับการสนับสนุนอย่างดีจริง ๆ และ 21.10 ก็ใกล้ EoL อยู่ดี

ve flag
คุณกำลังพูดถึงสิ่งนี้หรือไม่? https://www.docker.com/resources/what-container
Nicolas Formichella avatar
cn flag
ใช่ @Mark นักเทียบท่าเป็นหนึ่งใน *หนทางที่จะไป* สำหรับ build toolchains เนื่องจากคุณสามารถรัน Ubuntu ใดๆ ก็ได้ตั้งแต่ 14.04 (ไม่แนะนำ) ไปจนถึงเบต้า 22.04 LTS โดยไม่ต้องแตะต้องระบบของคุณ
ve flag
ถ้าฉันเข้าใจถูกต้องนี่สำหรับการปรับใช้เท่านั้น ฉันไม่สามารถดีบักได้
Nicolas Formichella avatar
cn flag
ใช่ @Mark แน่นอน มันสำหรับ build toolchains
Score:1
ธง zw

การกำหนดเป้าหมายที่การปล่อยชั่วคราวนั้นไม่สามารถทำได้
คุณต้องใช้เวอร์ชันการสนับสนุนระยะยาวทั้งกับการพัฒนาและเครื่องไคลเอ็นต์เพื่อให้เวิร์กโฟลว์ง่ายขึ้น

ในปัจจุบัน LTS ล่าสุดคือ 20.04 LTS อย่างที่คุณทราบ

นอกจากนี้ คุณสามารถรอเดือนเมษายน 2022 แล้วจึงกำหนดเป้าหมายทั้งสองเครื่องในวันที่ 22.04 LTS สิ่งนี้จะช่วยให้ใช้งานแอปพลิเคชันของคุณได้อย่างไร้ที่ติจนถึงปี 2570

ve flag
นั่นจะเหมาะสมที่สุดสำหรับความต้องการในปัจจุบันของฉัน อย่างไรก็ตาม ฉันได้เรียนรู้ว่า Linux ทำงานอย่างหนักได้อย่างไร

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา