Biên Dịch Gói Tin và Sự Khác Biệt Với Auto Install (YUM, Apt-get,…)

Thông thường trên hệ thống Unix/Linux đa phần mọi người sẽ sử dụng các trình quản lý ứng dụng gói (apt-get, yum,…) để hệ thống tự động tìm cài đặt ứng dụng mong muốn, cụ thể hơn trong bài viết này tôi sẽ nói đến CentOS thuộc RedHat sẽ sử dụng:

  • YUM – Yellowdog Updater, Modified: Là 1 chương trình (lệnh) dùng quản lý cài đặt, cập nhật hoặc xóa bỏ các gói tin thuộc hệ thống quản lý gói tin của RedHat (RPM – Redhat Package Manager). Với YUM hệ thống (có kết nối internet) sẽ tự động tìm gói tin và cài đặt chúng. Tuy nhiên, mặc định YUM chỉ có thể cài đặt các gói tin đã có sẵn trên Kho ứng dụng (Repository).
  • RPM: Đây cũng là 1 một công cụ (lệnh) với chức năng tương tự như YUM. Tuy nhiên, RPM cần người dùng phải tự tìm và cài đặt các gói phụ thuộc (nếu cần) trước khi cài ứng dụng mong muốn.

Nhìn chung, với 2 cách cài đặt này tất cả ứng dụng sẽ được cài đặt theo cơ chế mặc định với đường dẫn cài đặt, các thư viên, v.v.. điều giống nhau.

Và như vậy, đã có bao giờ Bạn nghĩ rằng tại sao mình không tự quản lý các ứng dụng với đường dẫn cài đặt, các tính năng bạn cho phép chạy hoặc không, những thư viện nào không cần thiết dùng đến nên bỏ đi,… theo ý của mình chưa? hoặc chỉ đơn giản là bạn muốn dùng duy nhất 1 cách (một quy trình cài đặt gói tin) cho tất cả các bản phân phối thuộc Unix/Linux

Nếu có! Bài viết này sẽ hướng dẫn các Bạn cách cơ bản để tự mình cài đặt ứng dụng theo ý muốn của chính mình và được gọi là biên dịch gói tin.

1. Cách biên dịch một ứng dụng.

Các vấn đề cần biết trước khi biên dịch gói tin

Để biên dịch gói tin thành công Bạn cần:

  • Trình biên dịch gói: GCC – GNU Compiler Collection: là một trình biên dịch có thể biên dịch các ngôn ngữ: C, C++, Fortran, Java,…
  • Đọc kỹ tài liệu về ứng dụng: Bạn cần đọc kỹ các yêu cầu hệ thống cần cài đặt trước các ứng dụng phụ nào thông qua document từ website của ứng dụng đó.
  • Hiểu về 3 bước cài đặt (3 bước này phải được thực hiện bên trong thư mục của source ứng dụng mà bạn download về và đã giải nén thành thư mục):
    • ./configure: tập tin configure là một tập tin kịch bản được viết sẵn và kèm theo trong source code của ứng dụng. “./” là ký tự dùng để chạy ứng dụng, tập tin trong linux có quyền thực thi (tương tự như bạn kích đúp chuột vào tập tin *.exe trên windows) vì vậy bạn cần chắc chắn tập tin này phải có quyền thực thi theo User mà bạn đang đăng nhập. Nó sẽ kiểm tra các thư viện phụ thuộc đã được cài đặt hay chưa và cũng cho phép bạn tùy chỉnh cài đặt theo ý muốn. Ví dụ, thay đổi đường dẫn cài đặt với tham số “–prefix=<đường dẫn>”. Có rất nhiều tùy chọn để thiết lập trong kịch bản này, bạn có thể xem các tùy chọn được hỗ trợ bằng lệnh “./configure –help
    • make: Đây là một tiện ích dùng biên dịch gói tin: nó sẽ đọc tập tin “Makefile” trong thư mục nguồn ứng dụng với các tham số được truyền từ kịch bản configure để biên dịch gói tin.
    • make install: Lệnh này sẽ cài đặt các gói được lệnh make biên dịch vào hệ thống.

Khắc phục lỗi khi biên dịch gói tin:

– Hầu hết các vấn đề lỗi khi biên dịch sẽ được xuất ra màn hình sau khi biên dịch. VD: Lỗi thiếu trình biên dịch khi dùng lệnh make.

Lost_gcc

Cách khắc phục thì Bạn có thể google dòng lỗi rồi làm theo hoặc download các source phần mềm hệ thống báo thiếu và install vào (theo Yum hoặc tự biên dịch gói tin đó).

Làm sao biết đã biên dịch gói tin đó với những tùy chọn nào?

– Các gói tin khi biên dịch với các tùy chọn sẽ được lưu vào tập tin config.nice trong source mà bạn biên dịch hoặc trong thư mục “build” nơi mà ứng dụng được cài đặt. VD Apache:

<Source Install Folder>/config.nice

<Installed Folder>/apache/build/config.nice

Bạn chỉ cần đọc file này sẽ biết được đã cài đặt ứng dụng với các tùy chọn nào.

ViewCompiledOption

View Compiled From Install Folder

ViewCompiledOption_FromSource

View Compiled From Source Code

2. Điểm khác biệt giữa tự biên dịch và cài đặt tự động

Biên Dịch Gói Tin Yum, Apt-get …
– Có thể tùy chỉnh các tùy chọn của phần mềm theo ý muốn, tối ưu được hệ thống. – Luôn luôn cài đặt mặc định các tùy chọn đã được thiết lập sẵn.
– Giúp Bạn nắm rõ hơn về hệ thống cần xây dựng những gì và các mối liên quan của phần mềm đang cài đặt. – Do tự động cài đặt, Bạn sẽ không quản lý được có tính năng phụ nào được thêm vào trong phần mềm khi dùng auto install.
– Sẽ khó khăn hơn trong quá trình cài đặt ứng dụng. – Cài đặt ứng dụng dễ dàng khi có kết nối internet.

Chúc các bạn Thành Công!

Comments

comments

Leave a Reply

Your email address will not be published. Required fields are marked *