Score:2

System Manager ที่มีความสามารถติดตามแพ็คเกจ Python ทั้งหมดที่ผู้ใช้ติดตั้งได้อย่างไร

ธง ru

เมื่อไม่นานมานี้เห็นได้ชัดว่าฉันไม่รู้ว่าฉันควรจะจัดการแพ็คเกจ Python ในระบบของฉันอย่างไร

ฉันต้องสามารถรู้ได้ว่าทั้งหมดติดตั้งอะไรและอยู่ภายใต้ ID ผู้ใช้ใด เนื่องจากชุมชน Python ได้รับการสอนว่าไม่ควรติดตั้งสิ่งใดเป็นรูท . . . นี่ทำให้ฉันมีปัญหาร้ายแรง!

ในกรณีนี้ ฉันใช้ Fedora ดิสทริบิวชัน ส่วนใหญ่แต่ไม่เฉพาะ Fedora Server (Fedora Core บางรูปแบบทั้งหมด) แต่คำถามนี้ใช้กับดิสทริบิวชันอื่นด้วย ฉันแน่ใจ

ในที่สุดคำถามก็คือ ผู้จัดการระบบควรจะจัดการกับสิ่งนี้อย่างเหมาะสมอย่างไร?

โปรดทราบว่าฉันไม่ได้ถามเกี่ยวกับวิธีติดตั้ง Python เอง และฉันไม่ได้พูดถึงระบบการพัฒนา ซึ่งถ้านักพัฒนาทำระบบของตัวเองพัง มันก็มีผลกับพวกเขาเท่านั้น แม้ว่านั่นจะยังไม่ค่อยดีนัก

สิ่งที่ฉันเน้นคือบางแพ็คเกจของซอฟต์แวร์ที่ใช้ Python มีแพ็คเกจย่อยของตัวเองที่ไม่สามารถใช้งานได้ผ่านกระบวนทัศน์การติดตั้งแพ็คเกจแพลตฟอร์มปกติ และเป็นหนึ่งในนั้นที่กระตุ้นให้ฉันค้นพบความเสี่ยงอย่างกะทันหันนี้ Mailman3 เป็นเพียงแพ็คเกจที่ติดตั้ง แต่ยังไม่ได้ติดตั้งแพ็คเกจย่อยที่จำเป็นทั้งหมด ดังนั้นจึงจำเป็นต้องมี "การติดตั้ง pip" บางอย่างสำหรับสิ่งเหล่านั้น และจากการพูดคุยกับเพื่อนร่วมงาน เขายอมรับว่าทำระบบที่ฉันรับผิดชอบจัดการเสียหาย แต่มาเรียนรู้ว่าเขาทำมันพังผ่านแพ็คเกจ Python ที่เขาติดตั้ง pip...

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

Davidw avatar
in flag
นี่คือที่มาของซอฟต์แวร์การจัดการการกำหนดค่า
in flag
เริ่มใช้คอนเทนเนอร์สำหรับซอฟต์แวร์หลามของคุณหรือไม่ และทำให้ผู้ใช้จัดหา Dockerfiles ซึ่งรวมถึงการติดตั้ง pip ทั้งหมดหรือไม่ ... `ฉันรู้สึกว่าฉันอาจถูกบังคับให้ใช้การรักษาความปลอดภัย ดังนั้นผู้ใช้แต่ละรายไม่สามารถติดตั้งแพ็คเกจ Python ได้ ` นักพัฒนา/ผู้ใช้ของคุณไม่ควรมีสิทธิ์เข้าถึงเซิร์ฟเวอร์ที่ใช้งานจริง พวกเขาควรมีสภาพแวดล้อม dev และสามารถให้ dockerfiles, playbooks หรืออย่างอื่นที่สร้างสภาพแวดล้อมการผลิตบนแพลตฟอร์มที่รู้จัก
ru flag
@Zoredache คนที่ทำเครื่องพังไม่ใช่นักพัฒนา แต่เป็นคนที่พยายามติดตั้งแพ็คเกจที่เขียนที่อื่นไม่ใช่ Mailman3 แต่ชอบ โปรดทราบว่า Mailman3 บน Fedora มีแพ็คเกจที่เป็นทางการ แต่ไม่ได้ติดตั้งส่วนประกอบทั้งหมด ปัญหาอยู่ที่นั้น
Score:1
ธง us

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

เมื่อแอปพลิเคชันได้รับการพัฒนาและทดสอบในสภาพแวดล้อมเสมือน จะมีการตรวจสอบว่าการอ้างอิงทั้งหมดได้รับการติดตั้งอย่างถูกต้อง

ถ้าบางแพ็คเกจขาดการขึ้นต่อกัน คุณต้องแจ้งผู้ดูแลแพ็คเกจให้อัพเดทการขึ้นต่อกัน

ru flag
หากระบบที่เกิดปัญหานี้ (การติดตั้งซอฟต์แวร์ผิดพลาด) เป็นสภาพแวดล้อมการพัฒนา ฉันจะไม่กังวลมากนัก!
Score:0
ธง cn

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

ผู้ดูแลระบบ OS ที่ชอบตัวจัดการแพ็คเกจระบบอาจรวมทุกแพ็คเกจเป็น rpm หรือ deb รวมการติดตั้งในกรณีนี้ Mailman 3 ไปจนถึงการพึ่งพาไพ ธ อนสามารถลงนามและจัดส่งแพ็คเกจด้วยโครงสร้างพื้นฐานเดียวกันกับที่ใช้การอัปเดตระบบปฏิบัติการ อย่างไรก็ตาม, ต้องการงานบรรจุภัณฑ์ที่สำคัญ, สำหรับสิ่งของและ การพึ่งพาอาศัยกัน. ดูเหมือนว่า Fedora จะมี แพ็คเกจบุรุษไปรษณีย์ 3 และโครงสร้างพื้นฐานของพวกเขาใช้มัน

นักพัฒนาซอฟต์แวร์และผู้ใช้รายอื่นอาจละทิ้งตัวจัดการแพ็คเกจระบบเพื่อหันไปใช้ภาษาเฉพาะ ในกรณีนี้คือ Python pip เข้าถึงเวอร์ชันล่าสุดของแพ็คเกจจำนวนมาก และสามารถติดตั้งได้ในไดเร็กทอรีของผู้ใช้ที่ไม่มีสิทธิ์ อย่างไรก็ตาม ผู้ดูแลระบบมีอำนาจควบคุมน้อยกว่า และผู้ใช้อาจประสบปัญหาได้ พวกเขาอาจจะประสบปัญหาเช่น การอ้างอิง Mailman 3 มีไลบรารี C ที่จะลิงก์ การตั้งค่า MTA และฐานข้อมูล และ แอปพลิเคชันเว็บ UI แยกต่างหาก.

ความขัดแย้งที่คุณสังเกตเห็นระหว่างแพ็คเกจระบบและคำใบ้ที่คุณต้องเลือก แพ็คเกจในลักษณะที่เข้ากันได้กับ python ของระบบ หรือใส่ใน virtualenv ที่มีข้อกำหนด ในขณะที่คุณอาจลบไฟล์ แพ็คเกจ pip เพื่อป้องกันไม่ให้ผู้ใช้ยุ่งกับสิ่งต่าง ๆ pip สามารถบู๊ตได้โดยผู้ใช้ที่กำหนด เป็นการดีที่จะช่วยให้ผู้คนติดตั้งชุดแอปพลิเคชันการทำงานที่รู้จัก

โพสต์คำตอบ

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