Là một lập trình viên, đặc biệt trong lĩnh vực khoa học dữ liệu hay phân tích, chắc hẳn bạn đã từng đối mặt với những “cơn đau đầu” liên quan đến các gói phần mềm và thư viện có sẵn trong một bản phân phối Linux. Việc quản lý các phiên bản thư viện, tránh xung đột phụ thuộc giữa các dự án khác nhau có thể trở thành một thách thức lớn. Vậy sẽ thế nào nếu có một giải pháp cho phép bạn tạo ra các môi trường lập trình riêng biệt, độc lập cho từng dự án mà không cần phải thiết lập một máy ảo phức tạp? Mamba chính là công cụ bạn đang tìm kiếm để giải quyết vấn đề này.
Mamba Là Gì?
Mamba là một trình quản lý gói mạnh mẽ được thiết kế để sử dụng riêng cho từng dự án. Về cơ bản, nó hoạt động tương tự như các trình quản lý gói bạn thường thấy 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 các gói cần thiết cho một dự án cụ thể của bạn.
Mamba là một bản tái hiện (reimplementation) của trình quản lý gói Conda. Trong khi Conda ban đầu được viết bằng Python, Mamba đã được viết lại hoàn toàn bằng C++ để đạt được tốc độ xử lý vượt trội. Cái tên Mamba, gợi nhớ đến loài rắn mamba nổi tiếng với tốc độ, dường như được chọn để nhấn mạnh khả năng tăng tốc đáng kể so với Conda.
Giao diện trang GitHub chính thức của dự án Mamba, một công cụ quản lý gói hiệu quả cho môi trường phát triển.
Mamba, cũng giống như Conda, rất phổ biến trong cộng đồng khoa học dữ liệu, thống kê, thống kê sinh học và phân tích dữ liệu. Nó đặc biệt được ưa chuộng khi làm việc với Python, có lẽ bởi sự tương đồng về tên gọi liên quan đến loài rắn. Mamba thực hiện hầu hết các 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 nhiều môi trường độc lập trên cùng một máy và kích hoạt hoặc hủy kích hoạt chúng tùy theo nhu cầu sử dụng cho từng dự án.
Tại Sao Nên Sử Dụng Mamba?
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 lại cần một công cụ như Mamba khi hệ thống đã có sẵn trình quản lý gói.
Phần mềm được cài đặt bởi trình quản lý gói của hệ thống được thiết kế để phục vụ toàn bộ hệ thống. Nhiều hệ thống Linux đi kèm với một trình thông dịch Python mặc định. Phiên bản Python này thường dùng để chạy các script và chương trình phụ thuộc vào nó, 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 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 của hệ thống phụ thuộc vào phiên bản cũ có thể bị lỗi hoặc không hoạt động đúng cách.
Mamba giải quyết triệ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ụ, cô lập hoàn toàn khỏi hệ thống cơ sở. Nếu bạn đang làm việc trong lĩnh vực 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 chỉ dành riêng cho công việc của mình, trong khi vẫn giữ nguyên hệ thống gốc. Bạn có thể kích hoạt môi trường đó khi cần thực hiện các phép tính và tắt nó đi khi hoàn thành. Tôi đã sử dụng Mamba trong nhiều dự án, bao gồm một dự án gần đây về xây dựng công cụ dự đoán giá laptop, điều này chứng minh tính hữu ích và linh hoạt của nó trong thực tế.
Hướng Dẫn Cài Đặt Mamba
Việc cài đặt Mamba khá đơn giản trên hầu hết các hệ thống giống Unix. Trong phần này, chúng ta sẽ thực hiện cài đặt Mamba trên hệ thống Debian Linux.
Bạn có thể dễ dàng làm theo các hướng dẫ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 về bản phân phối Miniforge. Đây là một phiên bản Mamba tối giản, 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 cần làm là dán dòng lệnh sau để 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"
Hình ảnh quá trình tải xuống Miniforge, bản phân phối Mamba tối giản, bằng lệnh curl trên terminal 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 hiển thị script cài đặt Miniforge chờ người dùng xác nhận để tiếp tục quá trình thiết lập Mamba.
Script sẽ yêu cầu bạn nhấn Enter để tiếp tục, sau đó xem xét các điều khoản cấp phép. Vì Mamba là mã nguồn mở, điều này thường không phải là vấn đề. Bạn sẽ cần gõ “yes” hoặc “no” để chấp nhận hoặc từ chối các điều khoản. Để chấp nhận và tiếp tục cài đặt, hãy gõ “yes” tại dấu nhắc.
Tiếp theo, bạn sẽ phải xác nhận thư mục mà bạn muốn cài đặt các gói Conda của mình. Mặc định, nó sẽ nằm trong thư mục gốc của người dùng với một thư mục con “miniforge”.
Khi Miniforge được cài đặt xong, bạn sẽ nhận được một dấu 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 làm điều này nếu có ý định làm việc với Mamba thường xuyên, vì nó sẽ giúp việc kích hoạt và hủy kích hoạt môi trường Mamba dễ dàng hơn. Gõ “yes” một lần nữa để xác nhận.
Tạo và Quản Lý Môi Trường 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 trên 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à những gì tên gọi của nó nói lên: một môi trường cơ sở 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 điệp 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 được kích hoạt từ môi trường base của Mamba, hiển thị thông tin gói trên terminal Linux.
Bạn có thể cài đặt các gói khác vào môi trường base này, nhưng đó không phải là mục đích chính. Điểm cốt lõi của Mamba là có tất cả các gói bạn cần 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 mới 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 của 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, Mamba sẽ xác định các gói và các phụ thuộc của chúng, sau đó cuối cùng yêu cầu 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.
Xác nhận cài đặt các gói cần thiết vào môi trường 'stats' của Mamba, hiển thị danh sách các thư viện và phụ thuộc.
Để kích hoạt môi trường “stats”, sử dụng lệnh mamba activate
:
mamba activate stats
Bạn sẽ thấy tên của môi trường hoạt động thay đổi từ “(base)” thành “(stats)” trên dấu nhắc lệnh. Bây giờ bạn có thể sử dụng các gói bạn đã cài đặt trong môi trường này.
Hãy thử kiểm tra bằng cách chạy trình thông dịch Python tương tác:
import numpy as np
np.mean([1,2,3,4])
Nó sẽ báo cáo kết quả là một số dấu phẩy động 2.5.
Cài Đặt Gói Bổ Sung và Tìm Kiếm Gói
Thông thường, bạn sẽ nhận ra rằng mình có thể muốn thêm các gói vào môi trường hiện có. Ví dụ, tôi thích trình thông dịch IPython hơn trình thông dịch chuẩn. Tôi có thể thêm nó bằng một trong hai cách.
Tôi 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' đang hoạt động, hiển thị tiến trình xác nhận các gói phụ thuộc.
Tôi cũng có thể chạy mamba install
trong một môi trường đang hoạt động để cài đặt gói vào môi trường đó. Vì môi trường “stats” đã được kích hoạt, tôi sẽ làm như vậy. Mamba sẽ yêu cầu tôi xác nhận các thay đổi và sau đó cài đặt IPython.
Tôi có thể chạy IPython tại shell:
ipython
Để hủy kích hoạt một môi trường khi đã hoàn thành công việc, tôi 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 tôi cố gắng chạy nó, tôi sẽ nhận được lỗi “command not found” sau khi hủy kích hoạt môi trường.
Để tìm kiếm các 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
Cũng như các trình quản lý gói khác, Mamba rất hữu ích trong việc giữ cho các gói được cập nhật khi có phiên bản mới. 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
Cập nhật tất cả các gói trong môi trường 'stats' của Mamba bằng lệnh mamba update –all, hiển thị trạng thái đã hoàn thành.
Ngoài ra, bạn có thể sử dụng --update-all
thay vì --all
trong lệnh, nhưng cách sau ngắn gọn hơn. Vì đây là một cài đặt mới, không có gì để cập nhật khi tôi chạy lệnh này.
Kết Luận
Với Mamba, bạn có khả năng tạo ra các môi trường tùy chỉnh phù hợp với từng dự án lập trình của mình, kích hoạt và hủy kích hoạt chúng một cách linh hoạt, đồng thời dễ dàng cập nhật các gói theo ý muốn. Mặc dù việc có một trình quản lý gói “trên” một trình quản lý gói khác có vẻ lạ lùng, nhưng việc sử dụng Mamba sẽ giúp các 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à khi bạn phải đối mặt với sự phức tạp của các phụ thuộc và phiên bản thư viện. Đây là một công cụ không thể thiếu cho các nhà phát triển và chuyên gia khoa học dữ liệu muốn tối ưu hóa quy trình làm việc và duy trì sự ổn định của môi trường phát triển.
Bạn đã từng sử dụng Mamba hoặc Conda chưa? Hãy chia sẻ kinh nghiệm của bạn trong phần bình luận bên dưới và đừng quên theo dõi thuthuatvitinh.com để cập nhật thêm nhiều kiến thức công nghệ hữu ích khác nhé!