Tiếp tục gặp lỗi khi apt-get gặp phải cài đặt không thể xác định được sự cố gói


11

Khi tôi chạy như sau:

sudo apt-get install vim abcde php5-cli

Nó không thành công với thông báo sau đây là hành vi dự kiến:

E: Không thể xác định vị trí gói abcde`.

Tôi muốn nó cài đặt vimvà ngay cả khi có lỗi trên abcdechỉ cần tiếp tục cài đặt php5-cligói. Có nghĩa là tôi muốn apt-gettiếp tục xuống danh sách, ngay cả khi nó không thể tìm thấy một số gói.

Tôi đã thử:

sudo apt-get install --ignore-missing vim abcde php5-cli

Câu trả lời:


9

Câu trả lời ngắn: Có thể bạn thực sự không muốn làm điều này.

Tại sao vậy? Đã có rất nhiều cuộc thảo luận về chức năng đặc biệt này. Một trong số đó là trong báo cáo lỗi (trùng lặp) nàybáo cáo lỗi được liên kết đến.

Thảo luận tại báo cáo lỗi cũng giải thích rằng "- thiếu dấu hiệu" chỉ áp dụng nếu có vấn đề khi tải xuống một gói nên tồn tại bởi thông tin mà bạn sẽ có. Điều này cũng được giải thích ở đây và trong tài liệu.

Có một cách giải quyết?

Nếu sau khi đọc các nguồn trước đó, bạn vẫn rất chắc chắn rằng bạn muốn làm điều này thì mặt khác, có các tùy chọn (dưới mức tối ưu nhưng khá an toàn) như tùy chọn được chỉ định bởi người dùng "Aleksandr Levchuk" tại đây :

for i in package1 package2 package3; do
  sudo apt-get install $i
done

Hoặc nếu bạn thích thì một lớp lót với sửa đổi tối thiểu:

for i in package1 package2 package3; do sudo apt-get install $i; done

Nếu có nhiều gói, bạn có thể thêm -yđể không yêu cầu xác nhận liên tục:

for i in package1 package2 package3; do
  sudo apt-get install -y $i
done

Hoặc là:

for i in package1 package2 package3; do sudo apt-get install -y $i; done

Hi vọng điêu nay co ich.


Nhân tiện, nếu bạn là người như tôi sử dụng Cá thay vì Bash, trước tiên bạn sẽ cần gõ "bash" để chuyển đổi vỏ. Sau đó sao chép và dán lệnh vì một số lý do, nó sẽ không hoạt động với vỏ Cá. Hoạt động tốt với Bash.
Ev-

1

Một cách để phá vỡ điều này là gọi apt-get một lần cho mỗi gói :

echo package1 package2 package3 | xargs -n 1 sudo apt-get install -y

Hoặc là một chức năng

function install_ignore_fail { echo "$*" | xargs -n 1 sudo apt-get install -y; }

install_ignore_fail package1 package2 package3
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.