Một trong các điểm mới của CentOS 8 là về trình quản lý gói quen thuộc YUM đã được thay thế bằng DNF. Trình quản lý DNF được team Fedora sử dụng từ bản Fedora 22 nhưng phải tới bây giờ thì team CentOS mới quyết định đưa vào sử dụng. Vậy có lý do nào mà cộng đồng chuyển từ YUM sang DNF hay không? Khi dùng DNF thì người dùng có phải nhớ thêm các cú pháp lệnh quen thuộc hay không? Tất cả sẽ được tóm tắt trong bài viết này.

Lý do mà DNF được thay thế cho YUM.

Một số lý do chính mà DNF được ca ngợi là thông minh, có tương lai hơn YUM là như sau:

  • YUM được phát triển bởi cộng đồng và trải qua thời gian lâu đời, do đó, trong các thời kỳ trước thì việc chuẩn hóa các tài liệu về API của YUM có chút khó khăn hoặc thậm chí là tệ. Do vậy nếu muốn phát triển tiếp thì rất vất vả cho DEV.
  • DNF thì hỗ trợ cả python2python3, trong khi đó YUM không giải quyết được việc này. Trong tương lai tới 2020 thì python2 cũng đã có kế hoạch ngững hỗ trợ. Do vậy việc chuyển sang DNF là một bước tính cho tương lai.
  • Đơn giản là YUM đã outdate (lỗi thời) nên việc DNF hoặc một dạng khác thay thế là điều đương nhiên :D.

Dùng DNF có khó khăn gì không?

Câu trả lời là KHÔNG, bởi vì cú pháp của DNF kế thừa lại hoặc nói cách khác là y hệt như khi dùng YUM. Do vậy người dùng không cần phải nhớ quá nhiều, chỉ cần thay đổi yum bằng dnf là được.

Lưu ý: trên CentOS 8 bạn vẫn có thể dùng yum để cài các gói như hiện tại. Lý do sẽ được trao đổi ở phần dưới.

Cú pháp cài đặt gói bằng DNF

dnf install ten_goi

hoặc

dnf install -y ten_goi

Ví dụ

Cài đặt các gói bằng DNF

dnf install -y vim

dnf install -y httpd

Bản chất của trình quản lý gói DNF

Về bản chất, trình quản lý gói DNF là được link tới YUM trong CentOS 8. Có nghĩa là bạn vẫn dùng được lệnh yum install ten_goi để cài đặt các gói cần thiết. Ta sẽ kiểm tra việc này.

Kiểm tra đường dẫn của chương trình yum bằng lệnh which

[root@centos8srv01 ~]# which yum
/usr/bin/yum

Kiểm tra các liên kết của /usr/bin/yum

[root@centos8srv01 ~]# ll /usr/bin/yum
lrwxrwxrwx. 1 root root 5 May 14 02:34 /usr/bin/yum -> dnf-3

Trên kết quả trên, ta thấy bản chất /usr/bin/yum là được link từ file dnf3

Tiếp tục kiểm tra xem đường dẫn của gói dnf bằng lệnh which

 [root@centos8srv01 ~]# which dnf
/usr/bin/dnf

Và kiểm tra các liên kết của /usr/bin/dnf, ta có kết quả dưới.

[root@centos8srv01 ~]# ll /usr/bin/dnf
lrwxrwxrwx. 1 root root 5 May 14 02:34 /usr/bin/dnf -> dnf-3

Kiểm tra tiếp đường dẫn của /usr/bin/dnf-3

[root@centos8srv01 ~]# ll /usr/bin/dnf-3
-rwxr-xr-x. 1 root root 1954 May 14 02:34 /usr/bin/dnf-3

Kết quả trên cho thấy dnf-3 không liên kết tới file nào cả. Đây là file gốc cho lệnh dnfyum.

Ta có thể kiểm tra các đường dẫn khác của các file liên quan tới gói yum

[root@centos8srv01 ~]# ll /etc/yum.conf
lrwxrwxrwx. 1 root root 12 May 14 02:34 /etc/yum.conf -> dnf/dnf.conf

Kết luận

Như vậy, trong tương lai bạn nên chuyển dần sang dùng dnf thay cho yum đi nhé, vì hiện nay yum đang được link tới dnf rồi.

Hết rồi, tới đây tôi đã cập nhật thêm cho các bạn các thông tin về một thứ mới mẻ trong CentOS 8 để anh em nắm được và biết cách dùng về sau. Nếu có thêm chiêu trò gì mời bạn cùng chia sẻ với cloud365.

Tham khảo

(1) https://www.linux.com/tutorials/what-you-need-know-about-fedoras-switch-yum-dnf/