Computer >> Máy Tính >  >> Hệ thống >> Linux

Gói nhị phân so với nguồn:Bạn nên sử dụng gói nào?

Bất kể trình quản lý gói bạn sử dụng là gì, có hai cách cài đặt chương trình trên Linux. Bạn sử dụng gói được tạo sẵn hoặc bạn tự biên dịch chương trình. Ngày nay, phần mềm trước đây thường thắng theo mặc định, nhưng đôi khi bạn có thể muốn xem xét việc biên dịch từ nguồn coude.

Gói nhị phân là gì?

Gói nhị phân so với nguồn:Bạn nên sử dụng gói nào?

Cài đặt chương trình trên Linux thường khá khác so với cách cài đặt phần mềm truyền thống trên Windows. Thay vì tải xuống trình cài đặt từ trang web của nhà cung cấp, các tệp đến từ một kho các chương trình thường được điều chỉnh cho phù hợp với bản phân phối Linux của bạn. Bạn truy cập kho lưu trữ này bằng trình quản lý gói Linux hoặc cửa hàng ứng dụng Linux.

Các tệp tạo nên các chương trình trong các kho này có định dạng lưu trữ. Điều này gói mọi thứ vào một tệp 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 các chương trình. Các gói này được gọi là gói nhị phân .

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

Các gói hàng đến từ đâu?

Tất cả phần mềm bao gồm các dòng văn bản được gọi là mã nguồn, được viết bằng các ngôn ngữ lập trình cụ thể, chẳng hạn như C hoặc C ++. Nói chung, bạn không thể chỉ gói mã nguồn này vào một kho lưu trữ và gọi nó là một gó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à thực thi.

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

Cài đặt "Từ nguồn" là gì?

Gói nhị phân so với nguồn:Bạn nên sử dụng gói nào?

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

Thông thường, bạn có thể tải xuống mã nguồn của dự án từ các dịch vụ lưu trữ như GitHub, GitLab hoặc Bitbucket. Các chương trình lớn hơn thậm chí có thể lưu trữ mã nguồn trên một trang web cá nhân. Mã thường sẽ được nén ở định dạng lưu trữ (còn được gọi là gói nguồn ).

Một bộ công cụ đặc biệt giúp tự động hóa quá trình xây dựng. Trên máy tính để bàn Linux, điều này thường xuất hiện dưới dạng một chương trình dòng lệnh được gọi là 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 dịch và lệnh cụ thể để thay đổi chúng thành các mã nhị phân. Chương trình tạo tự động hóa quá trình này.

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

Ví dụ về tòa nhà "Từ nguồn"

Ví dụ:lệnh dưới đây tạo tệp cấu hình cho Bộ Office Calligra bằng CMake. Tệp được tạo yêu cầu chương trình thực hiện chỉ biên dịch thành phần Writer của Calligra.

cmake -DPRODUCTSET=WORDS -DCMAKE_INSTALL_PREFIX=$HOME/kde/inst5 $HOME/kde/src/calligra

Sau khi thực hiện điều này, tất cả những gì một người phải làm là chạy công cụ tạo để biên dịch và sao chép kết quả vào máy tính của họ. Điều này được thực hiện theo cách sau:

make
make install

Mặc dù đây là kiểu chung để biên dịch chương trình, nhưng có nhiều cách khác để cài đặt gói nguồn. Ví dụ như Gentoo Linux, có một cách tích hợp để xử lý vấn đề này, giúp quá trình này nhanh hơn và dễ dàng hơn nhiều. Tuy nhiên, việc xây dựng các gói nhị phân cần nhiều bước hơn chỉ với các lệnh trên.

Lợi ích của việc Sử dụng Gói Nhị phân

Nếu bạn đang sử dụng Linux, rất có thể ai đó đã biên dịch trước phần mềm bạn đã cài đặt. Điều này đã trở nên phổ biến hơn nhiều so với việc sử dụng các gói nguồn. Nhưng tại sao?

Các phiên bản nhị phân dễ quản lý hơn

Gói nhị phân so với nguồn:Bạn nên sử dụng gói nào?

Các gói nhị phân chứa nhiều thứ hơn là chỉ các tệp cài đặt được biên dịch. Chúng cũng lưu trữ thông tin giúp người quản lý gói của bạn dễ dàng theo dõi tất cả các chương trình của bạn. Ví dụ:tệp DEB (định dạng gói cho Debian và các dẫn xuất Debian) cũng chứa thông tin quan trọng như phần mềm khác mà chương trình cần chạy và phiên bản hiện tại của nó.

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

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

Phiên bản nhị phân đã cải thiện độ ổn định

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

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

Một số chương trình cũng dựa vào các phiên bản khác nhau của cùng một phần mềm phụ thuộc để chạy. Kho lưu trữ gói làm hết sức mình để giải quyết những xung đột này, vì vậy bạn không phải lo lắng về điều này.

Lợi ích của việc biên dịch các gói nguồn

Cài đặt các chương trình từ nguồn không phải là điều mà mọi người cần phải làm, vì nói chung việc bảo trì PC của bạn sẽ dễ dàng hơn nếu bạn gắn bó với các gói nhị phân. Mặc dù vậy, vẫn có một số lợi ích khi sử dụng cách cài đặt chương trình liên quan hơn một chút này.

Mã Nguồn Cung cấp Phần mềm Mới nhất

Một nhược điểm của việc làm cho các chương trình trở nên đáng tin cậy hơn là cần có thời gian để cải thiện và sửa chữa. Do đó, điều này có thể dẫn đến việc bạn sử dụng các phiên bản phần mềm cũ hơn. Đối với những người muốn những thứ mới nhất và tuyệt vời nhất, họ thậm chí có thể thích một chút bất ổn để đổi lấy nó.

Trong khi có những hệ điều hành Linux phục vụ cho nhu cầu này mà không cần biên dịch chương trình, chúng có một vài nhược điểm. Ví dụ:phần mềm không thường xuyên phát hành các phiên bản gói đã đặt sẽ khó được cập nhật trong kho lưu trữ hơn là cài đặt từ nguồn.

Điều này là do các gói nhị phân thường được tạo từ các bản phát hành chính thức của chương trình. Do đó, những thay đổi giữa các phiên bản này thường không được tính đến. Bằng cách biên dịch phần mềm của riêng bạn từ nguồn, bạn có thể hưởng lợi ngay lập tức từ những thay đổi này.

Cũng có thể hệ điều hành Linux của bạn không có phần mềm bạn muốn được tạo sẵn cho bạn. Nếu đúng như vậy, cài đặt nó từ nguồn là lựa chọn duy nhất của bạn.

Bạn có thể chọn và chọn

Gói nhị phân so với nguồn:Bạn nên sử dụng gói nào?

Một lợi ích khác khi sử dụng gói nguồn là bạn có nhiều quyền kiểm soát hơn đối với các chương trình mà bạn cài đặt. Khi cài đặt từ kho lưu trữ nhị phân, bạn bị hạn chế về những cách bạn có thể tùy chỉnh các gói của mình.

Ví dụ, hãy xem FFmpeg, công cụ chuyển đổi âm thanh và video dựa trên dòng lệnh. Theo mặc định, nó đi kèm với một số lượng lớn các tính năng, một số tính năng mà bạn có thể không bao giờ chạm tới. Ví dụ:hỗ trợ âm thanh JACK có sẵn trong FFmpeg, mặc dù phần mềm này thường chỉ được sử dụng trong môi trường sản xuất.

Việc biên dịch FFmpeg cho phép bạn loại bỏ những thứ bạn không muốn khỏi nó, để nó nhẹ hơn và phù hợp với nhu cầu của bạn. Và điều tương tự cũng áp dụng cho các chương trình hạng nặng khác.

Khi tài nguyên khan hiếm, loại bỏ các tính năng có thể là một cách tuyệt vời để giảm tải. Không có gì lạ khi Chrome OS, được tìm thấy trên nhiều máy tính cấp thấp, dựa trên Gentoo Linux. Gentoo, dựa trên nguồn, biên dịch rất nhiều phần mềm của nó, có khả năng làm cho các hệ thống này chạy nhẹ hơn nhiều.

Tại sao không cài đặt với cả hai?

Mặc dù bạn có thể sẽ không muốn biên dịch các gói hàng ngày, nhưng đó là điều hữu ích cần ghi nhớ. Điều đó nói rằng, với các định dạng gói phổ quát mới có sẵn từ các trang web như Snap Store và Flathub, bạn ít có khả năng cần phải xây dựng từ nguồn để có được phần mềm mới nhất.