Score:1

ติดตั้ง Python 3.9 อย่างปลอดภัยสำหรับผู้ใช้ที่ไม่ใช่รูทหรือไม่

ธง au

(ขออภัยภาษาอังกฤษของฉัน)

ระบบปฏิบัติการของเซิร์ฟเวอร์ของฉันคือ Ubuntu 20.04 อย่างที่เราทราบใน Ubuntu 20.04 Python 3.8 ได้รับการติดตั้งเป็นค่าเริ่มต้น และแอปพลิเคชันระบบจำนวนมากทำงานบน Python 3.8
ฉันติดตั้ง Python 3.9 เพิ่มเติมในเซิร์ฟเวอร์ Ubuntu ของฉัน และเซิร์ฟเวอร์ของฉันก็ทำงานได้ดีอยู่พักหนึ่ง

อย่างไรก็ตาม, เมื่อฉันอัปเกรดโมดูลส่วนกลาง ของ Python (3.8 และ 3.9 ทั้งคู่) เกิดปัญหาขึ้น โปรแกรมระบบบางตัว เช่น ตัวอัปเดตซอฟต์แวร์ และ ซอฟต์แวร์และการอัปเดตไม่ทำงาน พวกเขาแสดงข้อผิดพลาดโดยบอกว่าไม่พบโมดูลส่วนกลางของ Python บางตัว ฉันพยายามแก้ไขปัญหาด้วยการติดตั้ง python global modules อีกครั้ง แต่ไม่สามารถแก้ไขได้

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

ฉันจะติดตั้ง Python 3.9 (หรือสูงกว่า) อย่างปลอดภัยสำหรับผู้ใช้ที่ไม่ใช่รูทได้อย่างไร

  • ที่นี่ ปลอดภัย การติดตั้งหมายถึงการติดตั้งที่ไม่รบกวนค่าเริ่มต้นของระบบ Python 3.8
  • ไม่สำคัญว่า Python 3.9 (หรือสูงกว่า) จะติดตั้งทั้งระบบหรือสำหรับผู้ใช้เฉพาะ
pdh0710 avatar
au flag
@ user535733 : ดูเหมือนว่ามีบางอย่างสื่อสารผิดพลาด ฉันแก้ไขโพสต์เพื่อแสดงเจตนาให้ชัดเจนยิ่งขึ้น
user535733 avatar
cn flag
วิธีง่ายๆ วิธีหนึ่งคือใช้ Python venv คุณถามว่าจะทำอย่างไร? หรือคุณขอตัวเลือกเพิ่มเติม?
pdh0710 avatar
au flag
@ user535733 : ฉันได้เขียนไว้แล้วในโพสต์ของฉันว่า "และโมดูลส่วนกลางที่จำเป็นเท่านั้นคือ `pip` และ `venv`" ซึ่งหมายความว่าฉันต้องการใช้ `pip` และ `venv` ของ Python 3.9 โดยไม่รบกวน Python เริ่มต้นของระบบ 3.8.
user535733 avatar
cn flag
ในกรณีนั้น ดูเหมือนว่าจะซ้ำกับ https://stackoverflow.com/questions/1534210/use-different-python-version-with-virtualenv ซึ่งมีคำแนะนำทีละขั้นตอนและลิงก์ไปยังคำตอบมากมาย บทช่วยสอนของ YouTube
pdh0710 avatar
au flag
@user535733 : ฉันไม่รู้ว่าทำไมคุณถึงหมกมุ่นอยู่กับการใช้ `venv` เท่านั้น ฉันใช้ Python เวอร์ชันอื่นกับ `venv` อยู่แล้ว ปัญหาของฉันคือวันหนึ่งมันรบกวนระบบ Python 3.8 ฉันไม่คิดว่าฉันเป็นคนเดียวที่ประสบปัญหานี้ เลยมาตั้งกระทู้ถามความเห็นเกี่ยวกับปัญหานี้ครับ ไม่ใช้ 'venv'
user535733 avatar
cn flag
โปรดจำไว้ว่าเราไม่ได้อยู่ที่นั่น เราไม่สามารถเห็นสิ่งที่คุณเห็น เราไม่ทราบประวัติของปัญหาใด ๆ ที่คุณอาจมี ทั้งหมดที่เรารู้คือสิ่งที่คุณอธิบายให้เราฟัง ดูเหมือนว่าจะเป็น [ปัญหา XY](https://en.wikipedia.org/wiki/XY_problem) สำหรับฉัน คุณไม่ได้ถามเกี่ยวกับปัญหาที่แท้จริงที่คุณมี คุณกำลังขอวิธีแก้ปัญหาที่คุณโปรดปรานซึ่งดูเหมือนไม่ฉลาดหรือเป็นไปไม่ได้สำหรับเรา นั่นเป็นเหตุผลที่คุณไม่ได้รับคำตอบที่คุณคาดหวัง
pdh0710 avatar
au flag
@ user535733 คุณยังไม่เข้าใจปัญหาของฉันใช่ไหม
pdh0710 avatar
au flag
@ user535733 จากนั้นให้ถามข้อมูลที่จำเป็นเพื่อให้เข้าใจปัญหาของฉันชัดเจนยิ่งขึ้น
Score:1
ธง sa

Ubuntu 20.04 และใหม่กว่ามีแพ็คเกจ python3.9 ในที่เก็บเริ่มต้น สามารถติดตั้งควบคู่ไปกับแพ็คเกจ python3.8 เริ่มต้นด้วย อัปเดต sudo apt && sudo apt ติดตั้ง python3.9 การติดตั้งแพ็คเกจ python3.9 จากที่เก็บเริ่มต้นของ Ubuntu ทำให้การจัดการแพ็คเกจง่ายขึ้น

หากคุณใช้ Ubuntu 20.04 ให้ Python 3.8 เป็นเวอร์ชันเริ่มต้นของ Python 3.x และเปลี่ยนเป็น Python 3.9 เมื่อจำเป็นเท่านั้น ทางเลือกในการปรับปรุง. หลังจากที่คุณใช้ Python 3.9 เสร็จแล้ว คุณสามารถเปลี่ยนกลับเป็นเวอร์ชันเริ่มต้นของ Python 3 ได้

  • รายการเวอร์ชันที่ติดตั้งของ Python: ทางเลือกในการอัปเดต --list python

  • สลับระหว่างเวอร์ชัน Python: ทางเลือกในการอัปเดต --config python

    จากบรรทัดคำสั่งเทอร์มินัล กด <enter> เพื่อคงตัวเลือกปัจจุบัน[*] หรือพิมพ์หมายเลขการเลือก:

pdh0710 avatar
au flag
ตกลง. ฉันจะลองวิธีนี้ เมื่อฉันติดตั้ง Python เวอร์ชัน 3.9 บนเซิร์ฟเวอร์ของฉัน เป็นครั้งแรกที่ฉันติดตั้ง Python เวอร์ชันอื่น นอกเหนือจากค่าเริ่มต้นของระบบ ดังนั้นอาจมีข้อผิดพลาดบางอย่างที่ฉันไม่ทราบ ฉันจะติดตั้ง Python 3.9 ใหม่โดยไม่มีข้อผิดพลาดอย่างที่คุณบอก
karel avatar
sa flag
โปรดถอนการติดตั้ง Python 3.9 เวอร์ชันเก่าก่อนที่จะติดตั้ง Python 3.9 เวอร์ชันใหม่
pdh0710 avatar
au flag
แน่นอน. ฉันจะติดตั้งเซิร์ฟเวอร์ Ubuntu ใหม่ทั้งหมด โชคดีที่เซิร์ฟเวอร์ Ubuntu ของฉันมีโครงสร้างที่เรียบง่าย
Score:1
ธง de
ob2

คุณอาจต้องตรวจสอบว่า python3 เวอร์ชันใดถูกแมป

ls -l /usr/bin/python3

หาก symlink อยู่ใน python3.9 คุณสามารถลองเปลี่ยนกลับเป็นเวอร์ชัน python3.8 โดยใช้คำสั่งต่อไปนี้

ซีดี /usr/bin/
sudo ln -sf python3.8 python3

อันที่จริง มันไม่ใช่ปัญหาใหญ่เพราะคุณสามารถมี system python ได้หลายเวอร์ชั่น หากผู้ใช้ของคุณจำเป็นต้องใช้ python3.9 ให้ใช้ python3.9 <สคริปต์ของคุณ>.py

de flag
ob2
ขออภัย หลังจากอ่านคำถามของคุณแล้ว ฉันเพิ่งรู้ว่าไม่ได้ตอบคำถามของคุณ ฉันไม่แน่ใจเกี่ยวกับการติดตั้ง python ในฐานะผู้ใช้ที่ไม่ใช่ระบบ ฉันไม่แน่ใจว่าเป็นไปได้
pdh0710 avatar
au flag
ในเซิร์ฟเวอร์ Ubuntu ของฉัน `/usr/bin/python3 -> python3.8` ฉันไม่รู้ว่าเหตุใดการอัปเดตโมดูลส่วนกลางจึงทำให้เกิดปัญหาดังกล่าว
de flag
ob2
คุณหมายถึงอะไรโดยการอัพเกรดโมดูลส่วนกลาง คุณใช้ pip ?
pdh0710 avatar
au flag
ใช่. `pip3 ติดตั้ง --upgrade` และ `pip3.9 ติดตั้ง --อัพเกรด`
de flag
ob2
พิจารณาใช้ virtualenv ในกรณีนั้น การติดตั้งแพ็คเกจด้วย pip โดยทั่วไปเป็นความคิดที่ไม่ดี เว้นแต่คุณจะติดตั้งเซิร์ฟเวอร์สำหรับผลิตภัณฑ์เฉพาะ
pdh0710 avatar
au flag
ฉันใช้ 'venv' `virtualenv` ดีกว่าไหม
de flag
ob2
มันเหมือนกัน ! โดยพื้นฐานแล้ว venv จะจัดเก็บแพ็คเกจใดๆ ที่คุณติดตั้ง ดังนั้นสิ่งนี้จะไม่เปลี่ยนแปลงระบบของคุณ

โพสต์คำตอบ

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