Apt-get - thiếu -fix làm gì và khi nào nó hữu ích?


37

Từ trang người đàn ông:

-m, --ignore-missing, --fix-missing
  Ignore missing packages; if packages cannot be retrieved or fail the integrity 
  check after retrieval (corrupted package files), hold back those packages and 
  handle the result. 

  Use of this option together with -f may produce an error in some situations. If a 
  package is selected for installation (particularly if it is mentioned on the 
  command line) and it could not be downloaded then it will be silently held back. 

 Configuration Item: APT::Get::Fix-Missing.

Điều này thật khó hiểu:

  1. Làm thế nào có thể 'bỏ qua mất tích' và 'sửa lỗi bị thiếu' là từ đồng nghĩa cho cùng một tùy chọn?
  2. "Giữ lại" có nghĩa là gì trong bối cảnh này?
  3. "Xử lý kết quả" nghĩa là gì?

Và trong tình huống nào nó hữu ích? Khi bạn cố gắng cài đặt một gói không có trong chỉ mục apt, bạn sẽ nhận được thông báo này:

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Là hai gợi ý ( apt-get update, apt-get install --fix-missing...) hoàn toàn tương đương?


Đúng, thật lạ. Tôi luôn nghĩ đó --fix-missinglà từ đồng nghĩa của -f. Tuy nhiên, hành vi phải giống như của Synaptic: cố gắng cập nhật chỉ các gói được tải xuống.
Danatela

Câu trả lời:


34

Ok, theo thứ tự:

  • (1) -m bỏ qua việc thiếu hoặc sửa các gói bị thiếu (trái ngược với các gói bị hỏng -f ). Các tùy chọn này là từ đồng nghĩa cho cùng một tùy chọn. (Vì để sửa nó bỏ qua từ đây, nó có tính kỳ lạ của riêng nó :-))
  • (2-3) Khi bạn cài đặt / nâng cấp cùng apt-get upgradehoặc với apt-get install somepackage, thường thì apt cố cập nhật các phụ thuộc. Điều này có nghĩa là có thể thấy rằng một số gói cần các phiên bản mới hoặc cập nhật của các gói hiện có, v.v. trong một loạt các phụ thuộc. Nếu một số gói bị thiếu hoặc không kiểm tra tính toàn vẹn, có vẻ như nó sẽ tạm dừng gói này và muốn bạn xử lý kết quả theo phương thức xử lý của gói yêu cầu, nếu có thể. Thường thì nó dừng cài đặt gói này.
  • (4) Với apt-get updatebạn tải xuống những gì cần thiết để xây dựng lại danh sách các phụ thuộc.
    Sau đó, bạn có thể thử apt-get install --fix-missinglại, với hy vọng rằng danh sách được cập nhật sẽ tự khắc phục sự cố.
    Điều này đôi khi có thể rất hữu ích, chẳng hạn như khi bạn thêm nguồn cho các gói trong /etc/atp/sources.listhoặc khi các tệp chỉ mục gói đã được cập nhật.

Không phải tất cả các chương trình bạn có thể sử dụng trong Ubuntu đều đến từ kho chính thức của Ubuntu và được cập nhật với cùng các phiên bản - điều này rất hiếm.

Ngoài ra, có nhiều lý do khiến việc cài đặt có thể bị gián đoạn đột ngột (Tín hiệu tắt, thiếu điện, lỗi trình điều khiển đồ họa ...) Trong những tình huống đó, apt-get updatecó thể không hoạt động, vì vậy trước tiên bạn cần khắc phục sự cố với apt-get install --fix-missinghoặc với một số dpkg lệnh.

Bạn có thể xem apt-get install --fix-missingnhư một phiên bản nhẹ nhàng và thân thiện của các lệnh như dpkg-reconfigure --allhoặc dpkg.


36
Điều này đã được nâng cấp rất nhiều nhưng tôi, đối với một người, không thể hiểu một từ của nó.
LondonRob

-1

Các bước sau đây sẽ giải quyết vấn đề:

  • Cập nhật nameserver 8.8.8.8trong/etc/resolve.conf
  • Chạy sudo apt-get update
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.