Nếu bạn là một lập trình viên, đặc biệt là trong lĩnh vực khoa học dữ liệu hay phân tích, chắc hẳn bạn đã từng đau đầu với các gói phần mềm (package) được cài đặt sẵn trong một bản phân phối Linux. Sẽ ra sao nếu có một cách để bạn có môi trường lập trình riêng biệt cho từng dự án, hoàn toàn độc lập với hệ thống mà không cần phải thiết lập một máy ảo? Mamba chính là giải pháp mà bạn cần tìm.
Mamba Là Gì? – Hiểu Rõ Công Cụ Quản Lý Gói Tối Ưu
Giao diện trang GitHub của Mamba, nơi cung cấp mã nguồn và thông tin dự án Mamba
Mamba là một trình quản lý gói được thiết kế để sử dụng cho từng dự án cụ thể. Nó có những điểm tương đồng với các trình quản lý gói trên hệ thống Linux hiện đại, nhưng thay vì quản lý phần mềm cho toàn bộ hệ thống, Mamba cho phép bạn tạo ra các môi trường riêng biệt chỉ chứa những gói cần thiết cho dự án của mình. Mamba là một bản triển khai lại của trình quản lý gói Conda. Trong khi Conda được viết bằng Python, Mamba đã được viết lại bằng C++ để đạt được tốc độ xử lý vượt trội.
Giống như Conda, Mamba rất phổ biến trong các ngành như khoa học dữ liệu, thống kê, sinh thống kê và phân tích dữ liệu. Nó dường như có mối liên hệ mật thiết với Python, có lẽ bởi cái tên lấy cảm hứng từ loài rắn. Tên gọi này được chọn để thể hiện tốc độ của loài rắn Mamba, khẳng định Mamba là phiên bản nhanh hơn của Conda.
Mamba thực hiện nhiều chức năng mà bạn mong đợi từ một trình quản lý gói, chẳng hạn như tìm kiếm, cài đặt và cập nhật các gói. Bạn có thể tạo các môi trường riêng biệt, kích hoạt hoặc vô hiệu hóa chúng bất cứ khi nào bạn muốn, và có thể cài đặt nhiều môi trường khác nhau trên cùng một máy tính.
Tại Sao Mamba Lại Cần Thiết Cho Phát Triển Phần Mềm?
Nếu bạn đang sử dụng Linux hoặc các hệ thống giống Unix khác để phát triển, bạn có thể tự hỏi tại sao cần một công cụ như Mamba. Chẳng phải bạn đã có sẵn trình quản lý gói rồi sao?
Phần mềm được cài đặt thông qua trình quản lý gói hệ thống thường dành cho toàn bộ hệ thống. Nhiều hệ thống bao gồm một trình thông dịch Python, nhưng nó chủ yếu để chạy các script và chương trình phụ thuộc vào Python của hệ thống, chứ không phải để hỗ trợ các dự án lập trình cá nhân của bạn. Nếu bạn cần một phiên bản Python mới hơn cho mã của mình so với phiên bản hệ thống cung cấp và bạn nâng cấp nó, các script và chương trình khác phụ thuộc vào phiên bản cũ có thể bị lỗi. Đây là vấn đề phổ biến của các lập trình viên.
Mamba giải quyết vấn đề này bằng cách cho phép bạn tạo các môi trường riêng biệt cho từng tác vụ, hoàn toàn cô lập khỏi hệ thống cơ bản. Nếu bạn đang làm việc trong khoa học dữ liệu hoặc phân tích, bạn có thể định nghĩa một môi trường riêng chỉ cho công việc của mình mà không làm ảnh hưởng đến hệ thống chính. Bạn có thể kích hoạt môi trường này khi muốn chạy các phép tính và tắt nó đi khi hoàn thành. Đây là lợi ích cốt lõi giúp Mamba trở thành công cụ không thể thiếu cho các dự án phức tạp.
Hướng Dẫn Cài Đặt Mamba Trên Hệ Điều Hành Unix-like
Cài đặt Mamba khá đơn giản trên hầu hết các hệ thống giống Unix. Chúng tôi sẽ hướng dẫn cài đặt Mamba trên hệ thống Debian Linux, nhưng các bước này cũng tương tự trên Ubuntu, Fedora hay macOS.
Bạn có thể làm theo các hướng dẫn đơn giản để tải xuống và cài đặt Mamba trực tiếp từ trang tài liệu của Mamba. Đầu tiên, bạn cần tải xuống bản phân phối Miniforge. Đây là một phiên bản tối giản của Mamba, chứa tất cả các tệp cơ bản bạn cần để bắt đầu.
Giả sử bạn đã cài đặt curl
, tất cả những gì bạn phải làm là dán một dòng lệnh để tải xuống trên hệ thống giống Unix:
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
Quá trình tải xuống Miniforge Conda bằng lệnh Curl trong Terminal trên Linux
Sau khi tải xuống, bạn có thể chạy script cài đặt:
bash Miniforge3-$(uname)-$(uname -m).sh
Màn hình của script cài đặt Miniforge Conda đang chờ người dùng nhấn Enter để tiếp tục
Script sẽ yêu cầu bạn nhấn Enter
để tiếp tục, sau đó xem lại các điều khoản cấp phép. Vì Mamba là mã nguồn mở, điều này có thể sẽ không gây trở ngại cho bạn. Bạn sẽ phải gõ “yes” hoặc “no” để chấp nhận hoặc từ chối các điều khoản cấp phép. Để chấp nhận và tiếp tục cài đặt, gõ “yes” tại dấu nhắc.
Sau đó, bạn sẽ phải xác nhận thư mục nơi bạn muốn cài đặt các gói Conda của mình. Theo mặc định, nó sẽ nằm trong thư mục gốc của bạn với một thư mục con tên là “miniforge”.
Khi Miniforge được cài đặt xong, bạn sẽ nhận được một lời nhắc để chỉnh sửa script khởi động mặc định của shell (ví dụ: .bashrc
hoặc .zshrc
, tùy thuộc vào shell bạn đang sử dụng) để Mamba tự động khởi động khi bạn mở một shell mới. Bạn có thể sẽ muốn điều này nếu bạn có kế hoạch làm việc với Mamba thường xuyên. Điều này sẽ giúp bạn dễ dàng kích hoạt và hủy kích hoạt các môi trường Mamba hơn. Gõ “yes” một lần nữa để xác nhận.
Tạo Môi Trường Lập Trình Với Mamba
Khi bạn mở một terminal mới, bạn có thể đã nhận thấy điều gì đó khác biệt về dấu nhắc shell của mình. Bạn sẽ thấy một dòng chữ “(base)”. Điều này có nghĩa là Mamba đã được kích hoạt với môi trường cơ sở (base environment). Đây chính xác là một môi trường cơ bản tối thiểu. Bạn có thể kiểm tra điều này bằng cách gõ “python” tại dấu nhắc. Trong thông báo giới thiệu, bạn có thể thấy rằng phiên bản Python này được “packaged by conda-forge.”
Trình thông dịch Python từ Mamba đang chạy trong Terminal trên Linux, hiển thị phiên bản được cài đặt bởi conda-forge
Bạn có thể cài đặt các gói khác vào môi trường “base” này, nhưng bạn không nên làm vậy. Mục đích của Mamba là để bạn có tất cả các gói cần thiết cho một dự án trong một môi trường, và các gói khác cho một dự án khác trong một môi trường riêng biệt.
Việc tạo môi trường với Mamba rất dễ dàng. Để tạo một môi trường, bạn sử dụng lệnh mamba create
với tùy chọn -n
theo sau là tên môi trường bạn muốn tạo, sau đó là danh sách các gói bạn muốn cài đặt trong môi trường này.
Ví dụ: Để tạo một môi trường cho tính toán thống kê có tên “stats” với các gói Python phổ biến như NumPy, SciPy và pandas, hãy sử dụng lệnh sau:
mamba create -n stats numpy scipy pandas
Giống như bất kỳ trình quản lý gói nào khác, nó sẽ xác định các gói và các phần phụ thuộc của chúng, và cuối cùng hỏi bạn xác nhận việc cài đặt. Vì việc cài đặt được thực hiện trong thư mục gốc của bạn, bạn không cần sử dụng sudo
hoặc cung cấp mật khẩu root.
Màn hình Terminal hiển thị quá trình cài đặt các gói vào môi trường 'stats' của Mamba
Để kích hoạt môi trường “stats”, hãy sử dụng lệnh mamba activate
:
mamba activate stats
Bạn sẽ thấy tên của môi trường đang hoạt động thay đổi từ “(base)” thành “(stats)” trong dấu nhắc. Giờ đây, bạn có thể sử dụng các gói đã cài đặt trong môi trường này.
Hãy thử nghiệm điều này bằng cách chạy trình thông dịch tương tác Python.
Chúng ta có thể nhập NumPy và kiểm tra nó hoạt động:
import numpy as np
np.mean([1,2,3,4])
Nó sẽ trả về kết quả là số thực 2.5
.
Cài Đặt và Quản Lý Gói Bổ Sung Trong Mamba
Nhiều khi, bạn nhận ra mình có thể muốn thêm các gói vào môi trường hiện có của mình. Ví dụ, bạn có thể thích trình thông dịch IPython hơn trình thông dịch tiêu chuẩn. Bạn có thể thêm nó bằng một trong hai cách.
Bạn có thể thêm nó bằng cách sử dụng tùy chọn -n
với mamba install
:
mamba install -n stats ipython
Cài đặt gói IPython vào môi trường Mamba 'stats' hiện có thông qua lệnh `mamba install -n stats ipython`
Bạn cũng có thể chạy mamba install
trong một môi trường đã được kích hoạt để cài đặt gói vào môi trường đó. Vì “stats” đã được kích hoạt, bạn sẽ làm như vậy. Mamba sẽ hỏi bạn xác nhận các thay đổi và sau đó cài đặt IPython.
Bạn có thể chạy IPython tại shell:
ipython
Để hủy kích hoạt một môi trường khi bạn hoàn thành công việc, bạn có thể sử dụng lệnh mamba deactivate
. Để chứng minh rằng IPython đã được cài đặt vào môi trường “stats”, khi bạn cố gắng chạy nó sau khi hủy kích hoạt, bạn sẽ nhận được lỗi “command not found”.
Để tìm kiếm gói, bạn có thể sử dụng lệnh mamba search
hoặc mamba repoquery
.
Ví dụ, để tìm các gói liên quan đến Jupyter, một giao diện notebook phổ biến cho tính toán khoa học:
mamba search jupyter
Cập Nhật Môi Trường Mamba Hiệu Quả
Giống như các trình quản lý gói khác, Mamba rất tiện lợi trong việc giữ các gói được cập nhật khi các phiên bản mới có sẵn. Bạn có thể sử dụng lệnh mamba update
.
Ví dụ, để cập nhật tất cả các gói trong môi trường “stats”:
mamba update --all -n stats
Quá trình cập nhật môi trường Mamba có tên 'stats' trong Terminal
Ngoài ra, bạn có thể sử dụng --update-all
thay vì --all
trong lệnh, nhưng --all
ngắn gọn hơn. Vì đây là một bản cài đặt mới, sẽ không có gì để cập nhật khi bạn chạy lệnh này.
Với Mamba, bạn có thể tạo các môi trường phù hợp với các dự án lập trình của mình, kích hoạt và hủy kích hoạt chúng, cũng như cập nhật chúng theo ý muốn. Dù có vẻ lạ khi có một trình quản lý gói “trên” trình quản lý gói của bạn, nhưng việc sử dụng Mamba sẽ giúp dự án lập trình của bạn diễn ra suôn sẻ hơn rất nhiều, đặc biệt là trong các lĩnh vực yêu cầu nhiều thư viện phức tạp như khoa học dữ liệu và máy học.