Có phải sudo apt-get update bắt buộc trước khi cài đặt gói không?


21

Tôi biết mục đích của lệnh cập nhật là gì và tôi chỉ tự hỏi liệu tôi có phải sử dụng nó trước khi cài đặt gói nào không. Điều gì xảy ra nếu tôi không cập nhật quá lâu và cài đặt một số gói quan trọng? Ngoài ra, có bất cứ dịp nào mà không cần phải làm điều đó?

Câu trả lời:


20

Bản sao Ubuntu của bạn có một bản sao riêng của danh sách các gói trong kho của Ubuntu. Khi bạn cài đặt một gói, apt-getđọc danh sách và xác định URL của gói cần tải xuống (thường chứa thông tin phiên bản gói).

apt-get updatecập nhật danh sách gói. Nếu bạn không làm điều đó trước khi cài đặt, apt-getcó thể phàn nàn rằng nó không thể tìm thấy gói trong kho lưu trữ, vì nó đã tính URL dựa trên phiên bản cũ của danh sách (liệt kê một phiên bản cũ hơn của gói).

Tất nhiên, apt-get updatelà cần thiết sau khi bạn đã thay đổi các kho lưu trữ, bởi vì hệ thống cần tải xuống danh sách cho các kho lưu trữ mới.

Điều cần thiết là trước khi nâng cấp các gói đã cài đặt, vì hệ thống không thể biết liệu repo có phiên bản mới của gói hay không, trừ khi nó có bản sao cập nhật của danh sách gói.

Không có lý do để không chạy apt-get updatetrước khi cài đặt một gói. Tuy nhiên, không cần thiết, nếu bạn biết rằng không có phiên bản mới nào của gói đó và các phụ thuộc của nó đã được cung cấp trên gương kể từ lần cuối apt-get update. Một trường hợp đặc biệt của điều này là khi danh sách gói được cập nhật, tức là sau một thời gian ngắn hợp lý kể từ lần cuối cùng apt-get update; điều này có nghĩa là tất cả các gói trên gương đều giống với phiên bản cũ.

Danh sách gói thay đổi bất cứ khi nào một gói được nâng cấp trên gương. Nói chung, không thể dự đoán mức độ thường xuyên thay đổi, mà không tham khảo một vấn đề cụ thể hoặc báo cáo lỗi hoặc không tuân theo sự phát triển của bản phát hành Ubuntu đó.


"Danh sách gói được cập nhật (sau một thời gian ngắn hợp lý kể từ lần cập nhật apt-get cuối cùng" - thời gian ngắn như thế nào? Danh sách gói có thay đổi thường xuyên không? Điều gì có thể thay đổi danh sách gói?
joshreesjones

@ mathguy54 trả lời cập nhật. Trong thực tế, tôi chạy apt-get update bất cứ khi nào tôi gặp lỗi 404 ("không tìm thấy tệp") trong khi tải xuống các gói.
Ignis

"Ubuntu có một bản sao riêng của danh sách các gói trong kho của Ubuntu" - danh sách này nằm ở đâu? Tôi muốn đọc nó. Cám ơn về những thông tin tuyệt vời.
joshreesjones 10/03/2015

@ mathguy54 Bạn có thể đọc các tập tin kết thúc bằng *_Packages dưới /var/lib/apt/lists/với một trình soạn thảo văn bản, tuy nhiên người ta thường không tìm kiếm cao cấp hơn với các công cụ quản lý gói, ví dụ:apt-cache show/policy/etc.
Ignis

3

Bạn không absolutly cần phải sử dụng lệnh cập nhật trước khi bạn cài đặt một gói, nhưng nếu bạn làm không bạn có thể kết thúc việc nâng cấp một gói phần mềm ngay sau khi bạn cài đặt nó.

Ngoài ra, hãy nhớ rằng bạn cần cập nhật hệ thống của bạn thường xuyên. Nếu bạn không máy tính của bạn sẽ gặp rủi ro (bạn sẽ không có bản vá bảo mật mới nhất).


3

Nếu bạn chỉ mới thêm kho lưu trữ phần mềm (kho lưu trữ PPA hoặc Debian), bạn sẽ phải chạy apt-get updateđể thăm dò kho lưu trữ và về cơ bản thêm bất kỳ gói nào trong đó vào danh sách phần mềm có sẵn của APT. Nếu không, APT sẽ không nhận ra tên của gói bạn yêu cầu cài đặt.

Khi cài đặt phần mềm mới thông qua dòng lệnh, bạn nên cập nhật thông tin kho lưu trữ để bạn không cài đặt phần mềm chỉ để phát hiện ra rằng nó đã lỗi thời. Điều này cũng đúng với việc nâng cấp phần mềm.

Nếu bạn sử dụng phương pháp đồ họa để cài đặt hoặc nâng cấp phần mềm, ví dụ như Trung tâm phần mềm Ubuntu hoặc Trình quản lý cập nhật, các máy khách này sẽ tự động kiểm tra các phiên bản mới nhất của gói.

Điều này đang được nói, nếu bạn đang cài đặt một loạt phần mềm và đã chạy một bản cập nhật chỉ vài phút hoặc thậm chí vài giờ trước đó, rất có thể bạn sẽ nhận được phiên bản mới nhất. Tuy nhiên, nếu bạn đang cài đặt loại phần mềm được cập nhật thường xuyên (chẳng hạn như phần mềm alpha / beta hoặc ble-edge), bạn sẽ muốn chạy bản cập nhật trước khi tìm nạp bất cứ thứ gì từ kho lưu trữ của phần mềm đó.

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.