Quản lý gói & phụ thuộc
Hầu hết các bản phân phối Linux sử dụng trình quản lý gói để cài đặt và gỡ bỏ phần mềm. Trình quản lý gói cung cấp một số lợi ích như khả năng sử dụng kho lưu trữ trung tâm mà từ đó (hầu hết) mọi phần mềm có thể được tải xuống, tổ chức các phần mềm thành các gói có thể được cài đặt thành một nhóm gắn kết và các lợi ích chính: tự động xử lý phụ thuộc và theo dõi những thay đổi mà các gói thực hiện để có thể gỡ cài đặt chúng.
Một số phần mềm nhất định có thể yêu cầu một số thư viện hoặc chương trình khác để thực hiện các nhiệm vụ sẽ là dư thừa nếu phần mềm này được triển khai lại trong phần mềm đó. Các gói cho phép biểu hiện của các phụ thuộc này.
Sự khác biệt: định dạng và chiến lược gói
Có tồn tại một số trình quản lý gói khác nhau. Mỗi cái được tạo ra bởi vì những cái hiện có không đáp ứng nhu cầu của một số người. Mỗi trình quản lý gói yêu cầu các gói theo định dạng riêng.
Hơn nữa, các bản phân phối khác nhau có các yêu cầu khác nhau của phần mềm được bao gồm. Có một số phần mềm có thể có các khả năng khác nhau tùy thuộc vào các tùy chọn được đưa ra khi phần mềm được biên dịch từ mã nguồn thành máy thực thi. Một số bản phân phối muốn cung cấp bộ tính năng đầy đủ và trải nghiệm phong phú trong khi những bản phân phối khác muốn cung cấp trải nghiệm gọn gàng và đơn giản nhất có thể, và có tất cả mọi thứ ở giữa. Ngoài ra, bản phân phối có thể quyết định định dạng cấu trúc thư mục khác nhau hoặc sử dụng một hệ thống init khác. Họ có thể quyết định gói phần mềm khác nhau: có thể có một gói được gọi là "dev-utils" trong hai bản phân phối khác nhau, nhưng một phiên bản bao gồmyacc
trong khi người kia thì không. Do những nhu cầu khác nhau này, các bản phân phối chọn biên dịch phần mềm theo những cách khác nhau.
Đây là lý do tại sao ngay cả khi bạn có một gói ở định dạng chính xác cho trình quản lý gói của mình, nó có thể không hoạt động nếu gói được dành cho phân phối khác. Chẳng hạn, gói đó có thể dựa vào yacc
việc được cài đặt và nó thể hiện sự phụ thuộc đó thông qua việc yêu cầu gói "dev-utils", nhưng "dev-utils" của bạn không bao gồm yacc
. Bây giờ có một gói được cài đặt với một phụ thuộc chưa được đáp ứng.
Nó không thực sự là một vấn đề.
Một phần lớn của việc phân phối Linux là duy trì một kho phần mềm trung tâm. Việc phân phối chăm sóc duy trì tất cả điều này cho bạn. Điều này thực sự làm cho nó rất dễ dàng để cài đặt phần mềm. Bạn thường sử dụng trình quản lý gói để tìm kiếm và chọn một số gói, sau đó bảo nó cài đặt chúng; nó sẽ chăm sóc phần còn lại cho bạn. Quá trình cài đặt phần mềm Windows bao gồm săn tìm phần mềm trên các trang web của bên thứ 3, cố gắng xác định vị trí liên kết tải xuống, tải xuống, kiểm tra vi rút và chạy chương trình cài đặt, sau đó hỏi bạn một loạt các câu hỏi không liên quan. Toàn bộ mớ hỗn độn đó không phải là tiêu chuẩn trên Linux.
Các kho lưu trữ không thể bao gồm tất cả mọi thứ
Bây giờ, có thể có trường hợp một phần mềm bạn yêu cầu không có trong kho lưu trữ phân phối của bạn. Các gói được cung cấp bởi một kho lưu trữ phần mềm là một trong những tính năng khác biệt của phân phối. Khi bạn không thể tìm thấy phần mềm bạn cần trong kho lưu trữ phân phối của mình, có ba cách có thể (thực sự, hai cộng với một cách để thực sự làm hỏng mọi thứ).
Kho cộng đồng
Nhiều bản phân phối có kho lưu trữ không chính thức được duy trì bởi những người không liên quan đến phân phối. Ubuntu gọi chúng là PPA, Fedora gọi chúng là Kho lưu trữ nhân dân Fedora. Arch Linux không có tên cụ thể cho kho lưu trữ của bên thứ ba , nhưng nó có AUR, đó là một bộ "công thức" cho các gói (lưu ý: chỉ có một AUR). Trước tiên, bạn có thể thử cài đặt gói từ một trong những nguồn này vì dễ dàng hủy cài đặt chúng nếu chúng không hoạt động.
Biên dịch từ nguồn
Nếu bạn không thể tìm thấy một kho lưu trữ không chính thức với những gì bạn cần, việc biên dịch từ nguồn không khó. Bạn cần cài đặt gói phát triển phân phối của mình; bao gồm những thứ cơ bản như trình biên dịch, trình liên kết, trình phân tích cú pháp và các công cụ khác thường cần để biên dịch phần mềm. Sau đó, bạn tìm thấy mã nguồn của dự án (hầu như luôn được đóng gói trong một .tgz
hoặc .tbz
(được gọi là "tarball"). Tải xuống vào thư mục riêng của nó ở đâu đó, giải nén nó (sử dụng tar -xf filename.tgz
và thường đi vào một thư mục mà nó đã tạo. thư mục đó có thể là một tệp được gọi là README
hoặc INSTALL
. Nếu nó tồn tại, hãy tiếp tục và đọc nó, hầu hết chúng đều bảo bạn làm điều tương tự. Một vài bước tiếp theo được thực hiện tại một dòng lệnh. Chạy ls
và tìm một tệp thực thi được gọi làconfigure
. Nếu nó tồn tại, chạy nó bằng cách làm ./configure
; đôi khi có thể mất vài phút Điều đó thường chạy một số thử nghiệm để tìm ra cách phân phối của bạn có thiết lập mọi thứ và nó đảm bảo bạn có các công cụ cần thiết để biên dịch phần mềm này. Bước tiếp theo là chạy make
. Điều này thực sự biên dịch phần mềm và có thể sẽ mất một chút thời gian - bất cứ nơi nào từ vài phút đến vài giờ tùy thuộc vào kích thước của phần mềm bạn đang biên dịch. Khi đã xong, bạn chạy make install
. Điều này cài đặt phần mềm, bao gồm sao chép các sản phẩm biên dịch vào các vị trí thích hợp trong hệ thống tệp của bạn. Sau đó, phần mềm có sẵn để sử dụng.
Đây là một phần dài, nhưng nó được tóm tắt là "README, ./mình, tạo, thực hiện cài đặt" . Đó là thói quen cần nhớ.
Cài đặt gói từ phân phối khác (không làm điều này)
Tôi liệt kê điều này chỉ bởi vì nó là và thay thế, nhưng nó gần như chắc chắn sẽ không kết thúc tốt. Có thể cài đặt các gói cho các bản phân phối khác và bạn có thể thấy mình muốn làm điều đó. Chà, đừng. Đừng làm điều đó cho đến khi bạn hiểu hệ thống của bạn rất tốt. Trên thực tế, tôi sẽ không đặt bất kỳ lệnh nào ở đây chỉ ra cách thực hiện mặc dù điều đó là có thể. Nếu bạn đến điểm đó có vẻ như đây là tùy chọn duy nhất, đừng cài đặt gói bằng trình quản lý gói; thay vào đó, hãy rút mọi thứ ra khỏi gói và đặt chúng vào hệ thống của bạn một cách thủ công, cùng với các ghi chú về những gì bạn đã làm để bạn có thể hoàn tác nó nếu cần thiết.
Bit dòng lệnh
Một số người thích dòng lệnh vì những lợi thế mà nó mang lại cho họ. Chúng có thể được tóm tắt thành ba điều:
- Dễ tự động hóa
- Tốc độ (so với nhấp chuột khắp nơi trong gui)
- Biểu cảm
Lớn nhất trong số này là tính biểu cảm; có những thứ có thể được thực hiện tại một dòng lệnh không thể có trong giao diện đồ họa.
Cuối cùng, các hướng dẫn dòng lệnh thường được đưa ra trong các diễn đàn hữu ích như diễn đàn này bởi vì việc truyền đạt thông tin chính xác sẽ dễ dàng hơn nhiều so với việc đưa ra các hướng dẫn loại "nhấp-đây-sau-đó-sau-đó".