Việc bắt đầu sử dụng .NET trên macOS hoặc Linux từ lâu thường đòi hỏi nhà phát triển phải lựa chọn giữa nhiều phương án: trình quản lý gói của hệ điều hành như apt hoặc brew, các gói tar dành riêng cho từng nền tảng, hay những tập lệnh shell độc lập như dotnet-install.sh. Dù các phương pháp này vẫn hữu ích, chúng thường liên quan đến quyền quản trị, để lại tệp ở nhiều thư mục hệ thống hoặc khiến việc duy trì nhiều phiên bản runtime song song trở nên phức tạp hơn cần thiết.
Đó là lý do Microsoft giới thiệu bản xem trước công khai của dotnetup — một trình quản lý chuỗi công cụ .NET mới, được thiết kế để cài đặt, quản lý và cập nhật .NET SDK cùng runtime trực tiếp trong tài khoản người dùng.
Mục lục
Vì sao nên dùng dotnetup?
Nếu bạn từng làm việc với các hệ sinh thái như Rust thông qua rustup hoặc Node.js thông qua nvm, bạn đã quen với lợi ích của một trình quản lý chuỗi công cụ chuyên dụng. Mục tiêu cốt lõi của dotnetup là giảm đáng kể số lượng khái niệm và các trở ngại khi thiết lập môi trường .NET:
- Trải nghiệm nhất quán: sử dụng cùng một lệnh và công cụ trên mọi nền tảng, bất kể chi tiết cài đặt bên dưới.
- Không cần quyền quản trị theo mặc định: mọi thành phần được lưu trong các thư mục thuộc quyền sở hữu của người dùng thay vì thư mục hệ thống, nên không cần quyền nâng cao.
- Quản lý runtime song song: có thể cài đặt đồng thời nhiều phiên bản servicing, các kênh xem trước và bản dựng hằng ngày mà không gây xung đột.
- Theo dõi mục đích sử dụng: thay vì phải quản lý từng phiên bản, bạn có thể theo dõi phiên bản lớn hoặc feature band, rồi để công cụ tự cập nhật hằng tháng.
- Tôn trọng cấu hình ghim phiên bản của dự án: hoạt động liền mạch với các tệp
global.jsonhiện có, giúp quá trình build của cả nhóm luôn dự đoán được và nhất quán.
Cài đặt dotnetup và bắt đầu sử dụng
Để cài đặt dotnetup trên macOS hoặc Linux, hãy chạy tập lệnh khởi động trong terminal.
macOS với Zsh:
curl -fsSL https://aka.ms/dotnetup/get-dotnetup.sh | zsh
Linux với Bash:
curl -fsSL https://aka.ms/dotnetup/get-dotnetup.sh | bash
PowerShell:
irm https://aka.ms/dotnetup/get-dotnetup.ps1 | iex
Sau khi tập lệnh tải tệp nhị phân xuống, hãy khởi tạo môi trường:
dotnetup init
Lệnh init thiết lập cấu hình shell để lệnh dotnet có thể sử dụng ngay trong các phiên terminal, đồng thời tải về .NET SDK ổn định mới nhất.
Để kiểm tra những thành phần đang được cài đặt trong môi trường cục bộ, hãy chạy:
dotnetup list
Bạn sẽ thấy danh sách rõ ràng về các SDK và runtime hiện đang được dotnetup quản lý trong thư mục cá nhân.
Duy trì runtime luôn được cập nhật
Mỗi tháng, nhóm .NET phát hành các bản cập nhật servicing bao gồm bản sửa lỗi bảo mật và cải thiện chất lượng. Giữ máy phát triển luôn cập nhật giúp bạn build và kiểm thử với những bản sửa lỗi mới nhất. Với ứng dụng tự chứa, bạn cũng cần publish và triển khai lại ứng dụng cùng runtime đã cập nhật. Việc cập nhật máy không tự vá các ứng dụng đã phát hành.
Khi sử dụng các bản cài đặt cấp hệ thống, bạn có thể không hoàn toàn chủ động trong việc cập nhật. Với dotnetup, việc duy trì phiên bản mới nhất chỉ cần một lệnh:
dotnetup update
Lệnh này xác định lại các kênh SDK và runtime mà bạn đang theo dõi, sau đó cài đặt những phiên bản mới nhất phù hợp. Chẳng hạn, 10.0 sẽ theo dõi các bản cập nhật trong .NET 10, còn latest sẽ theo dõi SDK ổn định mới nhất, bao gồm cả các phiên bản lớn mới. Những yêu cầu chỉ định phiên bản chính xác vẫn được ghim; vì vậy, bản cài đặt yêu cầu 10.0.3 sẽ không tự chuyển sang phiên bản khác khi cập nhật.
Nếu chỉ muốn cài đặt hoặc làm mới một loại runtime cụ thể, chẳng hạn ASP.NET Core Runtime trên .NET 10, bạn có thể chỉ định trực tiếp:
dotnetup runtime install aspnetcore@10.0
Sau khi cập nhật thành công, dotnetup tự động xóa những thành phần mà không còn yêu cầu nào sử dụng. Các phiên bản vẫn cần cho một kênh khác hoặc cho yêu cầu phiên bản chính xác sẽ được giữ lại.
Khi không còn cần một kênh hoặc phiên bản cụ thể đang được theo dõi, hãy xóa yêu cầu tương ứng bằng lệnh sdk uninstall hoặc runtime uninstall. Sau đó, dotnetup sẽ dọn dẹp những bản cài đặt không còn cần thiết.
Kiểm thử bản dựng hằng ngày và bản xem trước
Bên cạnh các bản servicing hằng tháng, nhiều nhà phát triển muốn kiểm thử bản sửa lỗi hoặc trải nghiệm khả năng runtime mới trước khi chúng xuất hiện trong kênh ổn định. Trước đây, việc kiểm thử một bản runtime hằng ngày thường đòi hỏi phải tìm các gói cài đặt tar thô trên GitHub, tự giải nén vào thư mục tùy chỉnh và điều chỉnh biến môi trường thủ công.
dotnetup hỗ trợ bản xem trước và bản dựng hằng ngày như những thành phần chính thức. Bạn có thể cài đặt SDK xem trước song song với môi trường ổn định:
dotnetup sdk install preview
Hoặc tải bản runtime hằng ngày mới nhất để xác minh một bản sửa lỗi:
dotnetup runtime install daily
Bạn cũng có thể tải toàn bộ SDK để trải nghiệm cả chuỗi công cụ:
dotnetup sdk install daily
Nhờ đó, bạn có thể linh hoạt kiểm thử các bản dựng hằng ngày trong tài khoản người dùng và dễ dàng dọn dẹp chúng khi không còn cần thiết.
Cập nhật chính dotnetup
Microsoft sẽ tiếp tục bổ sung tính năng và bản sửa lỗi cho dotnetup. Bạn có thể nhận các thay đổi mới bằng lệnh:
dotnetup self update
Các câu hỏi thường gặp
Tôi có thể làm mọi việc này bằng dotnet-install.sh hoặc dotnet-install.ps1 mà?
Đúng là bạn có thể thực hiện phần lớn các tác vụ bằng những tập lệnh cài đặt. Tuy nhiên, bạn sẽ thiếu:
- khả năng quản lý các SDK và runtime đã cài đặt;
- khả năng xác thực chữ ký và checksum của SDK cùng runtime;
- tốc độ cài đặt nhanh hơn khi cần nhiều SDK hoặc runtime;
- một giao diện dòng lệnh thống nhất trên mọi nền tảng.
dotnetup có cần sudo hoặc quyền root không?
Không. Hiện tại, dotnetup được xây dựng để hoạt động cục bộ trong tài khoản người dùng mà không cần quyền quản trị. Tất cả SDK, runtime và siêu dữ liệu đều được lưu hoàn toàn trong thư mục của người dùng.
Trong một bản phát hành tương lai, Microsoft sẽ bổ sung khả năng quản lý các bản cài đặt cấp hệ thống trên Windows, do kiểu cài đặt này rất phổ biến trên hệ điều hành đó.
Có thể sử dụng dotnetup trong quy trình CI không?
Có. Vì dotnetup không yêu cầu quyền root và hoạt động tốt ở chế độ không tương tác, công cụ này phù hợp với các worker CI chạy trong container hoặc được tạo tạm thời, nơi cần thiết lập nhanh một phiên bản SDK hay runtime hằng ngày cụ thể.
Lộ trình phát triển của dotnetup có gì?
Ngoài việc xem xét hỗ trợ các trình cài đặt cấp quản trị trên Windows, nhóm phát triển muốn tích hợp dotnetup vào các hệ thống CI/CD như GitHub Actions và Azure DevOps. Mục tiêu là thay thế một phần những triển khai hiện tại của các công cụ này vốn dựa trên các tập lệnh dotnet-install.
Nhóm cũng muốn tiếp tục cải thiện trải nghiệm người dùng để phù hợp hơn với cách mọi người sử dụng công cụ, đồng thời phát triển các khả năng dành cho trợ lý tự động để chúng sử dụng công cụ tự nhiên hơn và ưu tiên lựa chọn dotnetup khi phù hợp.
Tìm thêm thông tin ở đâu?
Để xem đầy đủ tham chiếu CLI, các tùy chọn cấu hình nâng cao và hướng dẫn chuyên sâu, hãy truy cập tài liệu dotnetup trên Microsoft Learn.
Nếu có góp ý, gặp lỗi hoặc muốn chia sẻ trải nghiệm, bạn có thể tham gia khu vực thảo luận dotnetup trong kho dotnet/sdk trên GitHub. Nhóm phát triển rất mong nhận được phản hồi về cách công cụ hoạt động và những điểm có thể cải thiện.



