Apt có thể xóa các gói cần thiết bởi phần mềm mà người dùng đã cài đặt từ nguồn không?


14

Apt xử lý các phụ thuộc giữa các gói được cài đặt từ kho hoặc *.debtệp của nó . Tuy nhiên, những gì về phần mềm mà người dùng đã biên dịch và cài đặt từ nguồn ./configure && make && make installmà không tạo .debtệp trước? Có thể là Apt có thể loại bỏ các gói cần thiết bởi các phần mềm như vậy? Sẽ cài đặt phần mềm từ nguồn trong /opthoặc /usr/localtạo sự khác biệt?


1
Bạn có thể cài đặt gói Equivs làm dự phòng cho gói được cài đặt từ nguồn, để buộc các phụ thuộc của bạn được cài đặt.
Faheem Mitha

Câu trả lời:


13

APT không biết gì về phần mềm được cài đặt thủ công. Nó không biết những thư viện mà phần mềm cần hoặc bất cứ thứ gì.

Khi APT chỉ cài đặt một gói để đáp ứng các phụ thuộc của gói khác, gói này được đánh dấu là tự động cài đặt. Nếu bạn xóa tất cả các gói phụ thuộc vào gói được cài đặt tự động, gói đó sẽ bị xóa khi bạn chạy apt-get autoremove; Mặt trận cấp cao hơn cho APT thường sẽ cung cấp để làm điều đó sau khi bảo trì khác. Để tránh loại bỏ các gói cần thiết bởi phần mềm được cài đặt cục bộ, hãy đánh dấu các gói này là cài đặt thủ công: hoặc khóa theo khả năng.apt-mark manual PACKAGE-NAMEm

Để tìm những gì thư viện gói một nhu cầu thực thi nhị phân, chạy ldd /path/to/executable. Đối với mỗi dòng chứa , hãy chạy để hiển thị tên của gói chứa thư viện đó. Đối với tập lệnh, hiển thị trình thông dịch được sử dụng bởi tập lệnh; đảm bảo rằng trình thông dịch này vẫn được cài đặt. Tìm kiếm những thư viện được sử dụng bởi một kịch bản có thể khó khăn, không có cách phổ quát nào để làm điều đó./usr/lib/SOMETHINGdpkg -S /usr/lib/SOMETHINGhead -n 1 /path/to/script

Nếu bạn đã cài đặt thủ công phiên bản mới hơn của gói có trong phân phối của mình, hãy xem các phụ thuộc của gói phân phối và đánh dấu chúng là cài đặt thủ công.


apt-gettrong Debian Jessie không có manualtùy chọn. Đối với những gợi ý cài đặt thủ công so với tự động (matic) tôi đã sử dụng apt-markthay thế. ( apt-mark manual pkg, apt-mark showmanual pkg, apt-mark auto pkg, Vv)
Lekensteyn

@Lekensteyn Ý tôi là apt-mark, cảm ơn.
Gilles 'SO- ngừng trở nên xấu xa'

14

aptdpkghoàn toàn có thể loại bỏ phần mềm được yêu cầu bởi phần mềm khác được cài đặt cục bộ nằm ngoài phạm vi của hệ thống quản lý gói. Đơn giản là không có cách nào cho aptdpkgđể biết rằng phần mềm như vậy có thể tồn tại.

Vị trí nơi cài đặt phần mềm như vậy không có sự khác biệt: nó có thể /opthoặc /usr/localhoặc trong các thư mục nhà của người dùng (trong trường hợp đó ngay cả sysadmin cũng có thể không biết về sự hiện diện của nó), hoặc bất cứ nơi nào, thực sự.

Về mặt kỹ thuật apthoặc dpkgthậm chí có thể loại bỏ phần mềm được yêu cầu bởi phần mềm khác một phần của hệ thống quản lý gói, nếu phần mềm sau không tuyên bố rằng phần mềm này phụ thuộc vào phần mềm cũ. Tuy nhiên, quy trình tạo gói gỡ lỗi bao gồm tự động hóa để giúp ngăn người bảo trì gói quên không khai báo một phụ thuộc như thế.

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.