Cài đặt phần mềm từ mã nguồn

Một phần của tài liệu nhập môn linux và phần mềm mã nguồn mở (Trang 75 - 77)

Quản lý phần mềm

8.2Cài đặt phần mềm từ mã nguồn

Ngoài việc cung cấp mã thực hiện để cài đặt trên hệ thống, phần mềm còn có thể được cài đặt sử dụng mã nguồn. Việc cài đặt phần mềm từ mã nguồn có nhiều lợi thế. Khi dịch phần mềm từ mã nguồn, quản trị viên có thể kiểm soát hoàn toàn (vì có mã nguồn) các chức năng của phần mềm, đảm bảo không có chức năng nào không nằm trong dự kiến được cài đặt vào hệ thống. Việc sử dụng các thư viện của các phần mềm khác cũng có thể được tùy biến (sử dụng thư viện động, tĩnh hoặc tích hợp vào mã thực hiện). Mặt khác, quá trình dịch được thực hiện tại chỗ cho phép trình dịch có thể tối ưu mã thực hiện theo các cấu hình cụ thể của hệ thống. Nhược điểm của phương pháp này là luôn đòi hỏi có trình dịch phù hợp trên hệ thống (một số hệ thống không cài đặt trình dịch vì lý do bảo mật). Quá trình dịch mã nguồn hoàn toàn do lập trình viên và người cài đặt thực hiện, sẽ rất khó khăn cho việc quản lý các phần mềm trên hệ thống nói chung. Quá trình dịch, cài đặt, gỡ bỏ phần mềm không có thông tin về các phần mềm khác trên hệ thống,

nên không thực hiện được các thao tác trên nhiều phần mềm. Thông thường phương pháp này được sử dụng trên các hệ thống có phần mềm ít thay đổi, đòi hỏi hiệu năng cao một cách đặc biệt hoặc các hệ thống thử nghiệm dành cho các nhà phát triển phần mềm.

Mã nguồn có thể được tải về một cách trực tiếp, có thể được cài đặt thông qua các gói mã nguồn, có thể được tải về thông qua các phần mềm quản lý phiên bản như CVS, SVN.

Quá trình dịch mã nguồn với các phần mềm tương đối phức tạp đòi hỏi thực hiện các câu lệnh dịch, copy, tham chiếu tới các tệp khác nhau trong cây con thư mục của mã nguồn. Các nhà lập trình C sử dụng một công cụ để có thể ghi lại và thực hiện các thao tác này lặp đi lặp lại trong quá trình phát triển gọi là automake. Automake sử dụng tệp makefile để ghi lại các thao tác cần thực hiện để có thể dịch mã nguồn ra mã thực hiện, sau đó dùng lệnh make để kích hoạt kịch bản này với các tùy biến khác nhau. Hiển nhiên trong quá trình phát triển kịch bản dịch này sẽ được sử dụng nhiều lần. Makefile còn là công cụ để nhà phát triển có thể hướng dẫn quản trị viên cài đặt phần mềm từ mã nguồn. Makefile được sử dụng chủ yếu với mã nguồn C, tuy nhiên có thể được sử dụng với một công cụ lập trình bất kỳ.

Các thao tác cài đặt, gõ bỏ, cấu hình lại và cấu hình mặc định phần mềm thực tế cũng là các thao tác tương tự như các thao tác bổ trợ thực hiện trong quá trình dịch mã nguồn thành mã thực hiện. Chính vì vậy, các thao tác này được tích hợp luôn vào kịch bản dịch mã nguồn, được kích hoạt riêng biệt hoặc cùng với quá trình dịch mã nguồn tùy theo các tùy biến của câu lệnh make. Các tùy biến này thông thường là install, uninsstal, clean, reconfigure, ...

Mặc dù Makefile cho phép tùy biến quá trình dịch mã nguồn với rất nhiều các thao tác phụ trợ, tuy nhiên việc tạo ra một Makefile phù hợp với các hệ thống khác nhau, với các trình dịch khác nhau của cùng một ngôn ngữ, với sự có mặt hay không có mặt của các thư viện phần mềm cần thiết trên hệ thống. Trường hợp quá trình dịch với Makefile bị lỗi, cần chỉnh sửa lại Makefile để phù hợp với hệ thống hiện tại. Để hạn chế sự can thiệp của các quản trị viên vào Makefile, quá trình này được thực hiện trước khi dịch mã nguồn. Di kèm theo mã nguồn, có một công cụ (configure, xconfig) cho phép:

• Kiểm tra cấu hình hệ thống có phù hợp

• Thay đổi các dòng của Makefile cho phù hợp với hệ thống

Nếu quá trình cấu hình không hoàn thành, điều này chứng tỏ trên hệ thống còn thiếu một số thành phần cơ bản để có thể dịch mã nguồn. Trường hợp này quản trị viên cần trở lại bước trước để bổ sung thêm các thành phần phần mềm còn thiếu.

Như vậy có thể thấy quá trình cài đặt phần mềm được thực hiện qua các bước:

• Chuẩn bị mã nguồn (tải mã nguồn từ Internet, copy từ các thiết bị lưu trữ, ...)

• Chuẩn bị môi trường để dịch mã nguồn (Chuẩn bị các phần cứng và phần mềm cần thiết)

• Chuẩn bị kịch bản dịch mã nguồn (Thực hiện lệnh cấu hình tự động hoặc copy các Makefile phù hợp)

• Dịch mã nguồn (make all)

• Cài đặt mã thu được sau khi dịch mã nguồn vào hệ thống (make install)

• Cấu hình phần mềm theo các cấu hình mặc định (make config)

Quá trình gỡ bỏ phần mềm được thực hiện bằng lệnh make uninstall và make clean.

Hình 8.2.1 trình bày một ví dụ về cài đặt phần mềm từ mã nguồn.

Một phần của tài liệu nhập môn linux và phần mềm mã nguồn mở (Trang 75 - 77)