Tất cả các bản phân phối Linux hiện đại đều tổ chức phần mềm dưới dạng các gói, trong đó chứa các tệp nhị phân ứng dụng, các file, metadata và thông tin về các phụ thuộc của gói, cũng như các xung đột có thể xảy ra với các gói khác, v.v. Trình quản lý gói cốt lõi của RHEL được gọi là rpm và chính nó cũng là công cụ được sử dụng bởi dnf – trình quản lý gói cấp cao hơn, có khả năng quản lý các phụ thuộc. Một công nghệ tương đối mới mang tên flatpak cho phép chúng ta cài đặt các ứng dụng được sandbox cùng với runtime của chúng.
Bạn đang muốn cài phần mềm trên Linux RHEL 8 hoặc CentOS 8? Một VPS giá rẻ sẽ là lựa chọn tối ưu để thực hành và triển khai hệ thống. Khám phá ngay các gói VPS giá rẻ tại DataOnline để bắt đầu với chi phí tiết kiệm nhất!
Trong bài hướng dẫn này, bạn sẽ học được:
-
Ba cách chính để cài đặt gói bằng rpm
-
Cách cài đặt gói bằng dnf
-
Cách cài đặt ứng dụng qua giao diện đồ họa từ tiện ích gnome-software
-
Cách cài đặt ứng dụng sandbox bằng flatpak
Danh mục | Yêu cầu, quy ước hoặc phiên bản phần mềm được sử dụng |
---|---|
Hệ thống | RHEL 8 / CentOS 8 |
Phần mềm | Các tiện ích được sử dụng trong bài hướng dẫn này được cài đặt sẵn theo mặc định, không cần cài thêm phần mềm nào. |
Khác | Quyền để thực thi lệnh với đặc quyền root. |
Quy ước#
– yêu cầu các lệnh Linux được thực thi với đặc quyền root, hoặc thực hiện trực tiếp dưới tài khoản root hoặc thông qua lệnh sudo.$
– yêu cầu các lệnh Linux được thực thi dưới tài khoản người dùng thông thường không có đặc quyền.
Gói phần mềm là gì?
Trong RHEL 8 / CentOS 8, cũng như trong tất cả các bản phân phối Linux hiện đại, phần mềm được tổ chức theo dạng các kho chứa gói. Vậy gói phần mềm là gì?
Một gói phần mềm cơ bản là một tệp lưu trữ nén chứa các file liên quan đến một phần mềm cụ thể, như các tệp nhị phân đã được biên dịch và thư viện, cộng với metadata và các hướng dẫn về vị trí cũng như cách cài đặt các file đó trên hệ thống, các phụ thuộc bên ngoài mà phần mềm cần để chạy đúng cách, v.v. RHEL và CentOS sử dụng định dạng gói rpm – được phát minh bởi Red Hat: trong bài hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt và quản lý các gói rpm trên Red Hat Enterprise Linux 8.
rpm: Trình quản lý gói Red Hat và yum/dnf
Để dễ dàng quản lý các gói rpm, trình quản lý gói rpm đã được tạo ra. Mặc dù rất mạnh mẽ, nó chủ yếu tập trung vào các gói riêng lẻ nên không có khả năng giải quyết các phụ thuộc. Để quản lý mối quan hệ giữa các gói và tránh được “địa ngục phụ thuộc”, trước đây đã có trình quản lý gói yum (Yellow Updater Modified) và sau đó là bản cải tiến của nó – dnf (Dandified YUM). Dnf được giới thiệu lần đầu tiên trong Fedora 18 và đã thay thế yum trong phiên bản mới nhất của Red Hat Enterprise Linux.
Cài đặt gói bằng rpm
Một trong những thao tác cơ bản nhất với rpm là cài đặt một gói phần mềm. Như đã đề cập, phương pháp này chỉ hoạt động nếu gói đó không có phụ thuộc bên ngoài, vì rpm không thể quản lý được chúng. Có cơ bản ba cách để cài đặt một gói bằng rpm: tương ứng với các tùy chọn -i
, -U
và -F
.
Để cài đặt một gói mới, ta có thể chạy rpm với tùy chọn -i
(viết tắt của --install
). Cú pháp rất đơn giản:
Khi chạy lệnh trên, gói được chỉ định sẽ được cài đặt nếu như chưa có trên hệ thống. Nếu ta cố cài đặt một gói đã có sẵn (ví dụ như gedit), hệ thống sẽ báo lỗi:
Lưu ý: Ở đây, “gói” được hiểu là phiên bản chính xác giống nhau. Phương pháp cài đặt này được khuyến nghị khi cài đặt một kernel mới: trong những trường hợp như vậy, kernel mới sẽ được cài đặt song song với các phiên bản cũ, để nếu có sự cố xảy ra, ta vẫn có thể sử dụng phiên bản cũ như một phương án dự phòng.
Mọi thứ sẽ khác khi ta sử dụng tùy chọn -U
(viết tắt của --upgrade
). Trong trường hợp này, nếu gói chưa có trên hệ thống, nó sẽ được cài đặt; nếu đã có phiên bản cũ, gói sẽ được nâng cấp. Điều này có nghĩa là sau khi phiên bản mới được cài đặt, các phiên bản cũ sẽ bị xóa bỏ. Như đã nói ở trên, nâng cấp một phần mềm quan trọng như kernel ngay tại chỗ là rất không được khuyến khích: tốt hơn hết là nên chắc chắn rằng kernel mới hoạt động ổn định trước khi xóa phiên bản cũ.
Tùy chọn -F
(hoặc --freshen
) thực hiện một thao tác khác. Khi sử dụng, chỉ những gói đã có sẵn trên hệ thống mới được cập nhật. Nếu phiên bản cũ của gói mà ta muốn cài đặt không có trên hệ thống, nó sẽ không được cài đặt.
Cài đặt gói từ vị trí từ xa
Với rpm cũng có thể cài đặt một gói không nằm trên hệ thống tập tin cục bộ. Ví dụ, nếu ta muốn cài đặt một gói có sẵn qua giao thức FTP, lệnh thực hiện sẽ là:
Cũng có thể cung cấp tên người dùng và mật khẩu nếu cần xác thực, bằng cách chèn thông tin vào địa chỉ:
Cài đặt gói bằng dnf
Mặc dù dnf hoạt động dựa trên rpm, nó cung cấp nhiều tính năng hữu ích như quản lý phụ thuộc phần mềm và khả năng cài đặt phần mềm từ các kho phân phối. Metadata được lưu trong gói rpm, trong đó có chỉ định những gói phụ thuộc cần thiết để phần mềm hoạt động, cũng như những gói có thể xung đột với nó. Dnf sẽ tự động thực hiện tất cả các thao tác cần thiết sau khi nhận được xác nhận từ người dùng. Ví dụ, nếu ta muốn cài đặt gói vim bằng dnf, ta chạy:
Sau khi chạy lệnh trên, các thao tác sẽ được thực hiện và danh sách các phụ thuộc cần cài đặt sẽ được hiển thị trên màn hình:
Nếu bạn chạy dnf trong một script mà cần chạy tự động không cần tương tác, tùy chọn -y
(viết tắt của --assumeyes
) có thể được sử dụng, để mọi câu hỏi đều nhận câu trả lời “yes” một cách tự động mà không cần sự can thiệp của người dùng.
Tương tự như rpm, dnf cũng cho phép ta cài đặt một gói nằm trên URL từ xa; tất cả những gì cần làm là chỉ định URL đó:
Cài đặt gói bằng giao diện đồ họa
Khi sử dụng môi trường máy tính để bàn GNOME, cũng có thể cài đặt gói phần mềm qua giao diện đồ họa bằng cách sử dụng ứng dụng gnome-software. Nếu gói phần mềm có trong các kho phân phối, ta chỉ cần tìm kiếm ứng dụng muốn cài đặt qua ô tìm kiếm
Sau đó, ta nhấp vào nút “install” để tiến hành cài đặt ứng dụng
Khi cài đặt gói theo cách này, một quy trình khác được sử dụng. Ứng dụng gnome-software là giao diện người dùng cho packagekit, vốn là một giao diện cấp cao hoạt động như một lớp trừu tượng phía trên trình quản lý gói gốc của bản phân phối: mục tiêu chính là thống nhất quy trình cài đặt trên các bản phân phối khác nhau. Cũng cần lưu ý rằng các gói được cài đặt theo cách này sẽ không xuất hiện trong lịch sử của dnf, vì packagekit không sử dụng dnf phía sau.
Cài đặt phần mềm bằng flatpak
Trên RHEL 8 / CentOS 8, một cách khác để cài đặt phần mềm, cả qua ứng dụng gnome-software hoặc qua dòng lệnh, là sử dụng flatpak. Flatpak cung cấp môi trường sandbox, trong đó phần mềm được cài đặt cùng với tất cả các phụ thuộc của nó. Điều này cho phép chạy một phiên bản cụ thể của chương trình trên tất cả các bản phân phối hỗ trợ công nghệ này, bất kể các thư viện gốc của hệ thống. Kho chính của flatpak là flathub. Cài đặt một flatpak từ trang flathub qua gnome-software rất dễ dàng: tất cả những gì ta cần làm là tìm kiếm ứng dụng cần cài đặt và nhấp vào nút cài đặt.
Nếu gnome-software không tự động mở, chỉ cần mở tệp đã tải về bằng ứng dụng này. Sau khi nhấp vào nút cài đặt và cung cấp mật khẩu quản trị nếu cần, gói sẽ được cài đặt.
Khi cài đặt một flatpak theo cách này, kho flathub sẽ được tự động thêm làm nguồn của flatpak, do đó bạn có thể tìm kiếm thêm các ứng dụng khác từ đó trực tiếp thông qua giao diện gnome-software.
Cũng có thể thực hiện các thao tác tương tự qua dòng lệnh bằng cách sử dụng tiện ích flatpak. Khi sử dụng flatpak, bạn có thể quyết định cài đặt ở phạm vi toàn hệ thống hay chỉ cho một người dùng cụ thể. Trong trường hợp chỉ cho một người dùng, không cần quyền quản trị và tùy chọn --user
phải được cung cấp cho lệnh. Để thêm kho flathub ở phạm vi toàn hệ thống, ta chỉ cần chạy:
Bây giờ ta có thể cài đặt gói của mình. Ta cần cung cấp đường dẫn đầy đủ của gói và tên của kho từ xa mà ta muốn cài đặt. Ví dụ, để cài đặt neovim, ta chạy:
Nếu trả lời đồng ý, gói và runtime của nó sẽ được tải xuống và cài đặt vào hệ thống.
Kết luận
Trong bài hướng dẫn này, chúng ta đã tìm hiểu các phương pháp cài đặt phần mềm trên hệ thống Linux RHEL 8 / CentOS 8. Phần mềm trên các hệ thống này được đóng gói thành các gói phần mềm, và ở mức thấp nhất, chúng được quản lý bởi trình quản lý gói RPM, mặc dù không hỗ trợ tự động giải quyết các phụ thuộc. Để giải quyết vấn đề này và cung cấp thêm nhiều tính năng khác, chương trình DNF (dựa trên RPM) được sử dụng. Cuối cùng, chúng ta cũng đã khám phá cách cài đặt phần mềm thông qua công nghệ sandbox tương đối mới, Flatpak.
Để cài đặt và quản lý phần mềm trên Linux hiệu quả, việc thuê VPS là giải pháp lý tưởng. Với cấu hình mạnh mẽ và linh hoạt, hãy xem ngay các dịch vụ thuê VPS tại DataOnline để đảm bảo hệ thống của bạn hoạt động mượt mà!