Điểm:1

Cài đặt an toàn Python 3.9 cho người dùng không root?

lá cờ au

(Xin thứ lỗi cho tiếng Anh của tôi)

Hệ điều hành máy chủ của tôi là Ubuntu 20.04. Trong Ubuntu 20.04, như chúng ta đã biết, Python 3.8 được cài đặt theo mặc định và nhiều ứng dụng hệ thống chạy trên Python 3.8.
Tôi cũng đã cài đặt Python 3.9 trong máy chủ Ubuntu của mình. Và máy chủ của tôi hoạt động tốt trong một thời gian.

Tuy nhiên, khi tôi nâng cấp các mô-đun toàn cầu của Python (cả 3.8 và 3.9), sự cố đã xảy ra. Một số chương trình hệ thống như Trình cập nhật phần mềmPhần mềm và cập nhật, không hoạt động. Họ đưa ra lỗi nói rằng không thể tìm thấy một số mô-đun toàn cầu Python. Tôi đã cố khắc phục sự cố bằng cách cài đặt lại các mô-đun toàn cầu python nhưng không khắc phục được.

Tôi không cần Python 3.9 cho toàn bộ hệ thống máy chủ, chỉ dành cho một số tài khoản người dùng không phải root. Và mô-đun toàn cầu cần thiết duy nhất là pípvenv. Các mô-đun khác có thể được cài đặt trên cơ sở dự án.
Vì vậy, tôi đã cố gắng cài đặt Python 3.9 với tư cách là người dùng không phải root. Nhưng một số lỗi đã xảy ra và không thành công.

Làm cách nào tôi có thể cài đặt Python 3.9 (hoặc cao hơn) một cách an toàn cho người dùng không root?

  • Ở đây, an toàn cài đặt có nghĩa là cài đặt không can thiệp vào Python 3.8 mặc định của hệ thống.
  • Việc Python 3.9 (hoặc cao hơn) được cài đặt trên toàn hệ thống hay cho một người dùng cụ thể không quan trọng.
pdh0710 avatar
lá cờ au
@ user535733 : Có vẻ như đã có thông tin sai lệch. Tôi đã chỉnh sửa bài đăng của mình để thể hiện ý định của mình rõ ràng hơn.
user535733 avatar
lá cờ cn
Một cách đơn giản là sử dụng Python venv. Bạn đang hỏi làm thế nào để làm điều đó? Hay bạn đang yêu cầu nhiều lựa chọn hơn?
pdh0710 avatar
lá cờ au
@user535733: Tôi đã viết trong bài đăng của mình rằng "Và mô-đun toàn cầu cần thiết duy nhất là `pip` và `venv`", có nghĩa là tôi muốn sử dụng `pip` và `venv` của Python 3.9 mà không can thiệp vào Python mặc định của hệ thống 3.8.
user535733 avatar
lá cờ cn
Trong trường hợp đó, điều này có vẻ giống như một bản sao của https://stackoverflow.com/questions/1534210/use-different-python-version-with-virtualenv, bao gồm nhiều câu trả lời hướng dẫn từng bước và liên kết đến một hướng dẫn trên YouTube.
pdh0710 avatar
lá cờ au
@ user535733 : Tôi không biết tại sao bạn lại bị ám ảnh bởi việc chỉ sử dụng `venv`. Tôi đã sử dụng phiên bản Python khác với `venv`. Vấn đề của tôi là một ngày nào đó nó can thiệp vào hệ thống Python 3.8. Tôi không nghĩ mình là người duy nhất gặp vấn đề này. Vì vậy, tôi đã đăng câu hỏi này và muốn nghe ý kiến ​​​​về vấn đề này. Không sử dụng `venv`.
user535733 avatar
lá cờ cn
Hãy nhớ rằng chúng tôi không có ở đó. Chúng tôi không thể nhìn thấy những gì bạn đang nhìn thấy. Chúng tôi không biết lịch sử của bất kỳ vấn đề nào bạn có thể gặp phải. Tất cả những gì chúng tôi biết là những gì bạn mô tả cho chúng tôi. Điều này vẫn có vẻ giống như một [Vấn đề XY](https://en.wikipedia.org/wiki/XY_problem) đối với tôi. Bạn không hỏi về vấn đề thực sự mà bạn gặp phải; bạn đang yêu cầu giải pháp ưa thích của mình mà có lẽ không khôn ngoan hoặc không khả thi đối với chúng tôi. Đó là lý do tại sao bạn không nhận được câu trả lời mà bạn hy vọng.
pdh0710 avatar
lá cờ au
@ user535733 Bạn vẫn chưa hiểu vấn đề của tôi à?
pdh0710 avatar
lá cờ au
@ user535733 Sau đó hỏi những thông tin cần thiết để hiểu rõ hơn vấn đề của tôi.
Điểm:1
lá cờ de
ob2

Bạn có thể cần kiểm tra phiên bản python3 nào được ánh xạ.

ls -l /usr/bin/python3

Nếu liên kết tượng trưng trên python3.9, bạn có thể thử quay lại phiên bản python3.8 bằng lệnh sau

cd /usr/bin/
Sudo ln -sf python3.8 python3

Trên thực tế, đó không phải là vấn đề lớn vì bạn có thể có một số phiên bản python hệ thống. Nếu người dùng của bạn cần sử dụng python3.9, chỉ cần sử dụng python3.9 <tập lệnh của bạn>.py

lá cờ de
ob2
Xin lỗi, sau khi đọc câu hỏi của bạn, tôi mới nhận ra rằng tôi đã không trả lời câu hỏi của bạn. Tôi không chắc về việc cài đặt python với tư cách là người dùng không phải hệ thống, tôi không chắc nó khả thi.
pdh0710 avatar
lá cờ au
Trong máy chủ Ubuntu của tôi, `/usr/bin/python3 -> python3.8` . Tôi không hiểu tại sao việc cập nhật các mô-đun toàn cầu lại gây ra vấn đề như vậy.
lá cờ de
ob2
Bạn có ý nghĩa gì khi nâng cấp các mô-đun toàn cầu. Bạn đã sử dụng pip?
pdh0710 avatar
lá cờ au
Đúng. `cài đặt pip3 --upgrade` và `pip3.9 cài đặt --nâng cấp`
lá cờ de
ob2
Cân nhắc sử dụng virtualenv trong trường hợp đó. Cài đặt các gói bằng pip nói chung là một ý tưởng tồi trừ khi bạn cài đặt máy chủ cho một sản phẩm cụ thể.
pdh0710 avatar
lá cờ au
Tôi đang sử dụng `venv`. `virtualenv` tốt hơn?
lá cờ de
ob2
giống nhau ! về cơ bản, venv sẽ lưu trữ bất kỳ gói nào bạn cài đặt, vì vậy điều này sẽ không làm thay đổi hệ thống của bạn.
Điểm:1
lá cờ sa

Ubuntu 20.04 trở lên có gói python3.9 trong kho lưu trữ mặc định của nó. Nó có thể được cài đặt cùng với gói python3.8 mặc định với cập nhật sudo apt && sudo apt cài đặt python3.9 Cài đặt gói python3.9 từ kho Ubuntu mặc định giúp đơn giản hóa việc quản lý gói.

Nếu bạn đang sử dụng Ubuntu 20.04, hãy giữ Python 3.8 làm phiên bản Python 3.x mặc định và chỉ chuyển sang Python 3.9 khi cần thiết bằng cách sử dụng thay thế cập nhật. Sau khi sử dụng xong Python 3.9, bạn có thể chuyển nó trở lại phiên bản Python 3 mặc định.

  • Liệt kê các phiên bản Python đã cài đặt: update-alternatives --list python

  • Chuyển đổi giữa các phiên bản Python: thay thế cập nhật --config python

    Từ dòng lệnh đầu cuối Nhấn <enter> để giữ lựa chọn hiện tại[*] hoặc nhập số lựa chọn:

pdh0710 avatar
lá cờ au
VÂNG. Tôi sẽ thử cách này. Khi tôi cài đặt phiên bản Python 3.9 trên máy chủ của mình, đây là lần đầu tiên tôi cài đặt một phiên bản Python khác, không phải phiên bản mặc định của hệ thống. Vì vậy, có thể đã có một số sai lầm mà tôi không nhận thức được. Tôi sẽ cài đặt lại Python 3.9 mà không gặp lỗi như bạn đã nói.
karel avatar
lá cờ sa
Vui lòng gỡ cài đặt phiên bản Python 3.9 cũ trước khi cài đặt phiên bản Python 3.9 mới.
pdh0710 avatar
lá cờ au
Tất nhiên. Tôi sẽ cài đặt lại toàn bộ máy chủ Ubuntu. May mắn thay, máy chủ Ubuntu của tôi có cấu trúc đơn giản.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.