Binary và Source Package: Nên sử dụng loại nào?

Bất kể bạn sử dụng trình quản lý package nào, luôn có sẵn hai cách cài đặt các chương trình trên Linux. Bạn có thể sử dụng package đã thiết lập sẵn hoặc tự biên soạn chương trình. Hiện tại, mọi người thường thích sử dụng những gì đã được mặc định, nhưng có những lúc bạn nên xem xét việc biên soạn chương trình từ code nguồn.

Binary Package là gì?

Cài đặt chương trình trên Linux khác so với cách cài đặt phần mềm trên Windows. Thay vì tải file cài đặt từ trang web chính thức của nhà cung cấp, các file chương trình Linux đến từ kho lưu trữ các phần mềm được điều chỉnh theo bản phân phối Linux mà bạn dùng. Truy cập kho lưu trữ này bằng trình quản lý package hoặc kho ứng dụng Linux.

Định dạng package trên Debian
Định dạng package trên Debian

Các file chương trình trong các kho này có định dạng lưu trữ. Nó giúp đưa mọi thứ vào một file duy nhất để dễ dàng truy cập và phân phối. Ví dụ, Debian sử dụng định dạng DEB để lưu trữ và phân phối chương trình. Đây được gọi là binary package.

Bạn cần một phần mềm đặc biệt để giải nén các file này, sau đó mới có thể cài đặt chúng vào máy tính, đặc biệt là trình quản lý package hoặc cửa hàng ứng dụng. Các công cụ này cũng có nhiều chức năng hữu ích khác, chẳng hạn như theo dõi các file bạn đã cài đặt và quản lý cập nhật phần mềm.

Các package này đến từ đâu?

Tất cả phần mềm đều bao gồm mã nguồn, được viết bằng các ngôn ngữ lập trình cụ thể, ví dụ như C hoặc C ++. Nói chung, bạn có thể chỉ cần đặt mã nguồn này vào một kho lưu trữ và nó đã thành một package rồi. Những dòng này cần được dịch sang ngôn ngữ mà máy tính của bạn có thể hiểu và làm việc.

Quá trình này được gọi là biên soạn, kết quả cuối cùng là tạo ra các mã nhị phân mà máy tính của bạn có thể chạy. Sự khác biệt giữa các package và phần mềm là các mã nhị phân phần mềm được lưu trữ cùng bên trong một package, với những thứ khác như các file cấu hình.

Cài đặt “From Source” là gì?

Cài đặt “from source” (từ nguồn) có nghĩa là cài đặt chương trình mà không cần sử dụng trình quản lý package. Thay vào đó, bạn tự biên soạn mã nguồn và sao chép các tệp nhị phân vào máy tính của bạn.

Emacs - Makefile
Emacs - Makefile

Bạn đa phần có thể tải mã nguồn của project từ các dịch vụ lưu trữ như GitHub, GitLab hoặc Bitbucket. Các chương trình nặng hơn thậm chí có thể lưu trữ mã nguồn trên một trang web cá nhân nào đó. Chúng thường sẽ được nén ở định dạng lưu trữ (còn được gọi là source package).

Có một bộ công cụ đặc biệt giúp tự động hóa quá trình. Trên máy tính Linux, bộ công cụ này thường xuất hiện dưới dạng dòng lệnh “make”. Mã nguồn được viết bằng các ngôn ngữ khác nhau cần các trình biên soạn và lệnh cụ thể để thay đổi chúng thành cấu trúc nhị phân. Công cụ như đã nói trên tự động hóa quá trình này.

Để tự động hóa này hoạt động, các phần mềm phải cung cấp makefile cho nó biết phải làm gì và bắt đầu biên soạn. Hiện nay, nó thường được tạo tự động bởi phần mềm đặc biệt như CMake. Từ đây, bạn có thể chỉ định chính xác những tính năng bạn muốn biên soạn vào phần mềm của mình.

Lợi ích của việc sử dụng Binary Package

Trong hệ điều hành Linux, các phần mềm hiện nay dường như đã được biên soạn sẵn. Điều này đã trở nên phổ biến hơn nhiều so với việc sử dụng source package. Tại sao?

Phiên bản Binary dễ quản lý hơn

Binary Package chứa nhiều thứ ngoài các file cài đặt được biên soạn sẵn. Chúng cũng lưu trữ thông tin giúp trình quản lý package của bạn dễ dàng theo dõi tất cả các phần mềm. Ví dụ: các tệp DEB (định dạng package cho bản phân phối Debian) cũng chứa thông tin quan trọng như phần mềm nào cần chạy và phiên bản hiện tại của nó.

Dữ liệu gói có thể quản lý dễ dàng
Dữ liệu gói có thể quản lý dễ dàng

Điều này làm cho các binary package dễ cài đặt hơn nhiều, vì không cần phải lo lắng về những file khác ngoài thứ bạn cần để cài một phần mềm. Trình quản lý package của bạn có thể đọc thông tin đó từ chính package đó và tự động tải xuống tất cả các file phụ cần thiết.

Khi cài đặt chương trình từ nguồn, trừ khi bạn tự biên soạn mã nguồn thành binary package của riêng mình, bạn sẽ là người chịu trách nhiệm quản lý phần mềm đó. Bạn sẽ cần ghi nhớ những chương trình khác mà cần dùng để làm cho nó hoạt động và phải tự cài đặt chúng.

Các phiên bản Binary đã được cải thiện ổn định hơn

Những người giữ lại kho lưu trữ cho trình quản lý package thường có xu hướng kiểm tra mã nhị phân để tìm ra vấn đề và cố gắng hết sức để khắc phục các lỗi xuất hiện. Việc này giúp cải thiện sự ổn định của các chương trình, đây là điều mà việc cài đặt chương trình từ mã nguồn không có được.

Hơn nữa, các package thường phải tuân thủ một bộ quy tắc nghiêm ngặt để giúp đảm bảo chúng có thể chạy được trên hệ thống của bạn. Ví dụ, cả Debian và Ubuntu đều có hướng dẫn chính sách cũng như nhiều bản phân phối Linux khác.

Lợi ích của việc tự biên soạn các gói cài đặt

Bạn không nhất thiết phải cài đặt chương trình từ mã nguồn, vì binary package sẽ giúp bạn dễ dàng bảo trì PC hơn. Mặc dù vậy, vẫn có một số lợi thế khi sử dụng cách cài đặt chương trình từ mã nguồn.

Mã nguồn luôn có phiên bản mới nhất của phần mềm

Nhược điểm của việc tạo chương trình đó là nó mất nhiều thời gian để cải thiện và sửa chữa. Kết quả là, bạn có thể sẽ phải sử dụng phiên bản cũ hơn của một phần mềm. Với những ai luôn yêu thích sự mới mẻ, có lẽ họ sẽ chọn phương án cài đặt từ mã nguồn.

Vì binary package thường được lấy ra từ phiên bản chính thức của nhiều phần mềm, vậy nên những thay đổi giữa các phiên bản thường không được chú trọng. Bạn sẽ thấy lợi ích của vấn đề này ngay lập tức khi cài đặt chương trình nguồn tự biên soạn.

Thứ Hai, 13/07/2020 10:30
31 👨 1.232
0 Bình luận
Sắp xếp theo
    ❖ Linux