Tôi đã tìm thấy một bài đăng của David Kalnischkies trong bài đăng trên blog của
UNDO APT-GET BUILD-DEP (XÓA BÊN PHỤ THUỘC XÂY DỰNG)
Đối với những người không biết, David là người duy trì apt chính, và đã như vậy kể từ năm 2009 hoặc sau đó, vì vậy đây là một vụ cá cược an toàn mà anh ta biết mình đang nói về điều gì.
DonKult • 3 năm trước
Trước khi bạn thử dòng lệnh điên rồ này, hãy thử tùy chọn này: APT :: Get :: Build-Dep-Automatic
như trong apt-get build-dep -o APT :: Get :: Build-Dep-Automatic = true srcpkg1 srcpkg2
Nếu điều đó phù hợp với bạn và bạn muốn có nó vĩnh viễn: echo APT :: Get :: Build-Dep-Automatic "true"; > /etc/apt/apt.conf.d/99markbuilddepauto
Tôi không nhớ phiên bản APT nào đã được thêm vào, nhưng nó phải đủ tuổi cho ít nhất một vài phiên bản ub Ubuntu phát hành btw: Giá trị mặc định đã được chuyển thành "false" vào 2009 / 02-09 trong ub Ubuntu.
Ồ, và chỉ dành cho bản ghi: Insane, bởi vì nó cài đặt khả năng sử dụng cùng chức năng đã được cung cấp bởi một ứng dụng đã cài đặt được cung cấp với APT: apt-mark.
Nhưng như mọi khi, với 6 giờ mã hóa, bạn có thể tránh đọc các trang trong 5 phút.
Vì thế,
apt-get build-dep -o APT::Get::Build-Dep-Automatic=true srcpkg1 srcpkg2...
có lẽ là một cách hợp lý để đi Tôi không có ý tưởng tùy chọn này tồn tại. Cho đến bây giờ tôi đã không thể tìm thấy nó trong tài liệu apt. Tôi sẽ cập nhật nếu tôi làm.
Tuy nhiên, cũng lưu ý rằng khả năng báo cáo lỗi Debian : APT :: Get :: Build-Dep-Automatic không được vinh danh . Tiêu đề nói lên tất cả.
CẬP NHẬT: Đã thử nghiệm điều này, nó dường như không hoạt động. tôi đã làm
# apt-get build-dep -o APT::Get::Build-Dep-Automatic=true g++
và sau đó
# apt-get autoremove
nhưng nó không trả lại gì cả. Có lẽ tôi đang thiếu một cái gì đó. Tôi sẽ để câu trả lời này một mình trong lúc này.
CẬP NHẬT 2: Tôi thấy trong /var/lib/apt/extended_states
đó các gói được đánh dấu chính xác là Auto-Installed: 1
. Vì vậy, tôi phải sử dụng autoremove
sai.
CẬP NHẬT 3: Đã thử
# apt-get build-dep -o APT::Get::Build-Dep-Automatic=true coreutils
và lần này
# apt-get autoremove
gỡ cài đặt dh-buildinfo gperf libacl1-dev libattr1-dev
chính xác.
Vì vậy, tại sao các nỗ lực trước đó không hoạt động? Tôi không chắc, nhưng giả thuyết - các gói cấp cao nhất cung cấp các gói ảo được yêu cầu bởi các gói được cài đặt thủ công. Vì thế
gcj-jre-headless
Provides: java-gcj-compat-headless, java-runtime-headless, java-virtual-machine, java1-runtime-headless, java2-runtime-headless, java5-runtime-headless
và
ant
Depends: default-jre-headless | java5-runtime-headless | java6-runtime-headless | java7-runtime-headless, libxerces2-java
Vì vậy, có một sự chồng chéo ở đây - cụ thể là java5-runtime-headless
. Dòng dưới cùng - đây có thể là một ví dụ không may được chọn.
apt-get build-dep ...
, phải không? Tôi nghĩ rằng apt không đánh dấu chúng là tự động cài đặt theo mặc định, mặc dù một tùy chọn để làm như vậy có thể hữu ích, bởi vì chúng chỉ được yêu cầu trong một thời gian ngắn. apt dường như có một tùy chọn để nói "xem xét tất cả các gói tôi đang cài đặt bây giờ sẽ được cài đặt tự động", nhưng nếu làm như vậy, điều đó có thể hữu ích ở đây.