क्या मैं सभी मैन पेजों को निष्क्रिय कर सकता हूं?


14

विशेष रूप से एक रास्पबेरी पाई (रास्पियन व्हीज़ी चलाने पर), लेकिन सामान्य तौर पर, क्या मैं सभी पुरुष पृष्ठों को अक्षम कर सकता हूं?

इसका मतलब यह होगा कि कोई संग्रहीत मैन पेज नहीं, कोई "प्रसंस्करण मैन-डीबी के लिए ट्रिगर नहीं", और इसी तरह आगे। इंटरनेट पर हमेशा उपलब्ध मैनुअल पेजों के साथ, मुझे वास्तव में उन्हें स्थापित करने की आवश्यकता नहीं है, और उन्हें उत्पन्न करना और संग्रहीत करना अनावश्यक लगता है।


मुझे डर है कि आप शायद अभी तक फंस गए हैं क्योंकि मैनपाज खुद चलते हैं - वे उस सॉफ्टवेयर के डीबीएस का हिस्सा हैं जिसके साथ वे जाते हैं।
शादुर

6
निश्चित रूप से मानव पृष्ठों की तुलना में अंतरिक्ष की बचत के लिए बेहतर उम्मीदवार हैं?
जसोनव्रीयन

मैं एक पैकेजिंग टूल के कॉन्फ़िगरेशन की कल्पना कर सकता हूं जो डॉक्स के रूप में चिह्नित सभी फ़ाइलों और / या एक रेगेक्स से मेल खाती फ़ाइलों को छोड़ने के लिए है। मैं इस अवधारणा के कार्यान्वयन से अवगत नहीं हूँ, हालाँकि।
पावेल Paमेरदा

आप केवल बचा सकते हैं, क्या, अंतरिक्ष का 1% (शायद वास्तव में कम)? शायद थोड़ा और अगर तुम भी दबा दो /usr/share/doc
गाइल्स का SO- बुराई पर रोक

जवाबों:


16

मुझे डेबियन 8 छवि पर विपरीत समस्या आ रही थी जिसे किसी ने वैंडबोर्ड के लिए एक साथ रखा था। मैं कुछ पैकेजों के लिए मैनुअल पेज खोजने की कोशिश कर रहा था जो पहले से ही स्थापित थे और देखा गया कि कुछ नए स्थापित करने के बाद, मैनुअल पेज गायब थे, भले ही वे डिबेट फ़ाइल में मौजूद थे।

मुझे तब यह फ़ाइल 01_nodoc in /etc/dpkg/dpkg.conf.d में मिली, जो मूल प्रश्न का एक सरल समाधान है कि मैनुअल पेज और लोकेशन और कॉपीराइट फ़ाइलों को हटाकर अंतरिक्ष को कैसे बचाया जाए, जहां अंतरिक्ष एक प्रीमियम पर है (जैसे एम्बेडेड सिस्टम)।

# /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

एक अन्य उपयोगी जवाब askubuntu.com/a/401144/162384 पर है , जो - एक महान उदाहरण के अलावा - डॉक्स को इंगित करता है: wiki.ubuntu.com/ReducingDiskFootprint#Documentation
बर्थो

6

मुद्दा यह है कि पैकेज प्रबंधन प्रणाली यह अपेक्षा करती है कि यह उन फाइलों को स्थापित करे (जिसमें मैन पेज भी शामिल हैं), इसलिए जो भी तंत्र आप उन्हें हटाने के लिए उपयोग करते हैं (हर पैकेज को फिर से बनाने के लिए जैसा कि HalosGhost सुझाव देता है) उसे भ्रमित करने वाला है।

यदि आप जो भी कर रहे हैं वह एकल-उद्देश्य वाले उपकरण का उत्पादन करने के लिए है, तो एक दृष्टिकोण जो आप ले सकते हैं वह है उपकरण के लिए अलग-अलग बिल्ड और तैनाती चरण। यही है, आप एक अलग बिल्ड वातावरण (एक अलग एसडी कार्ड, या एक आरपीआई) में सभी पैकेजों को स्थापित करना चाहते हैं, और फिर केवल कॉपी करें जो आप चाहते हैं कि निर्माण वातावरण से उत्पादन पर्यावरण तक उत्पादन हो। उस स्तर पर, आप मैन पेज और कुछ भी छोड़ सकते हैं जिसकी उत्पादन में आवश्यकता नहीं है।

अपग्रेड किए गए OS या सिक्योरिटी फ़िक्सेस लेने के लिए, आप बिल्ड वातावरण को अपग्रेड या पुनर्निर्माण करते हैं और फिर से उत्पादन के लिए कॉपी (या rsync) करते हैं।

यह थोड़ा अधिक काम करता है, लेकिन यह आपको लॉग ऑन करने और उस पर सीधे अपग्रेड चलाने के मुकाबले बहुत नियंत्रित उत्पादन उपकरण देता है।


5

ठीक है, यह नहीं जानते कि आपका आरपीआई किस डिस्ट्रो में चल रहा है, मैं आपको सटीक कमांड के साथ मदद नहीं कर सकता, लेकिन आप शायद उस man-dbपैकेज को हटा सकते हैं जो manउपयोगिता और विभिन्न प्रकार के मैन पेज दोनों प्रदान करता है । हालाँकि, सभी मैन पेजों को हटाने के लिए प्रत्येक पैकेज से प्रत्येक मैन पेज को हटाने की आवश्यकता होगी - मैं कल्पना नहीं कर सकता कि यह आपके समय की लागत के अनुसार अंतरिक्ष के KiBs को बचाने के लिए है।

यदि आप वास्तव में चाहते थे, तो आपको प्रत्येक पैकेज के पुनर्निर्माण की आवश्यकता होगी; Archlinux या Gentoo जैसे डिस्ट्रो पर, यह आवश्यक रूप से असंभव नहीं है, लेकिन अभी भी काफी थकाऊ है। अन्य कम "हैंड्स-ऑन" डिस्ट्रोस पर, आपको यह कार्य अविश्वसनीय रूप से कठिन लग सकता है।


2
apt-get remove --purge man-dbयह भी अनइंस्टॉल करेगा debhelperकि क्या जरूरत नहीं है?
रूबो77

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"; };

पैकेज debsumsपहले से ही md5sums फ़ाइल के बिना एक पैकेज स्थापित होने के बाद पैकेज के लिए स्वचालित रूप से md5sum सूची उत्पन्न करने के लिए एक कार्रवाई स्थापित करता है।

आप प्रत्येक इंस्टॉल किए गए एक्शन के बाद मैनपेज (और जानकारी दस्तावेज़) के लिए एक समान पोस्ट इंस्टॉल एक्शन स्कैनिंग जोड़ सकते हैं और हटा सकते हैं।

मैनपेज़ और स्वयं के पैकेज प्राप्त करने के लिए, आपको सभी /var/lib/dpkg/info/PACKAGENAME.listफ़ाइलों को स्कैन करने की आवश्यकता है ।

आपको उन *.listफ़ाइलों को अपडेट करना चाहिए जो हटाए गए मैनपेज़ का उल्लेख नहीं करती हैं।

localepurgeआंशिक रूप से यह भी करता है। से उद्धृत apt-cache show localepurge:

यह अनावश्यक स्थानों, Gnome / KDE स्थानीयकरण और स्थानीयकृत मैन पेजों के लिए व्यर्थ डिस्क स्थान को पुनर्प्राप्त करने के लिए एक स्क्रिप्ट है। स्थापना के आधार पर, स्थानीयकरण के लिए समर्पित डिस्क स्थान के 200, 300, या इससे भी अधिक मेगा बाइट्स को सहेजना संभव है, जिनके लिए शायद आपके पास कभी कोई उपयोग नहीं होगा। यह किसी भी स्थापना कार्यों के पूरा होने पर स्वचालित रूप से चलाया जाता है।

सबसे महत्वपूर्ण उद्धरण:

कृपया निश्चित रूप से इस तरह के किसी भी कीड़े पर स्थानीयकरण का आरोप लगाने से परहेज करें यदि आप इसका उपयोग करके अपने सिस्टम को तोड़ते हैं। यदि आप नहीं जानते कि आप क्या कर रहे हैं और अपने दम पर किसी भी परिणामी टूटना को संभाल नहीं सकते हैं, तो कृपया बस इस पैकेज का उपयोग न करें।

;-D

तो बस एक पूर्ण बैकअप बनाने के लिए और अपने लिखने की कोशिश manpagekiller...


1
यह वह समाधान है जो मेरे मन में भी था (कि, प्लस स्थापित न करें man-db)। मैं /etc/dpkg.cfg.dसीधे इनवोकेशन को संभालने के लिए APT के बजाय पोस्ट-इनोक हुक जोड़ूंगा dpkg
गिलेस एसओ- बुराई को रोकना

ठीक! इसके प्रति पैकेज (प्रति .deb) कार्रवाई के dpkgरूप में भी पोस्ट की कार्रवाई से आसान हो जाएगा aptक्योंकि आपके पास पैकेज का नाम होगा और *.listबार-बार मैनपेज़ के लिए सभी फ़ाइलों को स्कैन करने की आवश्यकता नहीं है । मैं अभी भूल गया था कि dpkgएक हुक भी है ...

हम्म् ... लेकिन इस हैंडलर से पहले स्थापित किए जा रहे संकुल को संभालने के लिए अभी भी *.listफाइलों को स्कैन करने की आवश्यकता होगी । फिर भी dpkgउस कार्रवाई को ट्रिगर करने के लिए पोस्ट-इनोक हुक बेहतर जगह है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.