Tôi có thể vô hiệu hóa tất cả các trang người đàn ông?


13

Cụ thể trên một raspberry pi (chạy Raspbian Wheezy), nhưng nói chung, tôi có thể vô hiệu hóa tất cả các trang man không?

Điều này có nghĩa là không có trang man được lưu trữ, không có "kích hoạt xử lý cho man-db", v.v. Với các trang thủ công luôn có sẵn trên internet, tôi không thực sự cần cài đặt chúng, và việc tạo và lưu trữ chúng dường như không cần thiết.


Tôi e rằng bạn có thể bị mắc kẹt trong chừng mực các trang web đi - chúng là một phần của các cuộc tranh luận về phần mềm mà chúng đi cùng.
Shadur

6
Chắc chắn có những ứng cử viên tốt hơn để tiết kiệm không gian hơn trang người đàn ông?
jasonwryan

Tôi có thể tưởng tượng một cấu hình của một công cụ đóng gói để thả tất cả các tệp được đánh dấu là tài liệu và / hoặc các tệp khớp với biểu thức chính quy. Tôi không nhận thức được việc triển khai khái niệm này, mặc dù.
Pavel imerda

Bạn chỉ tiết kiệm, cái gì, 1% dung lượng (thực tế có lẽ ít hơn)? Có lẽ nhiều hơn một chút nếu bạn cũng kìm nén /usr/share/doc.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


15

Tôi đã gặp vấn đề ngược lại với hình ảnh Debian 8 mà ai đó đã ghép lại cho Wandboard. Tôi đã cố gắng tìm trang hướng dẫn cho một số gói đã được cài đặt và nhận thấy rằng sau khi cài đặt một số gói mới, các trang hướng dẫn bị thiếu, mặc dù chúng có mặt trong tệp gỡ lỗi.

Sau đó, tôi đã tìm thấy tệp này 01_nodoc trong /etc/dpkg/dpkg.conf.d, đây là một giải pháp đơn giản cho câu hỏi ban đầu về cách tiết kiệm dung lượng bằng cách xóa các trang thủ công và tệp bản địa và tệp bản quyền có dung lượng cao (ví dụ: được nhúng hệ thống).

# /etc/dpkg/dpkg.conf.d/01_nodoc

# Delete locales
path-exclude=/usr/share/locale/*

# Delete man pages
path-exclude=/usr/share/man/*

# Delete docs
path-exclude=/usr/share/doc/*
path-include=/usr/share/doc/*/copyright

Một câu trả lời hữu ích là tại askubuntu.com/a/401144/162384 , mà - ngoài một ví dụ tuyệt vời - điểm đến tài liệu: wiki.ubuntu.com/ReducingDiskFootprint#Documentation
Berto

6

Vấn đề là hệ thống quản lý gói hy vọng các tệp mà nó cài đặt (bao gồm cả trang man) vẫn ở đó, do đó, bất kỳ cơ chế nào bạn sử dụng để xóa chúng (ngoại trừ việc xây dựng lại mọi gói như HalosGhost gợi ý) sẽ gây nhầm lẫn.

Nếu những gì bạn đang làm là sản xuất một thiết bị đơn mục đích, một cách tiếp cận bạn có thể thực hiện là có các bước xây dựng và triển khai riêng cho thiết bị. Nghĩa là, bạn cài đặt tất cả các gói bạn muốn trong một môi trường xây dựng riêng (thẻ SD khác hoặc RPi giả lập), sau đó sao chép chỉ những gì bạn muốn có trong sản xuất từ ​​môi trường xây dựng sang môi trường sản xuất. Ở giai đoạn đó, bạn có thể bỏ các trang man và bất cứ thứ gì không cần thiết trong sản xuất.

Để chọn hệ điều hành nâng cấp hoặc sửa lỗi bảo mật, bạn nâng cấp hoặc xây dựng lại môi trường xây dựng và sao chép (hoặc rsync) để sản xuất lại.

Đó là một công việc nhiều hơn một chút, nhưng nó cung cấp cho bạn một thiết bị sản xuất rất được kiểm soát, so với việc đăng nhập và chạy nâng cấp trực tiếp trên nó.


5

Chà, không biết RPi của bạn đang chạy cái gì, tôi không thể giúp bạn với các lệnh chính xác, nhưng bạn có thể loại bỏ man-dbgói cung cấp cả mantiện ích và nhiều trang man. Tuy nhiên, việc xóa tất cả các trang man sẽ yêu cầu xóa từng trang man khỏi mỗi gói. Tôi không thể tưởng tượng rằng việc này đáng để bạn dành thời gian chỉ để tiết kiệm dung lượng KiBs.

Nếu bạn thực sự muốn, thì bạn sẽ cần phải xây dựng lại mỗi gói; trên một bản phân phối như Archlinux hoặc Gentoo, điều này không hẳn là không thể, nhưng vẫn còn khá tẻ nhạt. Trên các bản phát hành ít "thực hành" khác, bạn có thể thấy nhiệm vụ này vô cùng khó khăn.


2
apt-get remove --purge man-dbcũng sẽ gỡ cài đặt debhelperlà không cần thiết?
rubo77

4
$ cat /etc/apt/apt.conf.d/90debsums 
DPkg::Post-Invoke { "if [ -x /usr/bin/debsums ]; then /usr/bin/debsums --generate=nocheck -sp /var/cache/apt/archives; fi"; };

Gói debsumscài đặt một hành động để tạo danh sách md5sum cho các gói tự động sau khi gói được cài đặt mà không có tệp md5sums riêng ..

Bạn có thể thêm một hành động quét cài đặt bài tương tự để quét và xóa các trang (và tài liệu thông tin) sau mỗi hành động cài đặt.

Để có được các trang và các gói sở hữu, bạn cần quét qua tất cả /var/lib/dpkg/info/PACKAGENAME.listcác tệp.

Bạn cũng nên cập nhật các *.listtập tin không đề cập đến các trang bị xóa nữa.

localepurgemột phần cũng làm điều này. Trích dẫn từ apt-cache show localepurge:

Đây là một tập lệnh để phục hồi không gian đĩa bị lãng phí cho các địa phương không cần thiết, nội địa hóa Gnome / KDE và các trang man được bản địa hóa. Tùy thuộc vào cài đặt, có thể tiết kiệm khoảng 200, 300 hoặc thậm chí nhiều byte không gian đĩa dành riêng cho nội địa hóa mà bạn có thể sẽ không bao giờ sử dụng. Nó được chạy tự động sau khi hoàn thành bất kỳ hành động cài đặt apt nào.

Trích dẫn quan trọng nhất:

Vui lòng chắc chắn không báo cáo bất kỳ lỗi nào như vậy đổ lỗi cho localepurge nếu bạn phá vỡ hệ thống của mình bằng cách sử dụng nó. Nếu bạn không biết những gì bạn đang làm và không thể tự mình xử lý bất kỳ sự cố vỡ nào thì xin vui lòng không sử dụng gói này.

;-D

Vì vậy, chỉ cần tạo một bản sao lưu đầy đủ và cố gắng viết manpagekiller...


1
Đây cũng là giải pháp tôi có trong đầu (đó là cộng với không cài đặt man-db). Tôi sẽ thêm hook sau gọi thông qua /etc/dpkg.cfg.dchứ không phải qua APT, để xử lý các yêu cầu trực tiếp của dpkg.
Gilles 'SO- ngừng trở nên xấu xa'

Khỏe! Vì .debhành động trên mỗi gói (mỗi ) của dpkgnó thậm chí sẽ dễ dàng hơn so với hành động cài đặt bài đăng aptbởi vì bạn sẽ có tên gói và không cần phải quét tất cả *.listcác tệp cho các trang web nhiều lần. Tôi chỉ quên rằng dpkgđã có một cái móc quá ...

Hmmm ... nhưng việc xử lý các gói được cài đặt sớm hơn trình xử lý này vẫn sẽ yêu cầu quét các *.listtệp. Tuy nhiên, dpkghook post-invoke là nơi tốt hơn để kích hoạt hành động đó.
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.