Solaris 11.3 โซนที่ไม่ใช่โกลบอลไม่รับการเปลี่ยนแปลงด้าน IPS (เป็น version-lock)


3

ฉันมีระบบ Solaris 11.3 ที่ไม่มีสัญญาการสนับสนุน (ปัจจุบัน) ดังนั้นผมจึงกำลังใช้พื้นที่เก็บข้อมูล IPS ที่http://pkg.oracle.com/solaris/release/pkgrecvซึ่งผมได้สะท้อนในขณะนี้ในประเทศโดยใช้

ฉันใช้pkg change-facetเพื่อเปลี่ยนversion-lockเป็นเท็จในแพ็คเกจจำนวนมากเช่นที่ฉันสามารถอัปเดตแพ็คเกจเหล่านี้เป็นเวอร์ชันล่าสุด มันใช้งานได้ดี

'ปัญหา' คือใบหน้าที่เปลี่ยนแปลงเหล่านี้ไม่ได้ถูกสืบทอดโดยโซนที่ไม่ใช่สากลของฉัน ดังนั้นในขณะที่อยู่ในโซนสากลฉันเห็นการเปลี่ยนแปลงด้านและสามารถอัพเกรดแพคเกจที่ได้รับผลกระทบมันไม่เป็นความจริงในโซนที่ไม่ใช่โกลบอลใด ๆ ที่ฉันสร้างขึ้นในภายหลัง: มันแสดงให้เห็นถึงต้นฉบับเดิมไม่เปลี่ยนแปลง

pkg(5)บ่งชี้ว่าการเปลี่ยนแปลงของ facets นั้นสืบทอดโดยอิมเมจย่อยเช่นโซนที่ไม่ใช่โกลบอลที่สืบทอดจากโซนโกลบอล แต่นี่ไม่ได้เกิดขึ้นสำหรับฉัน

ตอนแรกฉันคิดว่านี่เป็นปัญหา แต่หลังจากการไตร่ตรองเพิ่มเติมฉันได้ตระหนักว่าในความเป็นจริงฉันอาจไม่ต้องการเปลี่ยนแปลงแง่มุมในโลกที่จะสืบทอดสู่โลกที่ไม่ใช่กลม นี่เป็นข้อพิสูจน์สำหรับฉันหลังจากนั้นไม่นานฉันพบว่าฉันต้องการติดตั้งโซนทดสอบด้วยซอฟต์แวร์พื้นฐานโดยไม่ต้องเปลี่ยนแง่มุมเหล่านี้

กระนั้นก็ตามฉันยังคงสับสนกับเอกสารที่ระบุว่าพวกเขาสืบทอดและฉันเชื่อว่าควรมีวิธีกำหนดค่าบางแง่มุมเพื่อสืบทอด

ดังนั้นคำถามของฉันคือ:

  1. มีวิธีที่จะทำให้แง่มุมบางอย่างเป็นทางเลือกลงในที่ไม่ใช่กลมทั้งหมด - บางทีโดยการสร้างภาพ IPS ใหม่หรือไม่?
  2. ทำไมเอกสาร IPS ไม่แสดงให้เห็นแง่มุมที่ไม่ได้รับมรดก - มันคือการพูดคุยเกี่ยวกับบางประเภทเท่านั้นแง่มุม?

นี่คือสิ่งที่ฉันทำเต็ม:

ฉันตรวจสอบการใช้แพ็คเกจ FOSS ใหม่ที่ออราเคิลจัดหาให้ ฉันได้รับการต่อไปนี้คำแนะนำที่นี่: วิธีการเข้าถึงเลือกแพคเกจ FOSS บริการให้คำปรึกษาสำหรับ Oracle Solaris 11.3

คู่มือนี้จะอธิบายว่ามันเป็นสิ่งที่จำเป็นในการเปลี่ยนแปลงในแง่version-lockเท็จก่อนแพคเกจที่สามารถปรับปรุงและแพคเกจการปรับปรุง FOSS สามารถพบได้ในจำนวนมากใน repo \*@\*-5.12.0.0.0.122ที่วางจำหน่ายที่มีหมายเลขรุ่นจับคู่สาย เอกสารแนะนำให้จัดการเอาต์พุตของpkg listเพื่อสร้างpkg change-facetคำสั่งเพื่อปลดล็อกทุกเวอร์ชัน

ฉันทำสิ่งนี้ในโซนสากลของฉันและจากนั้นการทำpkg update --acceptสำเร็จจะส่งผลให้มีแพ็คเกจที่อัปเกรดจำนวนมาก

แต่ถ้าฉันติดตั้งโซนที่ไม่ใช่โกลบอลใหม่โซนนั้นจะเป็นเวอร์ชันพื้นฐานสำหรับแพ็คเกจเหล่านี้ หากในโซนโลกที่ฉันทำงานpkg facetฉันจะเห็น facets ไม่เปลี่ยนแปลงในโซน ตัวอย่างเช่นที่นี่โซนจะแสดง version-lock = True สำหรับ Bash ที่ไม่เปลี่ยนแปลง:

root@goldenzone:~# pkg facet -a | grep version-lock.shell/bash
version-lock.shell/bash                                          True  system

ในขณะที่ทั่วโลกแสดงรุ่นที่ถูกต้องใหม่ล็อครุ่น = เท็จ:

root@magrathea:/system/zones# pkg facet -a | grep version-lock.shell/bash
version-lock.shell/bash                                          False local

การแก้ปัญหา:

ตามความคิดเห็นของฉันด้านล่างตอนนี้ฉันแก้ปัญหานี้โดยการติดตั้งโซนสีทองของฉันกับที่กำหนดเอง AUTO_INSTALL <facet set="false">facet.version-lock.*</facet>ประจักษ์ที่มี

วิธีนี้ใช้งานได้ (แม้ว่าจะมีค่าใช้จ่ายในการปลดล็อคการล็อคเวอร์ชันทั้งหมดแทนที่จะเป็นเพียงการอัปเดต FOSS) แต่ก็ยังเป็นการดีที่จะทราบว่ามีวิธีที่จะทำให้ facets สืบทอดระหว่าง globals และ non-globals อย่างไร เอกสารดูเหมือนว่าพวกเขาควรจะ

ขอบคุณล่วงหน้า.


ตอนนี้ฉันใช้วิธีแก้ไขปัญหาต่อไปนี้: ฉันกำลังสร้างโซนของฉันโดยใช้รายการที่กำหนดเองซึ่งมีสิ่งต่อไปนี้: <facet set="false">facet.version-lock.*</facet>ในส่วน <software> .. <image> ใช้งานได้ทำให้โซนใช้แพ็คเกจ FOSS ล่าสุดในการติดตั้ง ฉันยังไม่เข้าใจว่าทำไมการเปลี่ยนแปลงด้านไม่สืบทอดโดยอัตโนมัติ แต่นี่เป็นวิธีแก้ปัญหาที่ยอมรับได้ในตอนนี้ (แม้ว่าฉันจะลบการล็อคเวอร์ชันทั้งหมดไม่ใช่เฉพาะรุ่นที่มีการอัพเดต FOSS และยังไม่รู้ว่ามีหรือไม่ อาจจะมีผลกระทบในภายหลังจากนั้น)
TheBloke

คำตอบ:


1

ฉันเป็นหนึ่งในผู้แต่งหลักและผู้ออกแบบระบบบรรจุภัณฑ์ภาพ

ฉันคิดว่าความสับสนของคุณเกิดจากความเข้าใจผิดในสิ่งที่เอกสารระบุ โดยเฉพาะอย่างยิ่งโปรดสังเกตสิ่งที่ประโยคนี้จาก pkg (5) พูดว่า:

... โซนที่ไม่ใช่สากลสามารถรับ Facet จาก Global Zone ได้ Facets ที่สืบทอดมาจะถูกประเมินก่อนและรับความสำคัญมากกว่า Facet ที่ตั้งไว้ในเครื่อง

หมายเหตุ: มันบอกว่าสามารถไม่ประสงค์ ดังนั้นเอกสารอธิบายถึงสิ่งที่จะเกิดขึ้นเมื่อแง่มุมที่ได้รับมา แต่โดยเจตนา (ผมเชื่อว่า) ไม่ระบุเมื่อพวกเขาจะได้รับมรดก นั่นคือมันจะบอกคุณถึงวิธีการตรวจสอบว่ามีการสืบทอดมาหรือไม่ (โดยมองหา "parent" ในคอลัมน์ SRC ของ "pkg facet") แต่ไม่อยู่ภายใต้เงื่อนไขที่จะรับมรดก:

https://docs.oracle.com/cd/E53394_01/html/E54739/glmke.html

ตอนนี้สำหรับส่วนที่ขาดหายไป - โดยทั่วไป facets ที่สืบทอดมามักใช้กับ facet.version-lock. * facets ที่ใช้ในแพ็คเกจเนื่องจากแพ็คเกจที่เกี่ยวข้องบางรายการมีการพึ่งพาพาเรนต์ของตัวเองดังนี้:

พึ่งพา type = parent fmri = คุณสมบัติ / แพ็คเกจ / การพึ่งพา / ตนเอง

การอ้างอิงพาเรนต์ดังที่กล่าวไว้ข้างต้นเพียงระบุว่าการติดตั้งแพคเกจนี้ในโซนที่ไม่ใช่สากลจะต้องมีแพ็คเกจเดียวกันในเวอร์ชันเดียวกันในโซนโกลบอลก่อน ใช้สำหรับแพคเกจที่ต้องซิงค์ระหว่างโซนโกลบอลและไม่ใช่โกลบอล

ในระยะสั้นมรดกมักจะไม่ใช้กับทุกแง่มุม ตรรกะสำหรับการพิจารณาว่า facets ใดที่จะถูกสืบทอดสามารถพบได้ที่นี่:

https://github.com/oracle/solaris-ips/blob/master/src/modules/client/linkedimage/common.py#L3462

นี่เป็นความตั้งใจเพราะโซนเป็นเทคโนโลยีคอนเทนเนอร์ที่อนุญาตให้มีสภาพแวดล้อมแยกที่ผู้ดูแลระบบสามารถตั้งค่าการกำหนดค่าที่แตกต่างจากโซนสากล

ขณะนี้กล่าวว่าหากคุณต้องการใช้การดำเนินการเปลี่ยนด้านกับโซนโลกและโซนที่ไม่ใช่ทั่วโลกคุณสามารถทำได้โดยใช้ตัวเลือก '-r' (เรียกซ้ำ) เพื่อเปลี่ยนด้าน:

pkg การเปลี่ยนแปลงด้าน - ...

(ดู pkg (1) เพราะเห็นได้ชัดว่าฉันไม่สามารถโพสต์มากกว่าสองลิงก์)

คุณสามารถนำไปใช้กับโซนเฉพาะโดยใช้ -z

Oh, และในที่สุดคุณจริงๆไม่ต้องการที่จะตั้งแง่มุมเพื่อเท็จสำหรับทุกรุ่นล็อค ไม่เพียง แต่จะทำให้ระบบช้าลงอย่างไม่น่าเชื่อในการอัปเดต แต่คุณเสียความปลอดภัยทั้งหมดที่ทำให้แน่ใจว่าคุณกำลังใช้การรวมส่วนประกอบที่ผ่านการทดสอบจริง ๆ


Shawn ขอบคุณมากสำหรับคำตอบที่ละเอียดมาก - และเป็นเรื่องดีที่รู้ว่าฉันได้ยินจากหน่วยงานดั้งเดิมแห่งหนึ่ง! นั่นทำให้รู้สึกทั้งหมด ใช่ฉันรู้หลังจากนั้นไม่นานว่าการสืบทอดจะไม่เป็นที่พึงปรารถนา แต่ก็สับสนกับความเข้าใจผิดของฉันเกี่ยวกับเอกสารตามที่คุณพูด
TheBloke

หนึ่งคำถามสุดท้ายแล้ว: ไม่มีวิธีใดที่จะระบุการเปลี่ยนแปลงด้านที่จะนำไปใช้กับผู้ที่ไม่ได้เป็นคนใหม่หรือไม่? pkg -r จะใช้กับ non-globals ทั้งหมดที่มีอยู่ตอนนี้ แต่สมมุติว่าถ้าฉันติดตั้ง non-global ใหม่ในภายหลังมันจะไม่ใช้ที่นั่นหรือ ดังนั้นจึงไม่มีวิธีที่จะพูดว่า "แง่มุมนี้ควรนำไปใช้กับสิ่งที่ไม่ใช่โลกที่สร้างขึ้นในภายหลัง" - ฉันจะต้องใช้มันกับสิ่งที่ไม่ได้สร้างขึ้นใหม่ ๆ เช่นกับ AI AI หรือบางทีอาจเป็นแพ็คเกจ IPS ใหม่ที่ฉันสร้าง รวบรวมการเปลี่ยนแปลง facet เหล่านั้นและจากนั้นเพิ่มไปยังการติดตั้งของโซนที่ตามมา? ขอบคุณอีกครั้ง.
TheBloke

และสุดท้ายนี้ขอขอบคุณสำหรับคำเตือนเกี่ยวกับ version-lock * ฉันกังวลเล็กน้อยเกี่ยวกับเรื่องนี้ ฉันคิดว่าฉันควรทำงานกับรายการ facet.version-lock ที่ใช้เฉพาะกับแพ็คเกจ FOSS ที่ฉันวางแผนจะติดตั้งจริงและอาจสร้างแพ็คเกจ IPS ใหม่เพื่อรวบรวมการเปลี่ยนแปลงเหล่านั้นซึ่งฉันแน่ใจว่าติดตั้งในแต่ละโซนในการติดตั้งที่ เวลาเดียวกันกับระบบปฏิบัติการพื้นฐาน
TheBloke

ในเวลานี้วิธีเดียวในการระบุการกำหนดค่าที่ใช้กับโซนใหม่คือผ่านรายการ AI ที่กำหนดเอง อาจเป็นเช่นนั้นเนื่องจาก AI เป็นสิ่งที่ใช้สำหรับการปรับใช้และการจัดสรรพื้นที่ ขณะนี้ยังไม่มีวิธีที่จะใช้ facets / variants / mediators ผ่านทางแพ็กเกจเนื่องจากมีปัญหาเกี่ยวกับส่วนต่อประสานที่ซับซ้อนที่ไม่ได้รับการแก้ไข (เช่นการกำหนดค่าความขัดแย้งที่ตัวแปรจะต้องตั้งค่าให้ติดตั้งแพ็คเกจที่เปลี่ยนแปลงด้วย)
Shawn Walker-Salas

ตัวเลือกที่ดีที่สุดของคุณในตอนนี้คือการระบุเฉพาะส่วนล็อคเวอร์ชันที่คุณต้องการในรายการ AI ฉันขอโทษสำหรับความยากลำบากที่คุณกำลังเผชิญอยู่ แพ็คเกจการประเมินนั้นมีวัตถุประสงค์เพื่อใช้กับ Solaris ที่รองรับเป็นหลักดังนั้นจึงเป็นสิ่งที่ท้าทายยิ่งกว่าสำหรับการใช้กับรีลีสการอัพเดทฐานที่พบในที่เก็บ / release ฉันจะตรวจสอบสิ่งที่เราสามารถทำได้เพื่อทำให้สิ่งนี้ง่ายขึ้น
Shawn Walker-Salas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.