Làm thế nào để cập nhật hoạt động với các chương trình được cài đặt từ tệp .deb


11

Tôi đang gặp một số khó khăn chính xác là làm thế nào toàn bộ bản cập nhật hoạt động trong Ubuntu và thực hành tốt để cài đặt phần mềm.

Tôi hiểu rằng tôi có một /etc/apt/sources.listtệp trong đó tất cả các kho lưu trữ của tôi được liệt kê và các kho lưu trữ này được truy vấn khi tôi sử dụng apt-get update- để sau này được sử dụng với ví dụ
apt-get upgrade. Điều này có ý nghĩa hoàn hảo và gần đây tôi đã cài đặt spotifybằng cách thêm
deb http://repository.spotify.com stable non-freevào danh sách "nguồn" này.

Nhưng rồi tôi bối rối ...

Khi tôi tải xuống Google Chrome, tôi chỉ phải tải xuống và lấy một .debtệp và Chrome được cài đặt không có vấn đề gì ... nhưng tôi không thấy bất kỳ mục mới nào trong /etc/apt/sources.list...

Vậy làm thế nào để apt-get updatebiết nơi truy vấn liên quan đến các bản cập nhật Chrome? Có phải nó đã được thêm vào một trong những kho đã được liệt kê trong tệp nguồn không?

Tôi muốn tất cả các phần mềm đã cài đặt của tôi được bao gồm bởi chức năng cập nhật.

Câu trả lời:


10

Đây thực sự là loại phức tạp. Thứ nhất, aptlà một front-end để dkpgmà thực sự xử lý cài đặt / gỡ bỏ gói. Vì vậy, /etc/apt/sources.list(và bất kỳ tập tin trong /etc/apt/sources.list.d/) được đọc bởi apt, không dpkg.

Bây giờ, khi bạn tải xuống một .debtệp theo cách thủ công, bạn sẽ bỏ qua aptvà sẽ sử dụng dpkg -i packagename.debđể cài đặt nó thay thế. Điều này có nghĩa là cơ sở dữ liệu của apt sẽ không được cập nhật và apthệ thống sẽ không có kiến ​​thức về gói bạn đã cài đặt. Nói cách khác, apt-get upgradesẽ không bao giờ cập nhật bất kỳ gói cài đặt thủ công.

Đã nói rằng, chromethực sự là một ngoại lệ cho quy tắc. Khi bạn đi đến trang tải xuống của nó, bạn sẽ thấy thông báo này:

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

Ở phía dưới là ghi chú này:

Lưu ý: Cài đặt Google Chrome sẽ thêm kho lưu trữ của Google để hệ thống của bạn sẽ tự động cập nhật Google Chrome. Nếu bạn không muốn kho lưu trữ của Google, hãy thực hiện cảm ứng sudo touch / etc / default / google-chrome trước khi cài đặt gói.

Điều này có nghĩa là .debgói bao gồm một tập lệnh sẽ thêm kho lưu trữ của Google vào hệ thống của bạn (cụ thể, nó sẽ tạo một tệp tại /etc/apt/sources.list.d/) do đó đảm bảo rằng nó chrome sẽ được cập nhật khi bạn sử dụng apt-get.


Ok, có ý nghĩa ... nhưng có cách nào để dễ dàng quản lý các bản cập nhật cho tất cả các gói được cài đặt thủ công của tôi không?
Kir sở thích

2
@Morten không, đó chính xác là lý do tại sao aptvv tồn tại, nếu bạn bước ra ngoài hệ thống đó, bạn sẽ tự mình làm. Có những thủ thuật nhưng hiếm khi đáng để bỏ công sức cho một vài gói bạn có thể cài đặt thủ công.
terdon

1
Trình quản lý gói thực sự không quan tâm liệu gói đã được cài đặt bởi dpkg hay apt. Nếu nó tìm thấy một phiên bản mới hơn của một gói trong kho mà phiên bản mới hơn được cài đặt.
Florian Diesch

@FlorianDiesch có, tất nhiên. Quan điểm của tôi là về các gói không có trong kho.
terdon

1

tìm kiếm apt trong các nguồn được liệt kê trong /etc/apt/sources.listvà tất cả các tập tin trong /etc/apt/source.list.d. Bạn sẽ có một tệp như google-chrome.listtrong /etc/apt/sources.list.dđó sẽ có dòng sau:

deb http://dl.google.com/linux/chrome/deb/ stable main

Điều này được sử dụng làm nguồn để cập nhật google-chrome.

Khi bạn tải xuống tệp gỡ lỗi cho google-chrome theo cách thủ công và cài đặt nó, một tập lệnh trong tệp gỡ lỗi đã tạo tệp này, do đó bạn không phải tìm kiếm cập nhật theo cách thủ công.

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.