Khái niệm về Yum
So với lệnh rpm, lệnh rpm yêu cầu người dùng phải tự tìm kiếm và cài đặt các gói phụ thuộc một cách thủ công. Khi gỡ bỏ một gói phần mềm, có thể vô tình xóa đi một phần phụ thuộc, làm cho các ứng dụng khác không thể hoạt động.
Yum (viết tắt của Yellow dog updater, Modified) ban đầu được phát triển bởi TerraSoft. Mục tiêu của nó là tự động hóa quá trình nâng cấp, cài đặt và gỡ bỏ các gói RPM, thu thập thông tin về các gói RPM, kiểm tra các phụ thuộc và cài đặt tất cả các gói phụ thuộc trong một lần, không cần các bước cài đặt lặp đi lặp lại một cách phức tạp.
Điểm cốt lõi của Yum là cần có một kho phần mềm đáng tin cậy, có thể là một trang web HTTP, một trang FTP hoặc một kho cục bộ, nhưng phải bao gồm header của RPM. Header chứa các thông tin về gói RPM, bao gồm mô tả, chức năng, các tệp được cung cấp cũng như các phụ thuộc, v.v. Chính bằng cách thu thập và phân tích các header này, Yum mới có thể tự động hoàn thành các tác vụ còn lại.
Đặc điểm của Yum
- Cho phép cấu hình nhiều kho phần mềm cùng lúc.
- Tệp cấu hình đơn giản tại
/etc/yum.conf. - Tự động giải quyết các vấn đề về phụ thuộc khi cài đặt hoặc gỡ bỏ gói RPM.
- Sử dụng Yum rất tiện lợi.
- Giữ sự nhất quán với cơ sở dữ liệu RPM.
Tệp repo: Cấu hình kho phần mềm
Mặc định, các tệp cấu hình này được lưu trữ trong thư mục /etc/yum.repos.d.
Ví dụ: Tên kho phần mềm nằm trong cặp dấu ngoặc vuông [] sẽ được Yum nhận diện. name là tên của kho phần mềm. $releasever định nghĩa phiên bản phát hành. baseurl chỉ định nguồn của gói phần mềm, hỗ trợ các giao thức như http://, ftp:// và file:/// (kho cục bộ). enabled xác định liệu nguồn trong kho có được bật hay không (0 là tắt, 1 là bật). gpgcheck xác định liệu các gói RPM được tải xuống từ kho này có undergo GPG verification hay không để đảm bảo nguồn là hợp lệ và an toàn. gpgkey định nghĩa khóa GPG được sử dụng để xác thực.
[root@server ~]# cat /etc/yum.repos.d/my-local-repo.repo
# my-local-repo.repo
# Cấu hình cho kho phần mềm cục bộ
[local-repo]
name=Kho Phần Mềm Cục Bộ
baseurl=file:///var/repo/packages
gpgcheck=0
enabled=1
Tạo kho phần mềm cục bộ
Để tạo một kho phần mềm cục bộ, bạn cần cấu hình tệp kho phần mềm và sao chép các gói phần mềm từ đĩa cài đặt hệ thống Linux vào hệ thống.
- Cài đặt các gói
deltarpm,python-deltarpmvàcreaterepo. - Sao chép các gói phần mềm vào một thư mục trên hệ thống.
- Tạo tệp cấu hình kho phần mềm.
Ví dụ: Tạo tệp cấu hình /etc/yum.repos.d/local.repo với nội dung như sau:
[root@server ~]# mkdir /var/repo
[root@server ~]# vi /var/repo/local.repo
[root@server ~]# cat /var/repo/local.repo
[local-repo]
name=Kho Phần Mềm Cục Bộ
baseurl=file:///var/repo
enabled=1
gpgcheck=0
Sau đó, sử dụng lệnh createrepo để tạo chỉ mục cho kho phần mềm:
[root@server ~]# createrepo /var/repo
Nếu hệ thống báo lỗi lệnh createrepo không tồn tại, hãy cài đặt nó bằng cách:
[root@server ~]# yum -y install createrepo
Các lệnh Yum
Lệnh yum có thể được sử dụng để cài đặt, cập nhật, gỡ bỏ và hiển thị thông tin về các gói phần mềm. Yum có thể tự động cập nhật hệ thống dựa trên phân tích siêu dữ liệu của kho phần mềm và giải quyết các mối quan hệ phụ thuộc.
Cú pháp lệnh: yum [tùy chọn] [lệnh]
| Tùy chọn | Ý nghĩa |
|---|---|
| -y | Trả lời 'yes' cho tất cả các câu hỏi trong quá trình cài đặt |
| -q | Chế độ hoạt động im lặng |
| -v | Hiển thị thông tin chi tiết |
| -c<đường dẫn> | Chỉ định đường dẫn đến tệp cấu hình |
| -x<tên_gói> | td> Loại trừ gói phần mềm được chỉ định|
| --nogpgcheck | Vô hiệu hóa kiểm tra chữ ký GPG |
| --installroot=đường_dẫn | Thiết lập đường dẫn thư mục cài đặt gốc |
| Lệnh | Mô tả |
|---|---|
| install <tên_gói> | Cài đặt gói phần mềm được chỉ định |
| reinstall <tên_gói> | Cài đặt lại gói phần mềm |
| search <tên_gói> | Tìm kiếm gói phần mềm bằng chuỗi ký tự đã cho |
| list | Liệt kê tất cả các gói phần mềm do Yum quản lý |
| list <tên_gói> | Liệt kê tình trạng cài đặt của gói phần mềm được chỉ định |
| list installed | Liệt kê tất cả các gói phần mềm đã cài đặt |
| list extras | Liệt kê các gói phần mềm đã cài đặt nhưng không có trong kho Yum |
| list updates | Liệt kê tất cả các gói phần mềm có thể cập nhật |
| info <tên_gói> | Hiển thị thông tin chi tiết về gói phần mềm được chỉ định |
| provides <>tên_gói> | Tìm gói phần mềm cung cấp nội dung được chỉ định |
| deplist <tên_gói> | Xem các phụ thuộc của gói phần mềm được chỉ định |
| update | Cập nhật toàn bộ hệ thống |
| update <tên_gói> | Cập nhật gói phần mềm được chỉ định |
| check-update | Kiểm tra các gói phần mềm có thể cập nhật |
| remove <tên_gói> | Gỡ bỏ gói phần mềm được chỉ định |
| clean packages | Xóa các gói phần mềm trong thư mục cache |
| clean all | Xóa tất cả các gói phần mềm và header cũ trong thư mục cache |
| makecache | Tạo bộ đệm dữ liệu |
| repolist | Hiển thị danh sách các kho phần mềm đã cấu hình |
Lệnh Tar
Lệnh tar cho phép người dùng lưu trữ (archiving) và nén các tệp và thư mục để làm bản sao lưu. Ví dụ: có thể lưu trữ nhiều tệp vào một tệp duy nhất trên băng hoặc đĩa, và có thể khôi phục các tệp riêng lẻ từ bản lưu trữ.
Cú pháp lệnh: tar [tùy chọn] [tệp|thư_mục]
| Tùy chọn | Ý nghĩa |
|---|---|
| -c | Tạo một tệp lưu trữ mới |
| -t | Liệt kê nội dung của tệp lưu trữ |
| -x | Giải nén các tệp từ tệp lưu trữ |
| -f | Chỉ định tệp lưu trữ hoặc thiết bị |
| -v | Hiển thị thông tin chi tiết về quá trình xử lý của tar |
| -C<thư_mục> | Giải nén vào thư mục được chỉ định |
| -z | Sử dụng gzip để nén/giải nén |
| -j | Sử dụng bzip2 để nén/giải nén |
| -J | Sử dụng xz để nén/giải nén |
Ví dụ: Lưu trữ thư mục /home/user/docs thành tệp /backup/docs.tar
[root@server ~]# tar cvf /backup/docs.tar /home/user/docs
tar: Removing leading `/' from member names
/home/user/docs
[root@server ~]# ls -l /backup/docs.tar
-rw-r--r-- 1 root root 10240 Jul 23 18:21 /backup/docs.tar
Ví dụ: Thêm tệp /home/user/docs/report.txt vào tệp lưu trữ /backup/docs.tar
[root@server ~]# touch /home/user/docs/report.txt
[root@server ~]# tar rvf /backup/docs.tar /home/user/docs/report.txt
tar: Removing leading `/' from member names
/home/user/docs/report.txt
Sử dụng các chương trình nén khác
Lệnh tar có thể gọi các chương trình nén khác như gzip, bzip2, xz trong quá trình tạo hoặc giải nén.
Sử dụng gzip: Tệp có đuôi .gz là kết quả nén bằng gzip. Sử dụng tùy chọn -z để gọi gzip.
[root@server ~]# tar zcvf /backup/docs.tar.gz /home/user/docs
tar: Removing leading `/' from member names
/home/user/docs
[root@server ~]# ls -l /backup/docs.tar.gz
-rw-r--r-- 1 root root 243 Jul 23 18:54 /backup/docs.tar.gz
Sử dụng bzip2: Tệp có đuôi .bz2 là kết quả nén bằng bzip2. Sử dụng tùy chọn -j để gọi bzip2.
[root@server ~]# tar jcvf /backup/docs.tar.bz2 /home/user/docs
tar: Removing leading `/' from member names
/home/user/docs
[root@server ~]# ls -l /backup/docs.tar.bz2
-rw-r--r-- 1 root root 0 Jul 23 18:59 /backup/docs.tar.bz2
Sử dụng xz: Tệp có đuôi .xz sử dụng thuật toán nén LZMA. Sử dụng tùy chọn -J để gọi xz.
[root@server ~]# tar Jcvf /backup/docs.tar.xz /home/user/docs
tar: Removing leading `/' from member names
/home/user/docs
[root@server ~]# ls -l /backup/docs.tar.xz
-rw-r--r-- 1 root root 300 Jul 23 19:07 /backup/docs.tar.xz
Kiểm tra tệp nén /backup/docs.tar.xz
[root@server ~]# tar Jtvf /backup/docs.tar.xz
-rw-r--r-- root/root 282 2019-07-23 18:47 home/user/docs
Giải nén tệp /backup/docs.tar.xz
[root@server ~]# tar Jxvf /backup/docs.tar.xz
home/user/docs