Linux

Cài đặt Python 3.7 trên Ubuntu phiên bản LTS

Một trong số những điều tôi thích ở Linux là sau khi cài đặt xong, bản thân hệ điều hành đã cung cấp rất nhiều gói công cụ hỗ trợ lập trình “out-of-the-box”, người dùng không cần phải tự cài đặt bằng tay từ bên ngoài, mà tiêu biểu nhất là python. Tuyệt đại đa số các bản phân phối Linux đều có Python sẵn, tuy nhiên, điều này cũng gây nên một số hạn chế nhất định, mà hạn chế lớn nhất là việc gói Python sẽ không, hoặc ít khi, với thời gian khá lâu, được cập nhật lên phiên bản mới nhất. Chẳng hạn, Ubuntu 16.04 Xenial đi kèm với Python 3.5.2 và sẽ mãi “đứng hình” với phiên bản này, còn với Ubuntu 18.04 Bionic là 3.6.5. Để cài đặt Python 3.7 mới nhất lên hai tên này, bạn không nên cài chồng lên phiên bản có sẵn để nâng cấp. Lí do thì tôi sẽ nói sau. Tốt nhất, bạn nên cài song song với phiên bản cũ. Bài này chỉ hướng tới các bạn đang dùng Ubuntu bản LTS, còn đối với Fedora hay Ubuntu bản 9 tháng, bạn chỉ cần nâng cấp lên phiên bản HĐH mới nhất mỗi 6 hoặc 12 tháng là bạn sẽ “bắt kịp thời đại”, hoặc có trễ đôi chút nhưng cũng không quá xa xôi.

python

1. Cách cài chồng (không khuyến nghị)

Bạn có thể tải bản Python 3 mới nhất tại https://www.python.org/downloads/ và dùng các câu lệnh quá đỗi quen thuộc với những người dùng Linux chuyên nghiệp là configure, make và sudo make install. Nếu trong quá trình build cần thêm gói gì thì make sẽ thông báo cho bạn để cài thêm. Tuy nhiên, cá nhân tôi không khuyến nghị cách làm này, lí do là như sau:

  • Ảnh hưởng tới thư viện Python3 có sẵn: Bản thân các hệ điều hành Linux ít nhiều được xây dựng dựa trên Python. Lỡ như bản Python mới nhất remove luôn một method nào đó mà một phần mềm hệ thống nào yêu cầu, vì nó được dựng trên phiên bản Python cũ, thì khả năng cao sẽ không hoạt động được. Nếu nặng thì treo máy, còn nặng nhất là không boot được.
  • Thay đổi cả hệ thống dependencies và khả năng không nhỏ sẽ ảnh hưởng tới các phần mềm khác, và bạn sẽ phải ngậm ngùi mà “làm lại từ đầu”.
  • Quá trình build rất mất thời gian và có thể yêu cầu thêm nhiều gói, bạn sẽ tốn nhiều công sức mà các gói được cài thì chỉ sử dụng trong mỗi lần này, gây lãng phí tài nguyên và sức khỏe của bạn.

2. Cài đặt song song với phiên bản Python3 hiện tại

Nhờ anh Jonathon F build các phiên bản Python3 dưới dạng gói bình thường, nên bạn dễ dàng cài Python3.7 mà không sợ ảnh hưởng tới hệ thống. Đầu tiên, bạn add PPA Python3.7 của anh ấy vào và chạy apt-get update với 16.04, còn với 18.04 thì không cần, và cài gói python3.7:

Và từ giờ, nếu bạn muốn chạy một tập tin py với Python3.7, thay vì gọi python3, bạn chỉ cần gọi python3.7 là được, chẳng hạn:

Ngoài ra, anh ấy sẽ cung cấp luôn các phiên bản Python3.7.X với cùng PPA nên bạn sẽ luôn được cập nhật lên bản Python3.7 mới nhất với apt mà không cần cấu hình gì thêm. Sau này, khi Python3.8 chính thức ra mắt, bạn có thể add PPA tương tự như trên với python-3.8.

3. Các thư viện pip:

Anh JF không cung cấp gói python3.7-pip (và điều này cũng không cần thiết), vì vậy, khi bạn gọi pip3 install thì mặc định, pip3 sẽ tải và thêm thư viện vào cho phiên bản Python3 có sẵn, tức 3.5.2 trên Xenial hay 3.6.5 trên Bionic. Vì vậy, để chạy các modules với Python3.7, bạn cần một thủ thuật nhỏ như sau:

Bạn truy cập vào ~/.local/lib, bạn sẽ thấy thư mục python3.5 với Xenial hay python3.6 với Bionic. Bạn chỉ cần symlink nó ngay cạnh bên, và đổi tên thư mục liên kết vừa được tạo thành python3.7 là xong, như hình minh họa bên dưới:

Python3.7-modules

Vậy là xong, các modules của python3.5 hoặc python3.6 sẽ được chia sẻ cho python3.7 dùng chung và giờ thì bạn có thể code Python và chạy với Python3.7 mà không gặp vấn đề gì. Chúc các bạn vui vẻ và thành công.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.