Hướng Dẫn Sử Dụng Trình Quản Lý Gói Zypper cho Người Dùng openSUSE
Tìm hiểu cách sử dụng Zypper, trình quản lý gói của openSUSE, thông qua các ví dụ thực tiễn để dễ dàng cài đặt, cập nhật và quản lý phần mềm cũng như các kho lưu trữ.
Zypper là một trình quản lý gói dòng lệnh (tương tự như APT cho các hệ thống dựa trên DEB hoặc DNF cho các hệ thống dựa trên RPM) được sử dụng trong openSUSE, SUSE Linux Enterprise và các bản phân phối dẫn xuất của chúng. Nó cung cấp cho người dùng một cách nhanh chóng và linh hoạt để cài đặt, cập nhật, gỡ bỏ và quản lý các gói phần mềm và kho lưu trữ, mang lại cho bạn quyền kiểm soát hoàn toàn môi trường phần mềm của hệ thống.
Bên trong, Zypper hoạt động với các gói RPM — cùng định dạng gói được sử dụng trên nhiều bản phân phối Linux dựa trên RPM. Nó dựa vào libzypp, một thư viện backend chịu trách nhiệm giải quyết các phụ thuộc, quản lý kho lưu trữ và xử lý các giao dịch một cách an toàn và hiệu quả.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn, thông qua các lệnh Zypper thực tiễn và các ví dụ thực tế, cách cài đặt ứng dụng mới, giữ hệ thống của bạn luôn cập nhật, tìm kiếm gói phần mềm, quản lý kho lưu trữ và nhiều hơn nữa. Vào cuối hướng dẫn, tôi hy vọng bạn sẽ cảm thấy đủ tự tin để quản lý hệ thống openSUSE của mình một cách hiệu quả từ terminal.
Bạn cũng có thể sử dụng các ví dụ dưới đây như một tài liệu tham khảo nhanh nếu bạn đã quen thuộc với Zypper và chỉ muốn ôn lại lệnh hoặc tùy chọn cụ thể nào đó.
Bảng Tổng Hợp Lệnh Zypper: Phiên Bản Ngắn và Dài
Zypper cung cấp hai cách để thực hiện hầu hết các thao tác của nó — một dạng ngắn để nhanh chóng và tiện lợi, và một dạng dài để dễ đọc và rõ ràng. Các dạng ngắn được sử dụng rộng rãi trong thực tế vì chúng tiện lợi cho các lệnh nhanh, trong khi các dạng dài rõ ràng hơn và thường được sử dụng trong các tập lệnh hoặc tài liệu hướng dẫn.
Việc bạn chọn cái nào hoàn toàn tùy thuộc vào bạn — kết quả đều giống nhau. Để đơn giản và vì đây là cách phổ biến, tôi sẽ sử dụng dạng ngắn trong các ví dụ dưới đây. Nhưng trước khi chúng ta đi vào phần thực hành, đây là một bảng hiển thị cả dạng ngắn và dài của các lệnh Zypper được sử dụng phổ biến nhất.
| Ngắn | Rồng | Mô tả |
|---|---|---|
| trong | cài đặt | Cài đặt các gói |
| xóa | gỡ bỏ | Gỡ bỏ (gỡ cài đặt) các gói |
| lên | cập nhật | Cập nhật các gói đã cài đặt |
| sao chép | nâng cấp phân phối | Thực hiện nâng cấp phân phối (bộ giải thông minh) |
| lu | liệt kê các bản cập nhật | Liệt kê các bản cập nhật có sẵn |
| ve | xác minh | Xác minh và sửa các phụ thuộc của gói |
| se | tìm kiếm | Tìm kiếm gói |
| nếu | thông tin | Hiển thị thông tin gói chi tiết |
| ba | gói | Liệt kê tất cả các gói có sẵn hoặc đã cài đặt |
| lr | kho lưu trữ | Liệt kê tất cả kho lưu trữ |
| ar | thêm kho lưu trữ | Thêm kho lưu trữ |
| rr | gỡ kho lưu trữ | Xóa một kho lưu trữ |
| tham chiếu | làm mới | Làm mới siêu dữ liệu kho lưu trữ |
| sạch | sạch | Xóa bộ nhớ đệm và siêu dữ liệu |
Làm mới gói cơ bản
Chúng ta sẽ bắt đầu với một trong những lệnh Zypper mà bạn sẽ sử dụng thường xuyên nhất: zypper ref (hoặc zypper refresh), lệnh này làm mới cơ sở dữ liệu gói. Khi bạn chạy lệnh này, Zypper sẽ kết nối với từng máy chủ kho lưu trữ và tải xuống metadata mới nhất — danh sách gói, phiên bản, các phụ thuộc và thông tin cập nhật.
sudo zypper refHãy nhớ rằng làm mới không cài đặt bất cứ thứ gì. Nó chỉ đảm bảo hệ thống của bạn có thông tin gói mới nhất trước khi kiểm tra hoặc áp dụng các bản cập nhật.
Trong hầu hết các quy trình làm việc, đây là bước đầu tiên trước khi chạy các lệnh như zypper lu, zypper up hoặc zypper dup, vì các thao tác đó phụ thuộc vào metadata được cập nhật.
Kiểm tra các gói cập nhật có sẵn
zypper lu (hoặc zypper list-updates) tự động làm mới dữ liệu kho lưu trữ mỗi khi nó lỗi thời và liệt kê tất cả các gói trên hệ thống của bạn có phiên bản mới hơn. Nó không cài đặt gì cả — mục đích của nó chỉ mang tính thông tin.
sudo zypper luMỗi dòng được đánh dấu bằng v cho biết một gói có phiên bản mới hơn, được hiển thị cùng với kho lưu trữ của nó, phiên bản hiện tại, phiên bản có sẵn và kiến trúc.
Như bạn có lẽ đã đoán, bạn không cần chạy zypper ref trước zypper lu, vì zypper lu thực tế sẽ làm mới dữ liệu kho lưu trữ mỗi khi nó lỗi thời.
Áp dụng Cập nhật Gói
zypper up (hoặc zypper update) là một trong những lệnh Zypper được sử dụng phổ biến nhất, dùng để cài đặt tất cả các bản cập nhật gói thông thường có sẵn trên hệ thống của bạn. Lệnh này dựa vào dữ liệu hiện tại của kho lưu trữ, vì vậy nếu cần, Zypper sẽ tự động làm mới các kho trước khi tiến hành.
sudo zypper upNâng cấp Hệ thống Toàn diện
zypper dup (hoặc zypper dist-upgrade) có thể được sử dụng thay cho zypper up vì nó cũng cài đặt tất cả các bản cập nhật có sẵn. Tuy nhiên, nó còn thực hiện thêm khi cần: có thể chuyển nhà cung cấp gói, cài đặt các gói được đổi tên và xóa các gói cũ hoặc lỗi thời để giữ hệ thống nhất quán với các kho lưu trữ đã kích hoạt.
sudo zypper dupHầu hết các bản cập nhật trông giống nhau dưới cả hai lệnh, nhưng khi một gói yêu cầu loại bỏ các thành phần cũ hơn hoặc chuyển sang kho lưu trữ khác, chỉ zypper dup mới có thể thực hiện những thay đổi đó. Đây là lý do tại sao nó được sử dụng cho việc nâng cấp phân phối và tại sao đôi khi nó có thể gỡ bỏ các gói không còn được cung cấp bởi bất kỳ kho lưu trữ nào.
Tìm gói
Sử dụng zypper se (hoặc zypper search) để tìm các gói theo tên hoặc mô tả. Lệnh này sẽ tìm kiếm tất cả các kho được kích hoạt và hiển thị các kết quả phù hợp, bao gồm cả các gói đã cài đặt và có sẵn. Ví dụ:
zypper se firefoxCột S hiển thị trạng thái gói (ví dụ, i cho đã cài đặt), tiếp theo là cột Name với tên gói chính xác, cột Summary với mô tả ngắn, và cột Type chỉ ra liệu đó là gói thông thường, một mẫu, hay loại gói khác.
Nếu bạn chỉ muốn tìm kiếm qua các gói đã cài đặt, hãy thêm tùy chọn -i:
zypper se -i firefox
Điều này lọc kết quả sao cho chỉ hiển thị các gói đã cài đặt có tên phù hợp. Nếu không trả về gì, gói đó chưa được cài đặt.
Cài đặt gói
Sử dụng zypper in (hoặc zypper install) để thêm các gói mới vào hệ thống của bạn từ các kho lưu trữ đã kích hoạt. Lệnh này tự động giải quyết các phụ thuộc và cài đặt tất cả những gì cần thiết để gói đã chọn có thể chạy. Ví dụ:
sudo zypper in chromiumĐể cài đặt nhiều gói cùng lúc, liệt kê tên các gói nối tiếp nhau, cách nhau bằng dấu cách.
sudo zypper in chromium htop vlcGỡ bỏ gói
Sử dụng zypper rm (hoặc zypper remove) để gỡ cài đặt các gói khỏi hệ thống của bạn. Lệnh này cũng sẽ xóa các phụ thuộc không còn cần thiết, trừ khi các gói khác đã cài đặt cần đến chúng. Ví dụ:
sudo zypper rm chromiumTương tự như lệnh cài đặt, để gỡ cài đặt nhiều gói trên hệ thống openSUSE của bạn, hãy nhập tên của chúng lần lượt, cách nhau bằng một dấu cách.
sudo zypper rm chromium htop vlcHiển thị thông tin gói
Sử dụng zypper if (hoặc zypper info) để xem thông tin chi tiết về một gói. Điều này bao gồm phiên bản, nhà cung cấp, kho lưu trữ, trạng thái cài đặt, tóm tắt, mô tả và các phụ thuộc của nó. Ví dụ:
zypper info chromiumĐây là cách nhanh nhất để kiểm tra trên openSUSE phiên bản của gói nào đang được cài đặt và kho nào cung cấp nó.
Xác minh các gói đã cài đặt
Sử dụng zypper ve (hoặc zypper verify) để kiểm tra xem tất cả các gói đã cài đặt có thỏa mãn các phụ thuộc cần thiết hay không. Nếu có thứ gì đó bị thiếu hoặc hỏng — thường xảy ra sau khi xóa tệp thủ công, cập nhật bị gián đoạn, hoặc trộn lẫn các kho lưu trữ — lệnh này sẽ xác định các vấn đề và đề xuất cách sửa chữa.
sudo zypper veZypper sẽ quét hệ thống, báo cáo bất kỳ vấn đề phụ thuộc nào, và nếu cần, nó sẽ gợi ý cài đặt hoặc gỡ bỏ các gói để khôi phục sự nhất quán.
Xóa dữ liệu lưu trong bộ nhớ đệm
Sử dụng zypper clean để xóa dữ liệu bộ nhớ đệm của kho, chẳng hạn như các tệp gói đã tải xuống và siêu dữ liệu. Điều này giúp giải phóng dung lượng đĩa và buộc zypper tải lại siêu dữ liệu mới vào lần tiếp theo khi truy cập vào kho.
sudo zypper cleanQuản lý kho phần mềm
Zypper cung cấp quyền kiểm soát đầy đủ đối với các kho phần mềm mà hệ thống openSUSE của bạn sử dụng để cài đặt và cập nhật các gói. Với vài lệnh đơn giản, bạn có thể liệt kê, thêm, xóa, kích hoạt, vô hiệu hóa hoặc điều chỉnh các cài đặt kho trực tiếp từ dòng lệnh, cho phép bạn kiểm soát chính xác cách hệ thống của mình lấy phần mềm.
Danh sách kho lưu trữ
Sử dụng zypper lr (hoặc zypper repos) để liệt kê tất cả các kho được cấu hình trên hệ thống của bạn. Kết quả sẽ hiển thị bí danh, tên, trạng thái bật/tắt, cài đặt tự động làm mới, độ ưu tiên và URL của từng kho.
zypper lrThêm Kho Lưu Trữ
Nếu bạn muốn thêm một kho lưu trữ vào hệ thống openSUSE của mình, hãy sử dụng zypper ar (hoặc zypper addrepo) để thêm một kho phần mềm mới vào hệ thống. Bạn có thể chỉ định URL của kho lưu trữ và đặt một bí danh cho nó, và bí danh này sẽ xuất hiện sau đó trong zypper repos. Ví dụ:
sudo zypper addrepo -f https://download.opensuse.org/repositories/network/openSUSE_Leap_16.0/ networkSau khi thêm một kho lưu trữ, zypper sẽ bao gồm nó khi cài đặt hoặc cập nhật các gói. Bạn cũng có thể bật tự động làm mới hoặc gán mức ưu tiên bằng cách sử dụng các tùy chọn bổ sung khi cần.
Trong ví dụ trên, tùy chọn -f bật tính năng tự động làm mới. Tuy nhiên, nếu kho lưu trữ đã được thêm, bạn có thể bật tính năng tự động làm mới bằng:
sudo zypper modifyrepo -f netwrokỞ đây, 'network' là bí danh của kho lưu trữ.
Xóa Kho Lưu Trữ
Sử dụng zypper rr (hoặc zypper .removerepo) để xóa một kho lưu trữ khỏi hệ thống của bạn. Bạn có thể xóa nó bằng cách chỉ định bí danh hoặc ID số của nó, như được hiển thị trong zypper lr
sudo zypper rr networkBật/Tắt một kho lưu trữ
Zypper không chỉ cho phép bạn thêm hoặc xóa các kho lưu trữ, mà còn cho phép bật hoặc tắt những kho bạn đã có. Sử dụng zypper mr -d (hoặc zypper modifyrepo -d) để tắt một kho lưu trữ. Bạn có thể tham chiếu đến nó bằng bí danh hoặc bằng ID số được hiển thị trong zypper lr.
sudo zypper modifyrepo -d networkTương tự, để bật nó, sử dụng zypper md -e (hoặc zypper modifyrepo -e):
sudo zypper modifyrepo -e networkMẫu
Cuối cùng, tôi sẽ chỉ cho bạn cách sử dụng một khái niệm tiện lợi mà các bản phân phối khác thường gọi là gói tổng hợp, trong khi openSUSE gọi chúng là mẫu. Vậy chính xác thì chúng là gì?
Tóm lại, các mẫu là các nhóm gói được định nghĩa trước mà openSUSE sử dụng để cài đặt các môi trường hoặc vai trò chức năng đầy đủ. Thay vì cài từng gói một, một mẫu gom tất cả những gì cần thiết cho một nhiệm vụ cụ thể—chẳng hạn như môi trường máy tính để bàn, công cụ phát triển, hoặc dịch vụ máy chủ.
Lợi ích chính? Việc cài đặt một mẫu đảm bảo bạn có tất cả các thành phần cần thiết, các tiện ích bổ sung được đề xuất và các thư viện hỗ trợ trong một bước, giúp dễ dàng thêm các tính năng chính của hệ thống mà không phải theo dõi từng gói riêng lẻ.
Danh sách mẫu
Sử dụng zypper pt (hoặc zypper patterns) để liệt kê tất cả các patterns có sẵn trên hệ thống. Kết quả của lệnh hiển thị tên của mỗi pattern, trạng thái cài đặt và mô tả ngắn gọn về những gì nó cung cấp.
zypper ptCài đặt Mẫu
Giả sử bạn muốn cài đặt môi trường desktop Cinnamon chỉ với một lệnh duy nhất. Tên của pattern, như bạn có thể đoán, là cinnamon. Sử dụng zypper in -t pattern, sau đó là tên của pattern, để cài đặt tất cả các gói thuộc nhóm đó.
sudo zypper in -t pattern cinnamonNhư bạn có thể thấy, điều này sẽ cài đặt toàn bộ môi trường desktop Cinnamon (mẫu), bao gồm các thành phần cần thiết và được khuyến nghị.
Tuy nhiên, có một điểm đặc biệt mà bạn nên biết. Việc gỡ bỏ một mẫu không, như bạn có thể nghĩ, sẽ gỡ cài đặt các gói mà nó đã mang vào ban đầu. Thay vào đó, các gói riêng lẻ vẫn được giữ nguyên trừ khi bạn gỡ bỏ chúng thủ công hoặc chúng trở thành mồ côi do các thay đổi phụ thuộc khác. Vì vậy, nếu bạn thực hiện:
sudo zypper rm -t pattern cinnamonChỉ có bản mẫu sẽ bị xóa, chứ không phải các gói mà nó bao gồm. Nói cách khác, xóa bản mẫu chỉ xóa metadata đó, chứ không xóa hàng trăm gói Cinnamon thực sự đã được cài đặt trước đó. Để xóa chúng, bạn sẽ phải làm thủ công từng gói một.
Kết luận
Trong hướng dẫn này, tôi đã chỉ cho bạn các lệnh Zypper cơ bản để quản lý phần mềm trên openSUSE một cách hiệu quả. Bây giờ bạn đã biết cách cài đặt, cập nhật, tìm kiếm và gỡ bỏ gói, làm việc với các mẫu, và quản lý kho lưu trữ từ dòng lệnh.
Đúng vậy, YaST là một công cụ GUI tuyệt vời có thể xử lý tất cả những việc này, nhưng việc biết sử dụng Zypper sẽ giúp bạn hiểu sâu hơn để không chỉ dựa vào các công cụ đồ họa. Và mặc dù YaST bao quát mọi thứ trong môi trường máy tính để bàn, thành thạo Zypper trên dòng lệnh là điều cần thiết để quản lý phần mềm trên máy chủ.
Tất nhiên, trình quản lý gói Zypper cung cấp nhiều tùy chọn hơn nữa. Tôi khuyên bạn nên làm quen với chúng trong tài liệu chính thức của openSUSE hoặc trên trang web của SUSE.
Cảm ơn bạn đã dành thời gian. Như mọi khi, chúng tôi rất hoan nghênh ý kiến của bạn.


















