Quản lý phiên bản Python trên Ubuntu 18.04 bằng công cụ update-alternatives
1. Giới thiệu về update-alternatives
1.1 update-alternatives là gì?
update-alternatives là công cụ hỗ trợ chuyển đổi giữa các phiên bản phần mềm trên hệ điều hành Linux, đặc biệt hữu ích khi có nhiều phiên bản như Python hoặc Java. Thư mục lưu trữ các cấu hình của công cụ này là /etc/alternatives.
1.2 Cách sử dụng:
china@ubuntu:~$ update-alternatives --help
Sử dụng: update-alternatives [ ...]
Lệnh:
--install <đường dẫn> <ưu tiên>
[--slave <đường dẫn>] ...
Thêm một nhóm tùy chọn vào hệ thống.
--remove <đường dẫn> Xóa <đường dẫn> khỏi nhóm thay thế .
--remove-all Xóa hoàn toàn nhóm thay thế .
--auto Chuyển chế độ sang tự động.
--display Hiển thị thông tin nhóm thay thế .
--query Phiên bản đọc được của --display .
--list Liệt kê tất cả tùy chọn trong nhóm .
--get-selections Liệt kê tên các tùy chọn chính và trạng thái.
--set-selections Đọc trạng thái từ đầu vào tiêu chuẩn.
--config Liệt kê tùy chọn trong nhóm và yêu cầu người dùng chọn.
--set <đường dẫn> Thiết lập <đường dẫn> là tùy chọn cho .
--all Gọi --config cho tất cả tùy chọn.
là đường dẫn đến /etc/alternatives/ (ví dụ: /usr/bin/pager)
là tên điều khiển nhóm thay thế (ví dụ: pager)
<đường dẫn> là vị trí tệp tùy chọn (ví dụ: /usr/bin/less)
<ưu tiên> là số nguyên, trong chế độ tự động, số càng cao ưu tiên càng cao.
2. Cách Ubuntu quản lý các phiên bản Python
2.1 Trên Ubuntu 18.04.4, phiên bản Python mặc định là 2.7 và Python 3 mặc định là 3.6.
2.2 Các tệp thực thi Python được lưu trữ trong thư mục /usr/bin.
2.3 Khi nhập lệnh python hoặc python3 trong terminal, hệ thống sẽ gọi phiên bản tương ứng là do các liên kết tượng trưng trong thư mục /usr/bin. Ví dụ:
cd /usr/bin
ll | grep python
2.4 Liên kết tượng trưng và liên kết cứng:
Liên kết tượng trưng giống như shortcut trên Windows, trong khi liên kết cứng là bản sao của tệp gốc. Nếu tệp gốc bị xóa, liên kết tượng trưng sẽ không còn hiệu lực nhưng liên kết cứng vẫn hoạt động.
Ví dụ tạo liên kết tượng trưng và cứng cho Python 2.7:
Liên kết tượng trưng: sudo ln -s python2.7 python
Liên kết cứng: sudo ln python2.7 python
3. Hướng dẫn sử dụng update-alternatives để quản lý phiên bản Python
3.1 Công cụ update-alternatives tạo thêm một lớp liên kết trung gian cho các tệp /usr/bin/python và /usr/bin/python3, giúp dễ dàng chuyển đổi phiên bản.
Khi chưa dùng update-alternatives:
/usr/bin/python → python2.7
Khi sử dụng update-alternatives:
/usr/bin/python → /etc/alternatives/python → python2.7
3.2 Ví dụ quản lý phiên bản Python 3:
3.2.1 Đăng ký nhóm thay thế và thiết lập độ ưu tiên:
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 3
3.2.2 Kiểm tra thông tin nhóm:
update-alternatives --display python3
update-alternatives --auto python3
3.2.3 Chuyển phiên bản Python 3 sang 3.8:
sudo update-alternatives --config python3
Chọn số thứ tự tương ứng với phiên bản 3.8 (ví dụ: 3).