Giới thiệu
Trong lab này, chúng ta sẽ khám phá lệnh `emerge`, công cụ quản lý gói được sử dụng trong Gentoo Linux và các bản phân phối dẫn xuất của nó. Chúng ta sẽ học cách cài đặt các gói, cập nhật hệ thống và nâng cấp các gói bằng lệnh `emerge`. Đầu tiên, chúng ta sẽ giới thiệu lệnh `emerge` và kiểm tra phiên bản của nó. Sau đó, chúng ta sẽ khám phá các tùy chọn và lệnh có sẵn cho công cụ `emerge`. Cuối cùng, chúng ta sẽ cập nhật cơ sở dữ liệu gói, kiểm tra các bản cập nhật gói và nâng cấp hệ thống bằng lệnh `emerge`.
Giới thiệu về lệnh `emerge`
Trong bước này, chúng ta sẽ khám phá lệnh `emerge`, là công cụ quản lý gói được sử dụng trong Gentoo Linux và các bản phân phối dẫn xuất của nó. Lệnh `emerge` là một công cụ mạnh mẽ cho phép bạn cài đặt, cập nhật và quản lý các gói trên hệ thống của mình.
Đầu tiên, hãy kiểm tra phiên bản của lệnh `emerge` được cài đặt trên hệ thống của chúng ta:
sudo emerge --version
Ví dụ đầu ra:
Portage 3.0.28 (python 3.10.6-final-0, default/linux/amd64/17.1, gcc-12.2.0, glibc-2.36-r3, 5.15.0-57-generic x86_64)
Như bạn có thể thấy, lệnh `emerge` là một phần của hệ thống quản lý gói Portage được sử dụng trong Gentoo Linux. Portage là một hệ thống quản lý gói phức tạp cung cấp các tính năng nâng cao như giải quyết phụ thuộc, masking gói và nhiều hơn nữa.
Bây giờ, hãy khám phá một số cách sử dụng cơ bản của lệnh `emerge`:
sudo emerge --help
Điều này sẽ hiển thị các tùy chọn và lệnh có sẵn cho công cụ `emerge`.
Cập nhật và Nâng cấp Hệ thống bằng `emerge`
Trong bước này, chúng ta sẽ học cách sử dụng lệnh `emerge` để cập nhật và nâng cấp các gói trên hệ thống của chúng ta.
Đầu tiên, hãy cập nhật cơ sở dữ liệu gói để đảm bảo chúng ta có thông tin mới nhất về các gói có sẵn:
sudo emerge --sync
Lệnh này sẽ đồng bộ hóa cơ sở dữ liệu gói cục bộ với Portage tree từ xa, đảm bảo chúng ta có các phiên bản gói mới nhất.
Tiếp theo, chúng ta có thể kiểm tra xem có bất kỳ bản cập nhật gói nào có sẵn trên hệ thống hay không:
sudo emerge --update --deep --newuse @world
Tùy chọn `--update` kiểm tra các bản cập nhật gói, `--deep` đảm bảo các phụ thuộc cũng được cập nhật và `--newuse` sẽ cập nhật các gói nếu có các USE flag mới.
Đối tượng `@world` đại diện cho tất cả các gói được cài đặt trên hệ thống.
Ví dụ đầu ra:
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] sys-libs/glibc-2.36-r3 USE="acl caps crypt headers-only multilib nscd rpc selinux -audit -bound-nsl -compile-locales -doc -gd -headers -internal-dns -multiarch -nscd-compat -profile -suid -systemtap" ABI_X86="(64)"
[ebuild R ] sys-apps/util-linux-2.38.1 USE="cramfs fdformat ncurses nls pam readline static-libs unicode -build -doc -kill -logger -magic -python -setpriv -slang -su -systemd"
[ebuild R ] sys-devel/gcc-12.2.0 USE="cxx fortran graphite lto (multilib) nls nptl openmp (pie) (ssp) (vanilla) -ada -awt -debug -doc -go -jit -libssp -mpx -offense -pgo -regression-test -sanitize -selinux -systemtap"
[ebuild R ] sys-libs/zlib-1.2.13 USE="minizip static-libs"
Total: 4 packages (4 reinstalls), Size of downloads: 47,424 KiB
Would you like to merge these packages? [Yes/No]
Sau khi xem xét danh sách các gói cần cập nhật, chúng ta có thể xác nhận quá trình cập nhật bằng cách nhập "Yes".
Lệnh `emerge` sau đó sẽ tải xuống, biên dịch và cài đặt các gói đã cập nhật trên hệ thống của chúng ta.
Tóm tắt
Trong lab này, chúng ta đã khám phá lệnh `emerge`, là công cụ quản lý gói được sử dụng trong Gentoo Linux và các bản phân phối dẫn xuất của nó. Chúng ta đã học cách kiểm tra phiên bản của lệnh `emerge` và cách sử dụng nó để cài đặt, cập nhật và nâng cấp các gói trên hệ thống. Chúng ta cũng đã học cách cập nhật cơ sở dữ liệu gói và kiểm tra các bản cập nhật gói có sẵn, cũng như cách thực hiện nâng cấp hệ thống hoàn chỉnh bằng lệnh `emerge`.