Cài đặt và triển khai ứng dụng trên hệ điều hành Linux

A.Cài phần mềm từ source trên linux:

1 .Căn bản của việc cài đặt

 Điều đầu tiên khi bạn tiến hànth cài đặt là bạn phải có mã nguồn của gói đó trước. Hãy lên mạng search bất kì gói nào bạn thích như thư viện Gtk+ hoặc Gnome… Sau khi tải về, thông thường có dạng là .gz hoặc .bz2, đây đều là 2 chuẩn nén khác nhau, sau khi giải nén bằng gunzip cho gz hoặc bunzip2 cho bz2 thì các gói sẽ có dạng mới là tar, cũng là một chuẩn nén khác, bạn có thể giải nén bằng lệnh, tar -xvf… Thế

nhưng đế dễ dàng và tiết kiệm dung lượng ổ đĩa thì chúng ta có thể gộp các câu lệnh đó thành 1 như sau:

Đối với gói .gz: # tar -zxvf tengoi.gz

    – Đối với gói .bz2: # tar -jxvf tengoi.bz2

Sau khi giải nén xong và tìm tập tin INSTALL để đọc cụ thể cho phần hướng dẫn cài đặt. Thế nhưng hầu như các gói đều tuân theo các thao tác tuần tự sau:

# ./configure  
# make
# make install

Lưu Ý : Chỉ có vài gói đặc biệt sẽ có riêng cách cài đặt nhưng khi bạn đã nắm vững nguyên tắc chung thì dù là cách thức nào bạn cũng có thể xoay xở được.  

  • Chúng ta hãy xét đến câu lệnh đầu tiên, ./configure… Thực chất configure là một shell script sẽ kiểm tra những yêu cầu của hệ thống của bạn có đáp ứng đủ để cài đặt gói lên không, ví dụ như một số gói đòi hỏi bạn phải có sẵn thư viện đồ họa Gtk 2.4 trở lên hoặc là thư viện để giải nén nhạc Mp3…
  • Rất nhiều gói có sự phụ thuộc như thế chứ các gói khi tải về không hề có sẵn các gói tương ứng cần thiết cho nó. Khi bạn chạy configure xong kết quả sẽ cho bạn biết các gói nào cần thiết để cài đặt. Nhiệm vụ của bạn không gì hơn là phải tìm các gói phụ thuộc đó cài lên máy rồi mới tiếp tục việc cài đặt. Nếu như hệ thống của bạn thỏa mãn đầy đủ các yêu cầu để cài đặt thì các Makefile sẽ được tạo ra. Makefile là một file đặc biệt của tiện ích make nhằm hướng dẫn biên dịch mã nguồn của gói ra dạng thực thi.
  • Sau khi bạn thực thi lệnh ‘make’ xong thì toàn bộ mã nguồn của gói đã được biên dịch sang dạng thực thi nhưng các file thực thi vẫn còn nằm trên thư mục hiện hành.
  •  Do đó bạn cần phải thực hiện thêm lệnh ‘make install’ để chép các file thực thi đó sang đúng vị trí của nó trên hệ thống. Nếu như không có thông báo lỗi gì xảy ra thì bạn đã hòan tất việc cài đặt gói lên hệ thống của mình
  • Tổ chức các file trên hệ thống
  • Bạn hoàn toàn biết thư mục trên Linux thì thư mục /usr là thư mục quan trọng nhất vì nó sẽ chứa các chương trình và hàm thư viện trên đó. Trong thư mục /usr/bin là sẽ chứa các file thực thi cho các gói bạn đã cài đặt trên máy, các file trong thư mục này bạn sẽ thấy các file rất quen thuộc như mozilla, gedit .v.v…
  • Thư mục /usr/lib sẽ chứa các hàm thư viện, bạn sẽ thấy rất nhiều files có phần mở rộng là .so (shared object) là các hàm thư viện liên kết động hoặc .a (archive) hoặc .la đều là các hàm thư viện liên kết tĩnh. Đặc tính căn bản của 2 dạng thư viện này là hàm thư viện liên kết tĩnh sẽ được liên kết thẳng với files thực thi luôn trong quá trình liên kết, còn hàm thư viện liên kết động thì sẽ được liên kết trong quá trình thực thi, cho nên sau khi chương trình đã được biên dịch và liền kết rồi các thư viên tĩnh chúng ta có thể bỏ đi nhưng thư viện liên kết động thì bắt buộc phải đi kèm với chương trình. Thư mục /usr/share sẽ chứa các icon, manual hoặc info của gói.
  • Loại bỏ một gói
  • Nếu bạn mong muốn lọai bỏ một gói đã cài đặt trên hệthống thì cách duy nhất là bạn phải vào lại thư mục mã nguồn của gói và gõ lệnh:
- make uninstall
  • Thông thường bạn sẽ có các câu lệnh sau:
       - make clean
- make distclean
  • Các câu lệnh có ý nghĩa rất tương đối và được định nghĩa trong tập tin Makefile, nên đầu tiên bạn cứ thử với‘make uninstall’ rồi ‘make clean’ cái cuối cùng ‘make distclean’ là giúp bạn xóa hết các tập tin đã biên dịch ở thư mục nguồn và đồng thời xóa Makefile, bạn phải chạy lại ./configure để tạo lại Makefile.
  • Quản lý các gói
  • Do việc xóa bỏ một gói như trên rất là phiền phức đôi lúc bạn chẳng thể xóa bỏ được nếu như mất đi mã nguồn, cho nên bạn có thể thay vì cài nó vào thư mục mặc định là /usr thì bạn có thể cài vào các thư mục của riêng bạn, ví dụ như bạn có thể tạo thư mục ‘/soft’… Sau đó để cài gói gedit thì bạn tạo thêm thư mục /soft/gedit và dùng lệnh ./configure… bạn thêm tùy chọn sau:
- ./configure –prefix=/soft/gedit
  • Thì khi bạn gõ make install sẽ copy toàn bộ sang thư mục /soft/gedit. Khi bạn muốn xóa toàn bộ gói thì chỉ đơn giản xóa đi thư mục đó thôi. Lưu ý là khi bạn cài vào thư mục riêng của mình rồi bạn phải tạo 2 đường dẫn cho 2 biến môi trường (environment variable) LD_LIBRARY_PATH và PKG_CONFIG_PATH.
  • LD_LIBRARY_PATH sẽ có đường dẫn đến thư mục lib của gói vừa tạo (ví dụ như /soft/gedit/lib) còn PKG_CONFIG_PATH sẽ có đường dẫn đến thư mục pkg_config trong thư mục lib (ví dụ như /soft/gedit/lib/pkg_config). Bên cạnh đó nếu bạn muốn chương trình gọi tự động thì bạn cũng nên thêm vào biến PATH cho gói của mình
  • Cài đặt phần mềm trên Redhat – Centos:
  • Bản thân các gói RPM không chứa chương trình cài đặt, nó chỉ chứa các thông tin về các file sẽ được cài đặt, thông tin mô tả về phần mềm chứa trong gói và các file nằm trong gói RPM sẽ được cài đặt vào thư mục nào trong hệ thống. Các gói phần mềm dạng RPM được cài đặt vào hệ thống nhờ vào chương trình RPM có trong hệ thống.
  • Cách đơn giản nhất để cài một gói RPM, chẳng hạn gói foobar-1.0-1.i386.rpm là dùng lệnh:
- rpm -i foobar-1.0-1.i386.rpm
  • Để theo dõi quá trình install, bạn có thể thêm tham số:
    - rpm –ivh foobar-1.0-1.i386.rpm
  • Để uninstall package đã được cài:
- rpm -e foobar
  • Nếu có một file RPM mà không biết nó là phần mềm nào, bạn có thể lấy thông tin bằng lệnh:
       - rpm -qpi koules-1.4-1.i386.rpm
  • Nếu đã lỡ xóa một vài file nào đó và không chắc chắn rằng file đó đang còn cần thiết cho chương trình nào đó, bạn có thể xem thử hệ thống đang thiếu file cần thiết nào:
- rpm –Va
  • Thường khi cài một gói RPM nào đó, đòi hỏi phải cài thêm các gói phụ thuộc, bạn phải đi tìm và cài đặt các gói phụ thuộc trước khi cài được gói phần mềm trên. Hoặc cũng có thể gộp chung lại trên một dòng lệnh với lệnh RPM một danh sách các file RPM, được cách nhau bởi dấu khoảng trắng.
  • Trong Redhat hoặc Mandrake ở các phiên bản mới, Software Package Installation cũng tương tự như trình Add/Removed Software trong Windows vậy. Các tiện ích đi kèm trong bộ cài đặt được liệt kê đầy đủ theo từng nhóm để tiện theo dõi. Khi cài đặt một phần mềm, chương trình sẽ tự động kiểm tra các gói phụ thuộc và sẽ yêu cầu bạn đưa các CD cần thiết vào trong quá trình cài đặt.
  • Một kiểu cài đặt phần mềm phổ biến khác là bạn cài đặt từ các gói mã nguồn, thường được viết bằng ngôn ngữ C. Các gói này có dạng file nén *.TAR.GZ, *.BZ hoặc *.SRC.RPM. Trong trường hợp này, máy tính của bạn phải có sẵn các bộ công cụ biên dịch và các thư viện lập trình.
  • Sở dĩ phải có dạng TAR vì các file phải được gói lại thành một file trước khi nén thành GZ hoặc BZ, chứ không thể nén trực tiếp từ nhiều file thành một file nén được. Bản thân file *.TAR không phải là một file nén mà chỉ là một file chứa một tập các file khác gom lại mà thôi.
  • Với các gói nén bằng TAR.GZ, bạn bung nén như sau:
 #tar xvzf file.tar.gz
  • Sau khi giải nén, một thư mục chứa các file trong file nén được tạo ra. Bạn vào thư mục này và thực hiện quá trình biên dịch theo như file INSTALL hướng dẫn. Các bước thông thường (chứ không phải tất cả) là như sau:
 #./configure
# make
#make install
  • Bước chạy lệnh configure là để chương trình script xác lập cấu hình hệ thống cho việc biên dịch chương trình. Tùy vào cấu hình máy mà có chế độ biên dịch phù hợp và tối ưu cho chính hệ thống đó.
  • Lệnh make dùng để biên dịch mã nguồn thành file thực thi. Sau đó lệnh install để cài đặt file đã biên dịch lên hệ thống.
  • Bạn cũng có thể dùng lệnh yum để cài đặt phần mềm, vd bạn muốn cái webserver gõ lệnh sau
        # yum install httpd
  •  Sau đó nhấn -y để xác nhận, hoặc có thể tìm một gói cài đặt bằng cách dùng lệnh yum search, sẽ liệt kê các gói cần cài đặt
        # yum search httpd

Trả lời