न्यूनतम Centos Docker कंटेनर पर मैन पेज स्थापित नहीं कर सकते


13

मेरे पास एक न्यूनतम सेंटोस 7 डोकर छवि है, और मैं अपने डॉक्सफाइल को डिबग करने में मदद करने के लिए उस पर कुछ मैन पेज प्राप्त करने की कोशिश कर रहा हूं। बॉक्स से बाहर, इसमें बहुत कुछ नहीं है:

# man ls
No manual entry for ls

प्रति इस serverfault जवाब , मैं स्थापित man-pagesआरपीएम, और वह ठीक से जाने के लिए लग रहा था:

# yum install -y man-pages
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirror.vtti.vt.edu
 * extras: centos.mbni.med.umich.edu
 * updates: centos.netnitco.net
Resolving Dependencies
--> Running transaction check
---> Package man-pages.noarch 0:3.53-5.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================
 Package                  Arch                  Version                     Repository           Size
======================================================================================================
Installing:
 man-pages                noarch                3.53-5.el7                  base                5.0 M

Transaction Summary
======================================================================================================
Install  1 Package

Total download size: 5.0 M
Installed size: 4.6 M
Downloading packages:
man-pages-3.53-5.el7.noarch.rpm                                                | 5.0 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : man-pages-3.53-5.el7.noarch                                                        1/1 
  Verifying  : man-pages-3.53-5.el7.noarch                                                        1/1 

Installed:
  man-pages.noarch 0:3.53-5.el7                                                                       

Complete!

तथापि:

# man ls
No manual entry for ls

मैं प्रयोग किया जाता है rpmयह देखना होगा कि man-pagesशामिल करने के लिए चाहिए था lsआदमी पेज, और इस तरह यह करता है यह लग रहा है:

# rpm -ql man-pages | grep -w ls
/usr/share/man/man1p/ls.1p.gz

लेकिन ऐसा नहीं लगता कि यह वास्तव में स्थापित किया गया था:

# man 1p ls
No manual entry for ls in section 1p
# ls -l /usr/share/man/man1p/
total 0

और यह फाइलसिस्टम पर कहीं और नहीं लगता है, या तो।

# find / -name ls.1\*
#

मैं फ़ाइलों को बना सकता हूं /usr/share/man/man1p/, इसलिए यह शायद कुछ डॉकर वर्चुअल फाइलसिस्टम अजीबता नहीं है।

इसका सबसे अच्छा हिस्सा यह है कि जो मैं वास्तव में चाहता था कि यह मिनट useraddकमांड के लिए मैन पेज था , जो उस आरपीएम में भी नहीं है। यह अंदर है shadow-utils

# yum whatprovides /usr/share/man/man8/useradd.8.gz
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirror.vtti.vt.edu
 * extras: mirror.tzulo.com
 * updates: centos.netnitco.net
2:shadow-utils-4.1.5.1-18.el7.x86_64 : Utilities for managing accounts and shadow password files
Repo        : base
Matched from:
Filename    : /usr/share/man/man8/useradd.8.gz

जो पहले से स्थापित है।

# yum install shadow-utils
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirror.vtti.vt.edu
 * extras: centos.mbni.med.umich.edu
 * updates: centos.netnitco.net
Package 2:shadow-utils-4.1.5.1-18.el7.x86_64 already installed and latest version
Nothing to do

और, वास्तव में, बायनेरिज़ (जैसे /usr/sbin/useradd) हैं। लेकिन मैन पेज नहीं।

# ls -l /usr/share/man/man8/useradd.8.gz
ls: cannot access /usr/share/man/man8/useradd.8.gz: No such file or directory

तो मेरे सवाल हैं:

  1. shadow-utilsजब मैं बायनेरिज़ ढूँढ सकता हूँ, तो मुझे आरपीएम में कोई भी मैन पेज क्यों नहीं मिल सकता है ?
  2. man-pagesRPM को स्थापित (सफलतापूर्वक) उस RPM में होने वाली फ़ाइलों को स्थापित (सफलतापूर्वक) क्यों नहीं किया जाता है?

अपडेट: प्रति आरोन मारास्को के जवाब और मस्करी की टिप्पणी , मैंने कोशिश की yum reinstall shadow-utils। जैसा कि yum install man-pages, यह सफलतापूर्वक पूरा होता दिखाई देता है, लेकिन वास्तव में कोई भी फाइल नहीं डालता है /usr/share/man/


एक centos पर समान प्रश्न 6 डोकर imge: unix.stackexchange.com/questions/182500/no-manual-entry-for-man
maxschlepzig

मुझे CentOS 7 के साथ वैग्रांट सेटअप पर दिया गया - मैंने पाया कि पैकेज स्थापित होने से पहले स्थापित किए गए कुछ पैकेज man-pagesमें मैन पेज नहीं थे। समाधान ऐसे पैकेजों को पुन: स्थापित करने के लिए था, जैसे yum reinstall yum rpmउन दो को कवर करना।
रिचवेल

जवाबों:


12

आपकी छवि शायद हैnodocs लेन-देन झंडा यम विन्यास (सीएफ में सेट /etc/yum.conf)।

आप उन पैकेजों को स्थापित करने से पहले (पुनः यम कमांड लाइन पर) विश्व स्तर पर (या यम कमांड को हटा सकते हैं)।

उदाहरण के लिए:

yum --setopt=tsflags='' reinstall shadow-utils

क्या इसे दक्षिण-शिखर के उत्तर--setopt=tsflags='' में सुझाया जाना चाहिए ? (के लिए )=-
डेविड मोल्स

1
@DavidMoles, हाँ, यह एक टाइपो था - संदर्भित प्रोजेक्टैटॉमिक दस्तावेज़ में सही स्विच सिंटैक्स का भी उपयोग किया गया था।
मैक्सक्लेपजिग

धन्यवाद। मैंने अभी इसे ठीक किया है, लेकिन 6-वर्ण की सीमा। :)
डेविड मोल्स

छाया-बर्तन क्यों पुनर्स्थापित करें?
टिआना

@ टीना क्योंकि यह वह पैकेज है useraddजो कमांड प्रदान करता है (जिसे प्रश्न में संदर्भित किया गया था)।
मैक्सक्लेपज़िग

5

यहां कुछ भी काम नहीं किया और उसके शीर्ष पर स्वीकृत उत्तर में एक टाइपो है। मेरे पास वहाँ टिप्पणी करने के लिए पर्याप्त प्रतिनिधि नहीं है इसलिए मैं इसे किसी मामले में जवाब देने के रूप में यहाँ जोड़ रहा हूँ जिससे यह किसी को मदद मिले।

मैन पेज उपयोग के साथ एक पैकेज स्थापित करने के लिए:

yum --setopt=tsflags='' install man-db

फिर:

yum --setopt=tsflags='' install {your-package-name}

या, आप स्थायी रूप से yum.conf से लाइन हटा सकते हैं जो मैन पेज को इंस्टॉल होने से रोकता है। ऐसा करने के लिए, उपयोग करें:

sed -i '/tsflags=nodocs/d' /etc/yum.conf

तब आप उपयोग yum installया yum reinstallसामान्य रूप से कर सकते हैं ।

स्रोत


+1 भी, बस nodocs लाइन बाहर टिप्पणी करने के लिए,sed -i 's/tsflags=nodocs/# &/' /etc/yum.conf
माइकल

2

मुझे पता है कि यह एक पुराना सवाल है लेकिन मैंने इसे ट्रैक करने के लिए जो समय दिया है, उसे देखते हुए यह अंततः किसी और के काम आएगा।

समस्या उस तरह से संबंधित है जब आरपीएम डॉकटर छवि में कॉन्फ़िगर किया गया है, पहले यह देखने के लिए कि क्या excludedocsनिर्देश आरपीएम के कॉन्फ़िगरेशन में सूचीबद्ध है जैसे:

# rpm --showrc | grep docs

यदि यह वहां है तो आपको उस फ़ाइल को खोजना होगा जो इसे मेरे मामले में निर्दिष्ट करती है जो इसके अधीन थी /etc/rpm/macros.imgcreateऔर इसे हटा दें

यम को तब उम्मीद के मुताबिक सभी मैन-पेज इंस्टॉलेशन करने चाहिए (यह देखते हुए कि आपके पास भी nodocs tsflagऊपर उल्लेखित नहीं है।


1

डॉकर छवि बेहद नीचे छीन ली गई है। मेरा मानना ​​है कि वे RPM स्थापित होने के बाद मैन पेजों को हटा देते हैं। आप इससे सत्यापित कर सकते हैं rpm -V shadow-utils। मुझे पता है कि मुझे संकुल को अपग्रेड करने के लिए डेल्टा RPM का उपयोग करने में समस्या आ रही है क्योंकि मैन पेज गायब हैं।

अफसोस की बात है कि मुझे लगता है कि किसी व्यक्ति के लिए मैन पेज प्राप्त करने का एकमात्र तरीका आरपीएम को फिर से स्थापित करना होगा या उन्हें आरपीएम से मैन्युअल रूप से निकालना होगा और उन्हें जगह में छोड़ना होगा।

इस साइट को मैं भी देखता हूं।


2
हाँ। yum reinstall shadow-utilsइसे ठीक कर देंगे।
msuchy

@msuchy मैंने अभी कोशिश की है, और नहीं, यह नहीं है। संभवतः जो भी man-pagesठीक से स्थापित करने से रोकता है उससे संबंधित है ?
डेविड मोल्स 19

@ aaron-d-marasco बताते हैं कि वे शुरू करने के लिए क्यों स्थापित नहीं हैं, लेकिन यह नहीं समझाता कि जब मैं स्थापित करने की कोशिश कर रहा हूं तो क्या हो रहा है man-pages
डेविड मोल्स 19

-4
export MANPATH=/usr/share/man/fr

5
आपको यह बताना चाहिए कि आप इस आदेश की अनुशंसा क्यों करते हैं।
Centimane
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.