Một trong những thách thức lớn nhất đối với người dùng chuyển từ Windows sang Linux là ý thức rằng không phải phần mềm nào cũng được đóng gói sẵn sàng để cài đặt. Khác với người dùng Windows, thường nhận được phần mềm dưới dạng file EXE hoặc ZIP, người dùng Linux thường phải tự biên dịch gói phần mềm từ mã nguồn.
Nếu bạn muốn biết cách biên dịch gói phần mềm trên Linux, bạn cần thực hiện một số bước: tải mã nguồn, chạy lệnh configure, cài đặt các gói phụ thuộc cần thiết, sau đó chạy lệnh make để bắt đầu biên dịch. Dưới đây là hướng dẫn chi tiết trên các hệ điều hành dựa trên Linux.
Tải File Mã Nguồn
Trước khi bắt đầu xây dựng gói phần mềm mới, bạn cần mã nguồn. Điều này có thể là gói bạn tự phát triển, trong trường hợp bạn đã có sẵn mã nguồn.
Tuy nhiên, trường hợp phổ biến hơn là bạn đang cố gắng biên dịch gói phần mềm từ nhà phát triển khác. Các trang chia sẻ mã phổ biến như GitHub cho phép xem và tải mã nguồn, sau đó bạn có thể biên dịch. Bạn có thể sử dụng Git – hệ thống kiểm soát phiên bản phổ biến – để tải file nguồn về máy.
Bạn cũng có thể tải mã nguồn trực tiếp từ các dự án mã nguồn mở như VLC. Các file này thường ở định dạng nén như TAR.GZ, có thể giải nén tại terminal bằng lệnh tar. Ví dụ: chạy lệnh tar -xzvf source.tar.gz sẽ giải nén file tarball tên source.tar.gz.
Khi đã có mã nguồn và giải nén trên máy Linux, bạn có thể chuyển sang giai đoạn chuẩn bị tiếp theo trước khi biên dịch.
Cài Đặt Build-Essential Trên Linux
Các công cụ và phần mềm trong gói build-essential là bắt buộc cho mọi loại biên dịch phần mềm trên Linux, bất kể ngôn ngữ lập trình của mã nguồn.
Là gói thiết yếu, build-essential (hoặc các gói tên tương tự) thường có sẵn trong kho phần mềm của bản phân phối Linux. Tương đương với build-essential trên các bản phân phối dựa trên Arch Linux là base-devel, bao gồm nhiều công cụ tương tự.
Hướng dẫn cài đặt build-essential sẽ khác nhau tùy theo bản phân phối. Ví dụ, trên Ubuntu và các hệ điều hành dựa trên Debian, bạn có thể cài đặt bằng cách mở terminal và gõ sudo apt install build-essential.
Việc cài đặt build-essential cũng sẽ cài đặt các phụ thuộc của nó, như gói g++. Sau khi quá trình này hoàn tất, bạn có thể chuyển sang cấu hình gói nguồn Linux trước khi biên dịch.
Chạy Lệnh Configure
Mã nguồn của các gói lớn thường chứa script configure. Chạy script này sẽ kiểm tra bản phân phối Linux của bạn để tìm các gói cần thiết để mã nguồn biên dịch chính xác.
Để chạy script configure, hãy vào thư mục mã nguồn đã giải nén bằng lệnh cd. Từ đó, gõ ./configure vào terminal và nhấn Enter.
Nếu script configure phát hiện gói bị thiếu, nó sẽ thông báo việc cần làm ở cuối quá trình chạy. Ví dụ: trước khi biên dịch VLC media player, script configure đã phát hiện ngôn ngữ lập trình Lua chưa được cài đặt.
Trong một số trường hợp, bạn vẫn có thể biên dịch và cấu hình gói phần mềm ngay cả khi script configure phát hiện gói hoặc tính năng bị thiếu. Script configure của VLC (như hình trên) đã đề xuất giải pháp cho việc thiếu gói Lua bằng cách gợi ý chạy lại với cờ --disable-lua để bỏ qua.
Bạn cần cài đặt các gói bị thiếu mà script configure phát hiện hoặc sử dụng các cờ disable được gợi ý để bỏ qua lỗi trước khi tiếp tục.
Nếu script configure hoàn thành mà không có (hoặc chỉ có lỗi nhỏ), file makefile đã được cấu hình cho gói của bạn sẽ được tạo. Điều này tạo ra các hướng dẫn để biên dịch gói, cho phép bạn chuyển sang giai đoạn biên dịch cuối cùng.
Cài Đặt Các Gói Phụ Thuộc Bị Thiếu
Script configure hữu ích trong việc xác định các gói mà bản phân phối Linux yêu cầu để biên dịch và cài đặt gói phần mềm mới chính xác.
Các gói này có thể được xác định rõ ràng bằng thông báo lỗi của script configure hoặc xem lại quá trình chạy script đó. Nếu thông báo lỗi không rõ ràng, hãy cuộn lại lịch sử terminal để xác định gói bị thiếu.
Khi đã biết gói bị thiếu, hãy dùng trình cài đặt gói của bản phân phối Linux để cài đặt. Ví dụ, trên Ubuntu và các hệ điều hành dựa trên Debian, chạy sudo apt install ten-goi sẽ cài đặt gói.
Việc cài đặt các phụ thuộc bị thiếu là giai đoạn cuối cùng trước khi bạn có thể bắt đầu biên dịch và cài đặt gói phần mềm mới. Sau khi hoàn tất quá trình này, bạn đã sẵn sàng để biên dịch.
Cách Biên Dịch Trên Linux
Gói build-essential chứa make – công cụ tự động dùng để bắt đầu biên dịch mã nguồn thành phần mềm có thể chạy trên máy. Nó sử dụng file makefile, được cấu hình và tạo ra bởi lệnh configure trước đó, chứa các hướng dẫn cụ thể cần thiết để biên dịch gói của bạn.
Để bắt đầu biên dịch mã nguồn, mở terminal và dùng lệnh cd để vào thư mục đúng. Khi sẵn sàng, gõ make để bắt đầu biên dịch gói.
Quá trình này sẽ mất một chút thời gian tùy thuộc vào kích thước gói và tài nguyên hệ thống. Nếu không có lỗi xuất hiện sau khi biên dịch xong, bạn có thể cài đặt gói.
Để làm điều đó, gõ sudo make install trong terminal. Gói sẽ được cài đặt trên máy Linux, sẵn sàng để mở và sử dụng như bất kỳ phần mềm nào khác.
Cài Đặt Phần Mềm Mới Trên Linux
Biết cách biên dịch gói phần mềm trên Linux giúp bạn cài đặt các phần mềm ít phổ biến hơn. Các hệ điều hành chính như Ubuntu và Debian có kho phần mềm lớn, nên nếu bạn không muốn tự biên dịch, hãy thử tìm và cài đặt phần mềm mới bằng trình quản lý gói.
Nếu bạn đang chuyển từ Windows, bạn cũng có thể cài đặt phần mềm Windows trên Linux để tiếp tục sử dụng các ứng dụng chỉ chạy trên Windows.