Rất có thể tính năng phân biệt nhất của bản phân phối Linux dựa trên Debian (như Ubuntu, Mepis, Knoppix, vv) là hệ thống gói của họ - APT. Còn được gọi là Công cụ trọn gói nâng cao, APT được giới thiệu lần đầu tiên trong Debian 2.1 vào năm 1999. APT không phải là một chương trình cụ thể vì nó là một tập hợp các gói liên quan riêng biệt.

Với APT, Linux đã đạt được khả năng cài đặt và quản lý các gói phần mềm theo cách đơn giản và hiệu quả hơn nhiều so với trước đây. Trước khi giới thiệu, hầu hết phần mềm phải được cài đặt bằng cách biên dịch mã nguồn theo cách thủ công hoặc sử dụng các gói riêng lẻ không có xử lý phụ thuộc tự động (chẳng hạn như tệp RPM). Điều này có thể có nghĩa là giờ "địa ngục phụ thuộc" ngay cả khi cài đặt một chương trình khá tầm thường.

Trong bài viết này, chúng tôi sẽ nêu bật một số tính năng tốt nhất của APT và chia sẻ một số tính năng ít được biết đến của APT và dpkg em họ của nó. Tin tưởng rằng nó hay không, APT thậm chí có thể được sử dụng để giải quyết các câu đố Sodoku!

dpkg

Cơ sở của hệ thống gói Debian là dpkg. Nó thực hiện tất cả các chức năng cấp thấp của cài đặt phần mềm. Nếu bạn quá nghiêng, bạn có thể sử dụng dpkg một mình để quản lý phần mềm của bạn. Nó có thể cài đặt, xóa và cung cấp thông tin về bộ sưu tập phần mềm của hệ thống của bạn. Dưới đây là một số tính năng yêu thích của tôi.

Cài đặt cơ bản tệp cục bộ

Một số tác giả phần mềm tạo ra các gói Debian của các chương trình của họ, nhưng không cung cấp một kho lưu trữ cho APT để tìm nạp. Trong trường hợp này, họ chỉ cung cấp tệp .deb có thể tải xuống. Điều này rất giống với gói RPM, hoặc thậm chí các tệp .msi của Windows. Nó chứa tất cả các tập tin và thông tin cấu hình cần thiết để cài đặt chương trình. Để cài đặt chương trình từ tệp .deb, bạn chỉ cần

dpkg -i MyNewProgram.deb

-i, như bạn có thể đoán, nói với dpkg để cài đặt phần mềm này.

Liệt kê nội dung của một gói

Bạn có thể thấy mình, sau khi cài đặt một chương trình, không thể tìm ra cách để chạy chương trình đó. Đôi khi, bạn cần phải biết nơi để tìm các tập tin cấu hình cho trò chơi mới của bạn. Dpkg cung cấp một cách dễ dàng để liệt kê tất cả các tệp thuộc về một gói cụ thể.

dpkg -L MyNewProgram

Lưu ý rằng trường hợp quan trọng. -L và -l là các tùy chọn hoàn toàn khác nhau.

Thông thường, một gói có quá nhiều tệp, có thể khó sàng lọc qua danh sách để tìm (những) thứ bạn đang tìm kiếm. Nếu đúng như vậy, chúng ta có thể sử dụng grep để lọc kết quả. Lệnh sau cũng giống như trên, nhưng chỉ hiển thị kết quả có “bin” trong đường dẫn, chẳng hạn như / usr / bin.

dpkg -L MyNewProgram | grep bin

Tôi thậm chí sẽ không bắt đầu đi vào sức mạnh tuyệt vời đó là grep, nhưng ở dạng đơn giản nhất của nó nó có thể được sử dụng, như trên, để nhanh chóng và dễ dàng lọc đầu ra của chương trình.

Tìm chủ sở hữu tệp

Thỉnh thoảng, bạn thấy mình trong tình huống ngược lại phần trên. Bạn có một tập tin, nhưng bạn không biết nó thuộc về cái gì. Một lần nữa, dpkg có bạn bảo hiểm.

dpkg -S mysteryfile.cfg

Điều này sẽ cho bạn biết gói nào được tạo / sở hữu tệp đó.

Liệt kê những gì bạn đã cài đặt

Giả sử bạn sắp cài đặt lại hệ thống của mình và bạn muốn biết chính xác những gì bạn đã cài đặt. Bạn có thể mở một ứng dụng như Synaptic và thiết lập một bộ lọc để hiển thị tất cả mọi thứ được đánh dấu là "cài đặt", hoặc bạn có thể làm điều đó một cách nhanh chóng và dễ dàng từ dòng lệnh với dpkg.

dpkg -l

hoặc là

dpkg --get-selections

Điều đó sẽ cung cấp cho bạn một danh sách dài lớn về mọi thứ bạn đã cài đặt. Người dùng cấp cao có thể sử dụng các lệnh này để tạo tệp văn bản có tất cả các gói được liệt kê, có thể được cấp vào APT sau để cài đặt lại mọi thứ cùng một lúc!

Định cấu hình lại gói

Khi gói .deb được cài đặt, nó sẽ trải qua một vài giai đoạn. Một trong số đó là giai đoạn cấu hình, nơi các nhà phát triển có thể đặt một loạt các hành động diễn ra khi tất cả các tệp đã được cài đặt vào một vị trí thích hợp. Điều này bao gồm những thứ như dịch vụ bắt đầu / dừng hoặc tạo nhật ký hoặc những thứ khác như vậy. Đôi khi bạn cần phải lặp lại các bước đó, mà không phải trải qua toàn bộ quá trình cài đặt lại. Đối với điều đó, bạn sử dụng:

dpkg-reconfigure (packagename)

Điều này sẽ làm lại tất cả các bước cài đặt sau cần thiết cho gói đó mà không buộc bạn phải cài đặt lại. Tin tôi đi, cái này có ích.

Aptitude / Apt-get

Có một số cuộc tranh luận và nhầm lẫn về hai công cụ này. Nhiều người dùng Linux gặp khó khăn khi nói khi nào / tại sao lại sử dụng cái kia, vì chúng gần như giống nhau.

Câu trả lời ngắn gọn: sử dụng Aptitude.

Câu trả lời dài: Cả hai đều có thể được sử dụng để quản lý tất cả việc gỡ cài đặt phần mềm và cả hai đều sẽ làm tốt công việc. Nhóm Debian đã chính thức đề xuất sử dụng Aptitude. Nó không phải là nó tốt hơn nhiều so với apt-get, nhưng nó tốt hơn một chút, theo nhiều cách. Bạn có thể sử dụng một và nó sẽ đáp ứng nhu cầu quản lý gói của bạn, nhưng không trộn và kết hợp trên cùng một hệ thống. Chọn một và gắn bó với nó.

Tìm gói phù hợp

Tôi thường thấy mình cần phần mềm để làm một điều gì đó, nhưng tôi không biết tên của bất kỳ chương trình nào để làm điều đó. Ví dụ, tôi có thể cần một người chơi FLAC, nhưng không biết người chơi sẽ làm việc gì…

Aptitude:

aptitude search flac

APT cổ điển:

apt-cache tìm kiếm flac

Bạn sẽ nhận được một danh sách các gói có sẵn có "flac" trong tên hoặc mô tả.

Ngăn chặn gói cập nhật

Trong một số trường hợp, tôi có một phiên bản của một gói mà tôi muốn giữ mặc dù có thể có các nâng cấp. Khi nói đến hạt nhân của tôi, ví dụ, tôi muốn cập nhật bằng tay.

Aptitude:

nắm giữ aptitude (packagename)

dpkg:

echo "(packagename) hold" | dpkg --set-selections

Nâng cấp

Cả Aptitude và APT cổ điển đều cung cấp hai phương pháp nâng cấp hệ thống của bạn: nâng cấpnâng cấp . Đây là một điều khác gây ra một số nhầm lẫn. Nâng cấp là bản nâng cấp, phải không? Không hẳn là chính xác lắm.

Việc nâng cấp thường xuyên sẽ đọc danh sách các gói của bạn, kiểm tra trực tuyến các phiên bản mới hơn và cài đặt chúng khi cần. Tuy nhiên, nó sẽ KHÔNG thực hiện bất kỳ nâng cấp nào sẽ yêu cầu các gói mới được cài đặt, hoặc các gói hiện có đã được gỡ bỏ. Đây là những gì dist-upgrade là cho. Nó sẽ nhận được mọi phiên bản mới hơn nó tìm thấy, ngay cả khi nó liên quan đến việc cài đặt một cái gì đó mới (chẳng hạn như một phụ thuộc) hoặc loại bỏ một gói hiện có (nếu nó lỗi thời hoặc không còn cần thiết).

Aptitude:

aptitude safe-upgrade
aptitude full-upgrade

APT cổ điển:

apt-get upgrade
apt-get dist-upgrade

Tìm hiểu về một gói

Cuối cùng, một số lần bạn chỉ cần biết một chút về một gói. Phiên bản đó là gì? Ai duy trì nó? Nó đã được cài đặt chưa? Tất cả những điều này và nhiều hơn nữa bạn có thể tìm thấy với:

Aptitude:

chương trình aptitude (packagename)

APT:

apt-cache showpkg (packagename)

Tất cả các chương trình được đề cập ở đây đều có khả năng vượt xa so với tôi đã trình bày. Những lời khuyên ở đây nên đi một chặng đường dài trong việc giúp bạn sử dụng hệ thống gói tuyệt vời này với tiềm năng đầy đủ của nó.

Ngoài ra, đối với những người có kiên nhẫn để đọc tất cả các cách để kết thúc,

apt-get moo