Nén, giải nén, cài đặt phần mềm trên CentOS


NÉN VÀ GIẢI NÉN
Có 2 dạng nén thông thường là gzip (thường) và bzip2 (mạnh hơn).
1. GZIP
- Gõ gzip <file>        Sẽ nén <file> và tạo ra <file>.gz đồng thời xóa <file> đi
hoặc gzip -c <file1> <file2> > <output>          Nén và gộp <file1> <file2> và tạo ra <output> nhưng vẫn giữ <file1> <file2>
hoặc gzip -r <thư mục cần nén>              Nén thư mục
- Giải nén thì gunzip <file>.gz
2. BZIP2
Cách sử dụng giống y như gzip
3. Lệnh TAR
Là lệnh gom file theo kiểu storage
- Gõ tar -c <output> <file1> <file2> ...          Gom <file1> <file2> ... thành outout
- Gõ tar -x <file>.tar                                          Bung ra lại     
4. Kết hợp TAR và GZIP, BZIP2
tar -cz             Gom và nén với gzip
tar -cj             Gom và nén với bzip
tar -xz             Bung và giải nén bằng gzip
tar -xj             Bung và giải nén bằng bzip2
Ngoài ra ta thường thêm thông số vf (vd: tar -cxvf) để hiệu quả trực quan hơn.
CÀI ĐẶT PHẦN MỀM
Các Distro RedHat như CentOS có gói cài đặt chuyên biệt là các file .rpm (RedHat Packet Manager)
1. CÀI ĐẶT VỚI RPM
Các file RPM có cấu trúc như sau:
<tên gói>-<phiên bản>-<bản phân phối>.<kiến trúc>.rpm
        Với:
         <bản phân phối – release> : Số hiệu bản vá lỗi của phần mềm
         <kiến trúc> : nền tảng phần cứng mà gói được thiết kế để chạy trên đó.
         Nếu là <kiến trúc> là “noarch” nghĩa là nó không phụ vào nền tảng phần cứng, còn "src" nghĩa là đây là mã nguốn cho người sử dụng có thể chỉnh sửa.
Vd: libgnomeuimm-2.0-2.0.0-3.i386.rpm
<tên>               libgnomeuimm-2.0
<phiên bản>         2.0.0
<bản phân phối>     3
<kiến trúc>         i386

Gõ rpm : lệnh cài đặt gói rpm, một số thông số hay dùng như sau:
-i <gói>                 cài đặt,
-e <tên phần mềm>        gỡ bỏ (erase),
-U <gói>                 cập nhật gói (gỡ gói cũ và cài gói mới),
-q <tên phần mềm>                      in ra tên, phiên bản, release, nếu đã được cài,
-p <tên gói>                                   in ra thông tin của cả những gói chưa được cài, nhưng phải chỉ rõ đường dẫn <tên gói>
-i <tên phần mềm>                       in ra thông tin, nếu đã được cài,
-V <tên gói>                                   kiểm tra tính toàn vẹn
--nodeps                                         không kiểm tra các gói phụ thuộc khi cài đặt và cập nhật cũng như gỡ bỏ,
--force                                             cài đặt, cập nhật và bỏ cũ
--import <PUBKEY>                    Nhập GPG Key (/etc/pki/rpm-gpg/RPM-GPG-KEY-CENTOS-<version>)
--replacefiles                                  giải quyết khi có đụng độ trong việc ghi files cho gói cài đặt
Ví dụ:
rpm –ivh <gói>
      rpm –e –nodeps <tên phần mềm>    Gỡ bỏ không thương tiếc.
Cài đặt từ DVD/CD của CentOS và rpm
1. Mount DVD, CD.
2. cd vào thư mục đã mount, (/media), tìm gói tương ứng muốn cài và gõ rpm -i <tên gói>
Việc cài đặt một package sẽ thất bại khi xảy ra một trong ba điều sau:
  • Package xxx is already installed: Package cần cài đã được cài đặt rồi. Giải quyết bằng cách: không cài nữa hoặc cài đè lên thì thêm tham số --replacepkgs hoặc --force
  • Conflicting file: Package đang cài cần ghi một file vào một nơi đã có file khác trùng tên rồi. Giải quyết bằng cách không cài nữa hoặc ghi đè lên file đã có sẵn đó bằng cách thêm tham số --replacefiles.
  • Failed dependency: Package cần cài phụ thuộc vào một package khác chưa được cài trước đó. Cách giải quyết là cài package phụ thuộc trước rồi quay lại cài package ban đầu. Có thể xảy ra trường hợp các gói phụ thuộc vòng: gói A phụ thuộc B, B phụ thuộc C, C phụ thuộc A. Để cài được gói A chỉ việc cài đồng thời cài cả 3 gói A, B, C tức là rpm –ivh A B C. Có thể dùng kí tự đại diện *, ? để cài đồng thời nhiều gói cùng lúc.
Cài gói rpm ở dạng source code .src.rpm
Có nhiều khi gói phần mềm rpm được cung cấp ở dạng source code, tên những gói này có phần đuôi là  .src.rpm. Trước hết cần build nó thành một gói binary rpm bằng lệnh:
rpm –rebuild filename.src.rpm
Sau lệnh rebuild, gói binary vừa tạo ra được đặt trong /usr/src/redhat/RPM/; chỉ cần vào thư mục này và cài đặt gói vừa tạo ra như bình thường
Kiểm tra tính toàn vẹn:
Khi một gói phần mềm được cài đặt vào trong máy, cơ sở dữ liệu RPM lưu thông tin về từng file của gói phần mềm đó. Có 8 trường thông tin cho mỗi file: file size, file permission, mã md5 được tính ra từ nội dung file, major/minor number (nếu file đó là device file), đối tượng được trỏ đến bởi file (nếu file là symbolic link), chủ sơ hữu file, nhóm chủ sở hữu file, quyền truy cập file. RPM cũng lưu thông tin về kiểu file (kiểu file ở đây không phải là kiểu file của Linux mà là kiểu file trong gói phần mềm): file cấu hình, file tài liệu hướng dẫn, file ảo (xuất hiện sau khi đã cài package, không nằm trong package nguyên thủy), file chứa thông tin bản quyền, file readme.
Khi verify file, 8 trường thông tin của file sẽ được so sánh với thông tin lưu trong RPM database. Nếu khớp sẽ hiển thị dấu chấm, không khớp sẽ hiển thị kí hiệu của trường thông tin đó, nếu không kiểm tra được sẽ hiển thị dấu ?. Kiểu file nếu có cũng sẽ được hiển thị ở kí tự thứ 9.
Ví dụ: rpm –Va
     missing    /etc/opt/gnome/gconf/su
S.5....T c /etc/openldap/slapd.conf
            .....UG. c /var/lib/ldap/DB_CONFIG
.M?....T   /usr/X11R6/lib/X11/fonts/misc/fonts.dir
Theo kết quả này thì:
  • /etc/opt/gnome/gconf/su đã bị xóa mất
  • /etc/openldap/slapd.conf là file cấu hình; kích thước file, mã MD5, thời điểm lần thay đổi cuối không giống với thông tin lưu trong PRM database
  • /var/lib/ldap/DB_CONFIG là file cấu hình; chủ sở hữu, nhóm chủ sở hữu của file không giống với thông tin lưu trong RPM database.
  • /usr/X11R6/lib/X11/fonts/misc/fonts.dir (không thuộc 5 kiểu file trên) không kiểm tra được mã MD5; file permission, thời điểm lần thay đổi cuối không giống với thông tin lưu trong RMP database

2. CÀI ĐẶT VỚI YUM
YUM (Yellowdog Updater Modified) là phương pháp cài đặt phần mềm có xu hướng tự động hóa và tập trung hóa. Người dùng chỉ việc đánh lệnh, và yum sẽ kết nối với server cập nhật, cài đặt hay gỡ bỏ phần mềm dựa trên những thông tin về các gói cài đặt sẵn có trên Interner.
Các thông số:
- Cài đặt / Cập nhật / Gỡ bỏ cơ bản
yum install <tên gói/tên phần mềm> <tên gói 2 nếu có>...           Cài đặt,
yum –y install <tên gói/tên phần mềm>      Cài đặt không cần hỏi,
yum update <tên gói/tên phần mềm>          Cập nhật,
yum remove <tên gói>                                 Dỡ bỏ
- Tìm kiếm / Thông tin
yum search <từ khóa>         Tìm kiếm tên gói của 1 phần mềm mà bạn muốn cài,
yum info <tên gói>               Thêm thông tin về gói
yum list all                             List danh sách các gói khả dĩ
yum list installed                 List ra danh sách các gói đã cài
yum provides <file>              Khi bạn có 1 <file> nhưng không biết nó thuộc về gói nào, hãy dùng lệnh này,
yum deplist <tên gói>            Hiển thị các gói có liên quan đến <tên gói> đã cho
- Group – Nhóm phần mềm
yum grouplist                           List danh sách đã cài theo từng nhóm, trong CentOS có những gói liên quan tới nhau được nhóm lại và có tên nhóm nhất định,
yum groupinstall <”tên nhóm”>   Cài theo group
yum groupupdate <”tên nhóm”>  Cập nhật theo group
yum groupremove <”tên nhóm”>  Cài theo group
yum còn có thể cho phép đọc 1 file rồi chạy từng lệnh 1 bằng yum shell.
Vd:
yum shell abc.txt
Hiển thị yum repositories (kho lưu trữ phần mềm của CentOS)
yum repolist             Xem các repo khả dĩ
Cài đặt từ DVD/CD CentOS với yum
Khi bạn muốn cài từ DVD của CentOS và coi nó như 1 repo. Bạn cần thực hiện 1 số thao tác:
1. Chắc chắn rằng hệ thống cho phép, vào file:
/etc/yum.repos.d/CentOS-Media.repo         sửa thông số enabled=1
2. mount DVD/CD:
3. Gõ: yum --enablerepo=c5-media install <tên gói>        
nếu chỉ muốn dùng repo từ DVD, gõ:
yum --disablerepo=\* --enablerepo=c5-media install <tên gói>
IMPORT key
Trong 1 số trường hợp, gói cài đặt báo lỗi thiếu key, ta nhập key bằng lệnh:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CENTOS-<version> (vd : rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CENTOS-6)
Cấu hình yum
- File cấu hình yum /etc/yum.conf

Trên hình chúng ta thấy, yum.conf có 1 Section là [Main] chứa đựng những thông số quan trọng
- cachedir Thư mục chứa cache và database của yum. Mặc định là /var/cache/yum
- keepcache  '1' - giữ cache hoặc '0' - không giữ cache sau khi cài.
- reposdir  Danh sách các thư mục mà yum sẽ tham chiếu các .repo file. Mặc định là '/etc/yum.repos.d'.
- proxy URL của proxy mà yum sẽ dùng.
Tham khảo thêm tại http://linux.die.net/man/5/yum.conf

3. Cài gói TAR.GZ hoặc TAR.BZ2
- Trước hết bạn cần giải nén (xem phần trên), chuyển cd vào thư mục chứa source.
- Gõ ./configure                 Tạo file Makefile chứa các thông tin về phần cứng hệ thống
- Gõ make                          Biên dịch
- Gõ make install              Cài đặt
Nếu muốn gỡ bỏ, gõ make uninstall (file makefile phải đang tồn tại)
Một số trường hợp, bạn chỉ cần chạy file INSTALL của gói là được, nói chung bạn cần đọc file readme:
- Chuyển (cd) vào thư mục mới giải nén tạo ra.
- Gõ: ./INSTALL hoặc ./<tên file install>         Muốn biết rõ hơn về <file install> này bạn cần tìm đọc file read me (trong thư mục đã giải nén) để tìm hiểu cách cài đặt và sử dụng.
4. Cài gói BIN
- Chuyển vào thư mục chứa packet,
- Gõ ./<tên packet>
- Gỡ bỏ, gõ: <path>/UNINSTALL    

Nhận xét