Làm thế nào các gói thực sự được cài đặt thông qua cài đặt apt-get?


29

Khi sử dụng apt-get installphương pháp để cài đặt một gói lên Ubuntu, có sự khác biệt cơ bản nào giữa việc lấy mã nguồn cho gói đó và xây dựng nó từ đầu không? Có phải apt-get installchức năng chỉ đơn giản là tải nguồn và xây dựng nó trên máy của bạn vào một thư mục được chỉ định hoặc có nhiều điều đang diễn ra sau hậu trường không?

Cuối cùng (có lẽ điều này không có câu trả lời) là một phương pháp tốt hơn phương pháp kia? Điều tôi băn khoăn ở đây là việc tự xây dựng nó từ mã nguồn có bất kỳ lợi thế nào không hay tốt hơn là hãy apt-getlàm điều đó?

Câu trả lời:


25

Những ưu điểm của hệ thống quản lý gói như apt, yum, pacman, emerge, v.v. bao gồm:

  • Thật dễ dàng để truy vấn phiên bản nào của gói được cài đặt hoặc có sẵn.
  • Thật dễ dàng để loại bỏ hoàn toàn một gói, đảm bảo tất cả các tệp của nó đã biến mất.
  • Thật dễ dàng để xác minh tính toàn vẹn của các tệp gói, vì vậy bạn có thể xem liệu nó có bị hỏng hoặc giả mạo hay không.
  • Thật dễ dàng để nâng cấp gói bằng cách cài đặt phiên bản mới và xóa tất cả các tệp phiên bản cũ. Điều này sẽ đảm bảo không để lại bất kỳ tập tin còn sót lại nào từ gói cũ xung quanh để gây nhầm lẫn hoặc phá vỡ mọi thứ.
  • Thật dễ dàng để xem các gói yêu cầu hoặc cung cấp những thứ mà các gói khác cung cấp hoặc yêu cầu, vì vậy bạn có thể chắc chắn có các mục cần thiết để gói hoạt động chính xác.
  • Thật dễ dàng để cài đặt hoặc gỡ bỏ các nhóm gói.
  • Trong nhiều trường hợp, có thể hạ cấp trở lại phiên bản trước của gói, ví dụ khi phiên bản mới có lỗi.

Mặc dù nó dành cho Fedora, xem thêm:

https://fedoraproject.org/wiki/Package_manler_system

Cài đặt từ nguồn có thể có lợi thế

  • Bạn có thể tùy chỉnh các tệp nhị phân (bật / tắt tùy chọn)
  • Gói cập nhật hơn sau đó có sẵn trong kho
  • Đôi khi cần thiết để sửa lỗi

Nhưng nhược điểm là sau đó bạn sẽ phải cập nhật gói thủ công khi có phiên bản mới và bạn sẽ thường xuyên mất hỗ trợ.

IMO nếu bạn muốn biên dịch tất cả hoặc hầu hết các gói của bạn, tôi sẽ khuyên Gentoo.


1
Để làm rõ câu trả lời xuất sắc này, nếu bạn tự biên dịch, Trình quản lý cập nhật sẽ không được biết và do đó sẽ không cập nhật ứng dụng cho bạn khi các bản cập nhật được phát hành. Ngoài ra, apt (trình quản lý gói được chọn của Ubuntu) không biên dịch; nó tải các tệp nhị phân đã sẵn sàng. Cuối cùng, apt tự động duy trì hệ thống menu của bạn khi bạn cài đặt hoặc gỡ bỏ chương trình. Khi bạn tự biên dịch, bạn sẽ phải tự làm điều đó.
Paddy Landau

1
Một lợi thế nhỏ khác thường tự biên dịch các gói là chúng sẽ được biên dịch với nhiều kiến ​​thức hơn về phần cứng chính xác của bạn và có thể chạy nhanh hơn. Nếu bạn đi theo con đường này, hãy xem xét sử dụng checkinstall. asic-linux.com.mx/~izto/checkinstall Nó theo dõi những gì đã được cài đặt và giúp xóa sạch nó sau này nếu cần thiết.
Joe

Tôi đứng sửa về phần chạy nhanh hơn.
Joe

18

Apt-get là tiện ích xử lý gói APT (CLI), back-end thành SynapticAptitude .

Phương thức apt-get khi kích hoạt từ hệ thống của bạn kiểm tra các nguồn hoặc kho chính thức được liệt kê trong tệp

etc/apt/sources.list

Ví dụ. khi chạy (mà tôi sử dụng) , chạy một cái gì đó nhưsudo apt-get update && sudo apt-get upgrade

nhập mô tả hình ảnh ở đây

trong đó Ign (Bỏ qua) ở phía trước Liên kết nói rằng không có thay đổi nào được thực hiện kể từ lần truy cập trước vào kho lưu trữ đó và Nhận trạng thái truy xuất tệp Nguồn cho biết các thay đổi của gói mới có sẵn trong Kho lưu trữ đó.

Không, tiện ích apt-get không tải xuống Tệp nguồn , thay vào đó, tải xuống gói .deb được đóng gói và phát hành bởi Gói chính thức Ubuntu đã được kiểm tra về Tính ổn định và Tích hợp với hệ thống của bạn.

Các gói tải xuống apt-get có thể được tìm thấy trong

/var/cache/apt

nơi bạn có thể xem tất cả các Updatesnhư các gói .deb , và thậm chí bạn có thể so sánh để vượt qua kiểm tra phiên bản của họ bằng cách truy cập này chính xác cập nhật gói .

Theo như Biên dịch từ các gói nguồn có liên quan, không nên và thậm chí không được đề xuất cho Ubuntu 12.04 vì đây là Bản phát hành LTS, bạn có thể xem các lý do tại đây

Là tốt hơn để biên dịch từ nguồn hoặc cài đặt từ gói .deb?

Sẽ biên dịch các chương trình từ nguồn tăng tốc hệ điều hành của tôi?

Ưu điểm / nhược điểm của việc cài đặt từ mã nguồn

Để tham khảo thêm: apt-get , nguồn.list .


Trên thực tế, 3 chương trình, apt-get, aptitude và synap là những phần cuối chodpkg
Javier López

1
Năng khiếu là front-end cho dpkg . Trong khi đó dpkg có thể được sử dụng làm giao diện người dùng cho dpkg-debdpkg-query
atenz

2

Nếu bạn xây dựng từ nguồn, bạn có nhiều tùy chọn hơn trong những gì được bao gồm. Cài đặt từ apt-getchỉ cài đặt một gói dựng sẵn.

Đối với cái nào tốt hơn, nó phụ thuộc vào những gì bạn cần nó cho. Tôi chưa bao giờ cần phải biên dịch từ nguồn nhưng tôi không làm gì quá rộng trên máy tính xách tay Ubuntu của mình.


Vì vậy, apt-get không xây dựng bất cứ điều gì - chỉ cần tải về bản chất nhị phân?
nhà toán

3
Chính xác. Đó là tải xuống tệp nhị phân dựng sẵn cho kiến ​​trúc của bạn (amd64, i386, armel, v.v.).
tgm4883

2

Tôi nghĩ bạn có thể sử dụng apt-get để cài đặt nguồn gói.

  1. Bạn cần kích hoạt kho mã nguồn

    Mở tệp /etc/apt/source.list, bạn sẽ thấy các dòng nhận xét (bắt đầu bằng #) có "nguồn" trên chúng.

    Bỏ sót họ

  2. Cài đặt các phụ thuộc của chương trình bạn muốn:

    sudo apt-get build-dep "program"

  3. Tải xuống và biên dịch chương trình của bạn:

    sudo apt-get -b source "program"

Sau đó, bạn nhận được một gói .deb trên thư mục nhà của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.