Khái niệm quản lý gói phần mềm — tập trung vào một kho trung tâm nơi người dùng có thể tải tất cả ứng dụng — không phải là điều mới mẻ, và cõng không bắt đầu từ các hệ điều hành di động. Điều này đã tồn tại trên Linux nhiều năm, và cuối cùng biến thể thành các cửa hàng ứng dụng. Apple có một, Google có một, và Microsoft, naja, có một loại gì đó.
Tuy nhiên, nó không nhắm đến đối tượng chính của Windows — hàng tỷ người dùng máy tính để bàn. Tôi từng là fan hâm mộ lớn của Windows Phone — vẫn tự hào sở hữu vài chiếc, từ Lumia 520 đến Lumia 950 — nhưng góc chết chóc là sự thiếu hụt ứng dụng phổ biến trên Microsoft Store. Kết hợp với việc người dùng Windows phải lấy phần mềm từng mảnh một từ các trang web khác nhau, kết quả là: gần như không có sự chú ý nào dành cho khu vực này. Windows Package Manager (Winget) là một nỗ lực dũng cảm để khắc phục tình trạng này.
Winget, hiểu chưa?
Microsoft chưa từng cung cấp phần mềm máy tính để bàn tiêu chuẩn qua Store của mình — nhưng đã có nhiều giải pháp thứ ba thử图把类 Linux 的包管理功能带到 Windows 桌面多年。Chocolatey là ví dụ điển hình — tôi đã test nó cách đây 5 năm. Không cool sao nếu có một công cụ chính thức, do Microsoft phát hành, cung cấp một gói ứng dụng DESKTOP đầy đủ bạn cần, thậm chí có cách tự động hóa cài đặt và thiết lập? Vâng, bây giờ đã có.
Sau khi đọc về Windows Package Manager và giao diện dòng lệnh của nó — winget — tôi quyết định cài đặt và thử nghiệm.畢竟, nếu nó hoạt động tốt, sẽ mở ra vô số khả năng: tùy chỉnh sau cài đặt dễ dàng, khả năng cập nhật phần mềm — điều người dùng Windows hiếm khi làm — và dành cho các "geek", một thứ có thể dễ dàng viết script, nên nếu bạn rebuild hệ thống, thiết lập có thể hoàn toàn tự động và nhanh chóng.
Cài đặt
Tôi tải gói cài đặt Desktop App Installer và chạy nó. Không trực quan lắm, phải nói. Một wizard cài đặt đúng nghĩa sẽ tốt hơn, nhưng đối với bản preview sớm, nó ổn. Sau khi winget cài xong, mở command prompt hoặc PowerShell, và bắt đầu 탐索.
Các lệnh khá trực quan — và tương tự những gì kỹ sư đã gặp trên Linux. Bạn chạy winget search "tên gói" để tìm ứng dụng. Chạy winget install "tên gói" để cài đặt. Nghe đơn giản.
Tìm kiếm & Cài đặt
Tôi thử một vài tìm kiếm cơ bản. Trong một số trường hợp, có thể có nhiều entry hoặc phiên bản khả dụng. Và đây là lúc tôi gặp trục trặc đầu tiên. Điều gì xảy ra khi có nhiều ứng dụng khớp:
Bạn sẽ thấy thông báo:
Multiple apps found matching input criteria. Please refine the input.
Vấn đề này có thể giải quyết bằng cách dùng cờ -e (exact) với tùy chọn install — hoặc chỉ định phiên bản bạn muốn, nhưng cách này không được ghi rõ ràng. Tôi đoán chức năng sẽ thay đổi theo thời gian. Ví dụ, với GIMP:
winget install -e GIMP.GIMP
Không có wizard nào hiển thị, và không có tùy chọn tùy chỉnh. Đây là điểm cần chú ý, vì đôi khi người dùng muốn chọn cài đặt không mặc định. Điều tôi thích là file cài được tải từ trang chủ chính thức, và hash của file được xác minh. Điều này không có nghĩa là mọi thứ thuần khiết như nước dừa, nhưng đây là khởi đầu tốt để cung cấp mức độ tin cậy và tính toàn vẹn mà người dùng mong đợi từ trình quản lý gói (hoặc store).
Đi suôn sẻ?
Tôi thử thêm vài ứng dụng — và gặp một vài vấn đề nhỏ. Ví dụ, Steam. Bạn chỉ nhận được stub (file cài nhỏ), sau đó khi chạy lần đầu, nó tải thêm ~200MB dữ liệu Steam thực tế. Điều này có nghĩa là một số ứng dụng sẽ không bao giờ được tự động cấu hình hoàn toàn, và sẽ có phần can thiệp sau cài đặt.
Tôi thử VLC, và để máy chạy. Khi quay lại, cài đặt đã thất bại. Tôi nhận ra là do chưa phản hồi lời nhắc UAC — popup hỏi có muốn cài XYZ không. Tôi đang chạy dưới tài khoản user thường từ command line, nên có thể đó là lý do thấy prompt, và điều đó ổn. Nhưng cần lưu ý, đặc biệt nếu muốn thiết lập unattended — bao gồm cả tùy chọn không mặc định. Bạn cũng không thấy EULA, đây là yếu tố ngầm khác.
...
Successfully verified installer hash
Installing...
Installer failed with exit code: 1223
Nhưng sớm thôi, tôi đã có đầy đủ công cụ (không phải kiểu 007):
Kết luận
Thử nghiệm ngắn với winget khá令人满意. Công cụ đơn giản. Hiệu năng hợp lý — mạng là mạng, tùy băng thông, nhưng cài đặt thực tế có thể mất thời gian, và vì không có manh mối gì về tiến trình, quá trình có thể cảm thấy lâu hơn thực tế. Bỏ qua prompt UAC bị quên và sự mơ hồ về phiên bản ứng dụng cụ thể, winget hoạt động tốt. Không có bug lạ hay lỗi nào.
Tôi nghĩ cuối cùng đây sẽ là một công cụ hay. Không chắc nó sẽ được triển khai ra sao, nhưng cuối cùng, với toàn bộ thế giới phần mềm Win32 được bao phủ, winget có cơ hội thắng ở chỗ Microsoft Store thất bại. Đây có thể là thứ khiến người dùng Windows có động lực thực sự dùng trình quản lý gói — chính winget này — thậm chí tạo tài khoản (có thể backup, restore v.v.), giống như bất kỳ store front nào, चाहे hệ điều hành di động hay nền tảng game. Tóm lại, tôi thấy winget là một "ngọc nhỏ" vui vẻ. Còn nhiều việc trước khi phát hành đại trà, nhưng tôi nghĩ đây chính là trình quản lý gói mà người dùng desktop sẽ muốn. Tiếp tục.
Cheers.